Display Whole String in Debug Console

OS: Arch Linux with 6.1.8 kernel
VSCode version: 1.75.0
CodeLLDB version: 1.8.1
Compiler: rustc 1.65.0-nightly (fa6ee9375 2022-09-12)
Debuggee: a lang server backend

In LLDB, if I want to display the whole content of a long string, I can set lldb settings target.max-string-summary-length to a large number. But even if I change the same setting in codelldb debug console, the whole string still cannot be display.

Verbose log
Initial debug configuration: {
  type: 'lldb',
  request: 'attach',
  name: 'Attach',
  sourceLanguages: [ 'rust' ],
  program: '${workspaceFolder}/target/debug/mech',
  __configurationTarget: 6
}
Resolved debug configuration: {
  type: 'lldb',
  request: 'attach',
  name: 'Attach',
  sourceLanguages: [ 'cpp', 'rust', 'rust' ],
  program: '${workspaceFolder}/target/debug/mech',
  __configurationTarget: 6,
  relativePathBase: '/home/kkren/mech',
  _adapterSettings: {
    displayFormat: 'auto',
    showDisassembly: 'auto',
    dereferencePointers: true,
    suppressMissingSourceFiles: true,
    evaluationTimeout: 5,
    consoleMode: 'commands',
    sourceLanguages: null,
    terminalPromptClear: null,
    evaluateForHovers: true,
    commandCompletions: true,
    reproducer: false
  }
}
liblldb: /home/kkren/.vscode/extensions/vadimcn.vscode-lldb-1.8.1/lldb/lib/liblldb.so
environment: {}
params: {
  evaluateForHovers: true,
  commandCompletions: true,
  sourceLanguages: [ 'cpp', 'rust', 'rust' ]
}
[2023-02-05T18:49:58.937Z DEBUG codelldb] New debug session
[2023-02-05T18:49:59.066Z DEBUG codelldb::dap_codec] --> {"command":"initialize","arguments":{"clientID":"vscode","clientName":"Visual Studio Code","adapterID":"lldb","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true,"locale":"en","supportsProgressReporting":true,"supportsInvalidatedEvent":true,"supportsMemoryReferences":true,"supportsArgsCanBeInterpretedByShell":true,"supportsMemoryEvent":true},"type":"request","seq":1}
[2023-02-05T18:49:59.066Z DEBUG codelldb::dap_codec] <-- {"seq":1,"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"exceptionBreakpointFilters":[{"default":true,"filter":"cpp_throw","label":"C++: on throw"},{"default":false,"filter":"cpp_catch","label":"C++: on catch"},{"default":true,"filter":"rust_panic","label":"Rust: on panic"}],"supportTerminateDebuggee":true,"supportsCancelRequest":true,"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDataBreakpoints":true,"supportsDelayedStackTraceLoading":true,"supportsEvaluateForHovers":true,"supportsFunctionBreakpoints":true,"supportsGotoTargetsRequest":true,"supportsHitConditionalBreakpoints":true,"supportsLogPoints":true,"supportsReadMemoryRequest":true,"supportsRestartFrame":true,"supportsSetVariable":true,"supportsWriteMemoryRequest":true}}
[2023-02-05T18:49:59.069Z DEBUG codelldb::dap_codec] --> {"command":"attach","arguments":{"type":"lldb","request":"attach","name":"Attach","sourceLanguages":["cpp","rust","rust"],"program":"/home/kkren/mech/target/debug/mech","__configurationTarget":6,"relativePathBase":"/home/kkren/mech","_adapterSettings":{"displayFormat":"auto","showDisassembly":"auto","dereferencePointers":true,"suppressMissingSourceFiles":true,"evaluationTimeout":5,"consoleMode":"commands","sourceLanguages":null,"terminalPromptClear":null,"evaluateForHovers":true,"commandCompletions":true,"reproducer":false},"__sessionId":"27c7b41b-268a-423a-bcf2-8624e8bdf450"},"type":"request","seq":2}
[2023-02-05T18:49:59.069Z DEBUG codelldb::dap_codec] <-- {"seq":2,"type":"event","event":"output","body":{"output":"Console is in 'commands' mode, prefix expressions with '?'.\n"}}
INFO(Python) 13:49:59 formatters: Initializing
INFO(Python) 13:49:59 formatters.rust: Initializing
[2023-02-05T18:49:59.567Z DEBUG codelldb::debug_session] Debug event: 0x5597361280e0 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000002 (modules-loaded), data = {mech}
[2023-02-05T18:49:59.567Z DEBUG codelldb::dap_codec] <-- {"seq":3,"type":"event","event":"initialized"}
[2023-02-05T18:49:59.567Z DEBUG codelldb::dap_codec] <-- {"seq":4,"type":"event","event":"module","body":{"module":{"addressRange":"FFFFFFFFFFFFFFFF","id":"FFFFFFFFFFFFFFFF","name":"mech","path":"/home/kkren/mech/target/debug/mech","symbolFilePath":"/home/kkren/mech/target/debug/mech","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.569Z DEBUG codelldb::dap_codec] --> {"command":"setBreakpoints","arguments":{"source":{"name":"backend.rs","path":"/home/kkren/mech/src/syntax/src/langserver/backend.rs"},"lines":[233],"breakpoints":[{"line":233}],"sourceModified":false},"type":"request","seq":3}
[2023-02-05T18:49:59.610Z DEBUG codelldb::dap_codec] --> {"command":"setBreakpoints","arguments":{"source":{"name":"parser.rs","path":"/home/kkren/mech/src/syntax/src/parser.rs"},"lines":[2661],"breakpoints":[{"line":2661}],"sourceModified":false},"type":"request","seq":4}
[2023-02-05T18:49:59.610Z DEBUG codelldb::dap_codec] --> {"command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":5}
[2023-02-05T18:49:59.610Z DEBUG codelldb::dap_codec] --> {"command":"setDataBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":6}
[2023-02-05T18:49:59.610Z DEBUG codelldb::dap_codec] --> {"command":"setExceptionBreakpoints","arguments":{"filters":["rust_panic","cpp_throw"]},"type":"request","seq":7}
[2023-02-05T18:49:59.643Z DEBUG codelldb::debug_session] Debug event: 0x5597399de690 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 1 type: breakpoint added}
[2023-02-05T18:49:59.643Z DEBUG codelldb::dap_codec] <-- {"seq":5,"type":"response","request_seq":3,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"id":1,"line":233,"message":"Resolved locations: 0","verified":true}]}}
[2023-02-05T18:49:59.645Z DEBUG codelldb::debug_session] Debug event: 0x5597399de690 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 2 type: breakpoint added}
[2023-02-05T18:49:59.645Z DEBUG codelldb::dap_codec] <-- {"seq":6,"type":"response","request_seq":4,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"id":2,"message":"Resolved locations: 0","verified":false}]}}
[2023-02-05T18:49:59.645Z DEBUG codelldb::dap_codec] <-- {"seq":7,"type":"response","request_seq":5,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]}}
[2023-02-05T18:49:59.645Z DEBUG codelldb::dap_codec] <-- {"seq":8,"type":"response","request_seq":6,"success":true,"command":"setDataBreakpoints","body":{"breakpoints":[]}}
[2023-02-05T18:49:59.648Z DEBUG codelldb::debug_session] Debug event: 0x5597384caa50 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 3 type: breakpoint added}
[2023-02-05T18:49:59.648Z DEBUG codelldb::dap_codec] <-- {"seq":9,"type":"response","request_seq":7,"success":true,"command":"setExceptionBreakpoints"}
[2023-02-05T18:49:59.648Z DEBUG codelldb::debug_session] Debug event: 0x55973b516c10 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 4 type: breakpoint added}
[2023-02-05T18:49:59.655Z DEBUG codelldb::dap_codec] --> {"command":"configurationDone","type":"request","seq":8}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":10,"type":"event","event":"output","body":{"output":"Attached to process 92148\n"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":11,"type":"response","request_seq":2,"success":true,"command":"attach"}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x7f995402c0b0 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000002 (modules-loaded), data = {[vdso](0x00007ffed5ca4000)}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":12,"type":"response","request_seq":8,"success":true,"command":"configurationDone"}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x7f9954249850 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000002 (modules-loaded), data = {libssl.so.3, libcrypto.so.3, libgcc_s.so.1, libm.so.6, libc.so.6, ld-linux-x86-64.so.2}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":13,"type":"event","event":"module","body":{"module":{"addressRange":"7FFED5CA4000","id":"7FFED5CA4000","name":"[vdso]","path":"[vdso]","symbolStatus":"Symbols not found"},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":14,"type":"event","event":"module","body":{"module":{"addressRange":"7FF47228A000","id":"7FF47228A000","name":"libssl.so.3","path":"/usr/lib/libssl.so.3","symbolFilePath":"/usr/lib/libssl.so.3","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":15,"type":"event","event":"module","body":{"module":{"addressRange":"7FF471E00000","id":"7FF471E00000","name":"libcrypto.so.3","path":"/usr/lib/libcrypto.so.3","symbolFilePath":"/usr/lib/libcrypto.so.3","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":16,"type":"event","event":"module","body":{"module":{"addressRange":"7FF47226A000","id":"7FF47226A000","name":"libgcc_s.so.1","path":"/usr/lib/libgcc_s.so.1","symbolFilePath":"/usr/lib/libgcc_s.so.1","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x7f995424a690 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 1 type: locations resolved}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":17,"type":"event","event":"module","body":{"module":{"addressRange":"7FF471D18000","id":"7FF471D18000","name":"libm.so.6","path":"/usr/lib/libm.so.6","symbolFilePath":"/usr/lib/libm.so.6","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":18,"type":"event","event":"module","body":{"module":{"addressRange":"7FF471B31000","id":"7FF471B31000","name":"libc.so.6","path":"/usr/lib/libc.so.6","symbolFilePath":"/usr/lib/libc.so.6","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":19,"type":"event","event":"module","body":{"module":{"addressRange":"7FF472357000","id":"7FF472357000","name":"ld-linux-x86-64.so.2","path":"/lib64/ld-linux-x86-64.so.2","symbolFilePath":"/lib64/ld-linux-x86-64.so.2","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x7f99542ea980 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 1 type: locations resolved}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":20,"type":"event","event":"breakpoint","body":{"breakpoint":{"id":1,"line":233,"message":"Resolved locations: 2","verified":true},"reason":"changed"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":21,"type":"event","event":"breakpoint","body":{"breakpoint":{"id":1,"line":233,"message":"Resolved locations: 2","verified":true},"reason":"changed"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x7f99542eba60 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 4 type: locations resolved}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x7f99542ebd00 Event: broadcaster = 0x55973615a8f0 (lldb.target), type = 0x00000002 (modules-loaded), data = {mech}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":22,"type":"event","event":"breakpoint","body":{"breakpoint":{"id":4,"message":"Resolved locations: 1","verified":true},"reason":"changed"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::debug_session] Debug event: 0x55973b66e220 Event: broadcaster = 0x55973b546778 (lldb.process), type = 0x00000001 (state-changed), data = { process = 0x55973b546740 (pid = 92148), state = running}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":23,"type":"event","event":"module","body":{"module":{"addressRange":"55AF765E7000","id":"55AF765E7000","name":"mech","path":"/home/kkren/mech/target/debug/mech","symbolFilePath":"/home/kkren/mech/target/debug/mech","symbolStatus":"Symbols loaded."},"reason":"new"}}
[2023-02-05T18:49:59.701Z DEBUG codelldb::dap_codec] <-- {"seq":24,"type":"event","event":"continued","body":{"allThreadsContinued":true,"threadId":0}}
[2023-02-05T18:49:59.713Z DEBUG codelldb::dap_codec] --> {"command":"threads","type":"request","seq":9}
[2023-02-05T18:49:59.714Z DEBUG codelldb::dap_codec] <-- {"seq":25,"type":"response","request_seq":9,"success":true,"command":"threads","body":{"threads":[{"id":92148,"name":"1: tid=92148"},{"id":92149,"name":"2: tid=92149"},{"id":92150,"name":"3: tid=92150"},{"id":92151,"name":"4: tid=92151"},{"id":92152,"name":"5: tid=92152"},{"id":92153,"name":"6: tid=92153"},{"id":92154,"name":"7: tid=92154"},{"id":92155,"name":"8: tid=92155"},{"id":92156,"name":"9: tid=92156"},{"id":92157,"name":"10: tid=92157"},{"id":92158,"name":"11: tid=92158"},{"id":92159,"name":"12: tid=92159"},{"id":92160,"name":"13: tid=92160"},{"id":92161,"name":"14: tid=92161"},{"id":92162,"name":"15: tid=92162"},{"id":92163,"name":"16: tid=92163"},{"id":92164,"name":"17: tid=92164"},{"id":92165,"name":"18: tid=92165"},{"id":92166,"name":"19: tid=92166"}]}}
[2023-02-05T18:50:03.613Z DEBUG codelldb::debug_session::breakpoints] Callback for breakpoint location 1.1: where = mech`::did_change::{{closure}} + 4788 at backend.rs:233:20, address = 0x000055af7785b444, resolved, hit count = 1
[2023-02-05T18:50:03.613Z DEBUG codelldb::debug_session] Debug event: 0x7f99500158a0 Event: broadcaster = 0x55973b546778 (lldb.process), type = 0x00000001 (state-changed), data = { process = 0x55973b546740 (pid = 92148), state = stopped}
[2023-02-05T18:50:03.613Z DEBUG codelldb::dap_codec] <-- {"seq":26,"type":"event","event":"stopped","body":{"allThreadsStopped":true,"reason":"breakpoint","threadId":92148}}
[2023-02-05T18:50:03.614Z DEBUG codelldb::dap_codec] --> {"command":"threads","type":"request","seq":10}
[2023-02-05T18:50:03.614Z DEBUG codelldb::dap_codec] <-- {"seq":27,"type":"response","request_seq":10,"success":true,"command":"threads","body":{"threads":[{"id":92148,"name":"1: tid=92148 "mech""},{"id":92149,"name":"2: tid=92149 "mech""},{"id":92150,"name":"3: tid=92150 "mech""},{"id":92151,"name":"4: tid=92151 "mech""},{"id":92152,"name":"5: tid=92152 "mech""},{"id":92153,"name":"6: tid=92153 "mech""},{"id":92154,"name":"7: tid=92154 "mech""},{"id":92155,"name":"8: tid=92155 "mech""},{"id":92156,"name":"9: tid=92156 "mech""},{"id":92157,"name":"10: tid=92157 "mech""},{"id":92158,"name":"11: tid=92158 "mech""},{"id":92159,"name":"12: tid=92159 "mech""},{"id":92160,"name":"13: tid=92160 "mech""},{"id":92161,"name":"14: tid=92161 "mech""},{"id":92162,"name":"15: tid=92162 "mech""},{"id":92163,"name":"16: tid=92163 "mech""},{"id":92164,"name":"17: tid=92164 "mech""},{"id":92165,"name":"18: tid=92165 "mech""},{"id":92166,"name":"19: tid=92166 "mech""}]}}
[2023-02-05T18:50:03.616Z DEBUG codelldb::dap_codec] --> {"command":"stackTrace","arguments":{"threadId":92148,"startFrame":0,"levels":1},"type":"request","seq":11}
[2023-02-05T18:50:03.621Z DEBUG codelldb::dap_codec] <-- {"seq":28,"type":"response","request_seq":11,"success":true,"command":"stackTrace","body":{"stackFrames":[{"column":20,"id":1001,"line":233,"name":"<mech_syntax::langserver::backend::Backend as tower_lsp::LanguageServer>::did_change::{{closure}}","source":{"name":"backend.rs","path":"/home/kkren/mech/src/syntax/src/langserver/backend.rs"}}],"totalFrames":65}}
[2023-02-05T18:50:04.043Z DEBUG codelldb::dap_codec] --> {"command":"stackTrace","arguments":{"threadId":92148,"startFrame":1,"levels":19},"type":"request","seq":12}
[2023-02-05T18:50:04.043Z DEBUG codelldb::disassembly] mech<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll + 93 at mod.rs:91:19 [2023-02-05T18:50:04.044Z DEBUG codelldb::disassembly] mech<core::pin::Pin as core::future::future::Future>::poll + 103 at future.rs:124:9
[2023-02-05T18:50:04.044Z DEBUG codelldb::disassembly] mech<core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll + 92 at mod.rs:91:19 [2023-02-05T18:50:04.045Z DEBUG codelldb::disassembly] mech<core::future::from_generator::GenFuture as core::future::future::Future>::poll + 92 at mod.rs:91:19
[2023-02-05T18:50:04.046Z DEBUG codelldb::disassembly] mech<core::pin::Pin<P> as core::future::future::Future>::poll + 118 at future.rs [2023-02-05T18:50:04.046Z DEBUG codelldb::disassembly] mech<core::future::from_generator::GenFuture as core::future::future::Future>::poll + 159 at mod.rs:91:19
[2023-02-05T18:50:04.047Z DEBUG codelldb::dap_codec] <-- {"seq":29,"type":"response","request_seq":12,"success":true,"command":"stackTrace","body":{"stackFrames":[{"column":0,"id":1002,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1000}},{"column":0,"id":1003,"line":24,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1001}},{"column":1,"id":1004,"line":110,"name":"tower_lsp::generated::register_lsp_methods::did_change::{{closure}}","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/lib.rs"}},{"column":0,"id":1005,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1002}},{"column":63,"id":1006,"line":53,"name":"tower_lsp::jsonrpc::router::Router<S,E>::method::{{closure}}::{{closure}}::{{closure}}","source":{"name":"router.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/jsonrpc/router.rs"}},{"column":0,"id":1007,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1003}},{"column":0,"id":1008,"line":24,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1001}},{"column":37,"id":1009,"line":55,"name":"<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"map.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/future/map.rs"}},{"column":13,"id":1010,"line":91,"name":"<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/lib.rs"}},{"column":0,"id":1011,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":0,"id":1012,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":0,"id":1013,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":31,"id":1014,"line":119,"name":"<tower_lsp::service::LspService as tower_service::Service<tower_lsp::jsonrpc::Request>>::call::{{closure}}","source":{"name":"service.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/service.rs"}},{"column":0,"id":1015,"line":28,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1005}},{"column":0,"id":1016,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":9,"id":1017,"line":82,"name":"::try_poll","source":{"name":"future.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-0.3.25/src/future.rs"}},{"column":9,"id":1018,"line":34,"name":"<futures_util::future::try_future::into_future::IntoFuture as core::future::future::Future>::poll","source":{"name":"into_future.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/try_future/into_future.rs"}},{"column":37,"id":1019,"line":55,"name":"<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"map.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/future/map.rs"}},{"column":13,"id":1020,"line":91,"name":"<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/lib.rs"}}],"totalFrames":65}}
[2023-02-05T18:50:04.047Z DEBUG codelldb::dap_codec] --> {"command":"scopes","arguments":{"frameId":1001},"type":"request","seq":13}
[2023-02-05T18:50:04.047Z DEBUG codelldb::dap_codec] <-- {"seq":30,"type":"response","request_seq":13,"success":true,"command":"scopes","body":{"scopes":[{"expensive":false,"name":"Local","variablesReference":1021},{"expensive":false,"name":"Static","variablesReference":1022},{"expensive":false,"name":"Global","variablesReference":1023},{"expensive":false,"name":"Registers","variablesReference":1024}]}}
[2023-02-05T18:50:04.050Z DEBUG codelldb::dap_codec] --> {"command":"variables","arguments":{"variablesReference":1021},"type":"request","seq":14}
[2023-02-05T18:50:04.061Z DEBUG codelldb::dap_codec] <-- {"seq":31,"type":"response","request_seq":14,"success":true,"command":"variables","body":{"variables":[{"evaluateName":"","memoryReference":"0x7FFED5BD5318","name":"","type":"core::future::ResumeTy","value":"{...}","variablesReference":1025},{"evaluateName":"self","memoryReference":"0x55AF7A014500","name":"self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1026},{"evaluateName":"params","memoryReference":"0x55AF7A014588","name":"params","type":"lsp_types::DidChangeTextDocumentParams","value":"{...}","variablesReference":1030},{"evaluateName":"_task_context","memoryReference":"0x7FFED5BD5310","name":"_task_context","type":"core::future::ResumeTy","value":"{...}","variablesReference":1028},{"evaluateName":"__self","memoryReference":"0x55AF7A014580","name":"__self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1029},{"evaluateName":"uri","memoryReference":"0x7FFED5BD43B0","name":"uri","type":"url::Url","value":"{scheme_end:4, username_end:7, host_start:7, ...}","variablesReference":1031},{"evaluateName":"source_code_ref","memoryReference":"0x7FFED5BD5340","name":"source_code_ref","type":"&alloc::string::String","value":""#table = [1,2,3]\ntable2 = [3,4] "","variablesReference":1032},{"evaluateName":"tree","memoryReference":"0x55AF7A014698","name":"tree","type":"mech_core::nodes::ParserNode::Root","value":"{...}","variablesReference":1033},{"evaluateName":"ast","memoryReference":"0x7FFED5BD47F8","name":"ast","type":"mech_syntax::ast::Ast","value":"{depth:112}","variablesReference":1034}]}}
[2023-02-05T18:50:07.870Z DEBUG codelldb::dap_codec] --> {"command":"completions","arguments":{"frameId":1001,"text":"s","column":2,"line":1},"type":"request","seq":15}
[2023-02-05T18:50:07.870Z DEBUG codelldb::dap_codec] <-- {"seq":32,"type":"response","request_seq":15,"success":true,"command":"completions","body":{"targets":[{"label":"s"}]}}
[2023-02-05T18:50:10.019Z DEBUG codelldb::dap_codec] --> {"command":"evaluate","arguments":{"expression":"set set target.max-string-summary-length 10000","frameId":1001,"context":"repl"},"type":"request","seq":16}
[2023-02-05T18:50:10.019Z DEBUG codelldb::debug_session::variables] set set target.max-string-summary-length 10000 -> SuccessFinishResult, Error:  Success
[2023-02-05T18:50:10.019Z DEBUG codelldb::dap_codec] <-- {"seq":33,"type":"response","request_seq":16,"success":true,"command":"evaluate","body":{"result":"","variablesReference":0}}
[2023-02-05T18:50:10.024Z DEBUG codelldb::dap_codec] --> {"command":"scopes","arguments":{"frameId":1001},"type":"request","seq":17}
[2023-02-05T18:50:10.024Z DEBUG codelldb::dap_codec] <-- {"seq":34,"type":"response","request_seq":17,"success":true,"command":"scopes","body":{"scopes":[{"expensive":false,"name":"Local","variablesReference":1035},{"expensive":false,"name":"Static","variablesReference":1036},{"expensive":false,"name":"Global","variablesReference":1037},{"expensive":false,"name":"Registers","variablesReference":1038}]}}
[2023-02-05T18:50:10.025Z DEBUG codelldb::dap_codec] --> {"command":"variables","arguments":{"variablesReference":1035},"type":"request","seq":18}
[2023-02-05T18:50:10.026Z DEBUG codelldb::dap_codec] <-- {"seq":35,"type":"response","request_seq":18,"success":true,"command":"variables","body":{"variables":[{"evaluateName":"","memoryReference":"0x7FFED5BD5318","name":"","type":"core::future::ResumeTy","value":"{...}","variablesReference":1039},{"evaluateName":"self","memoryReference":"0x55AF7A014500","name":"self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1040},{"evaluateName":"params","memoryReference":"0x55AF7A014588","name":"params","type":"lsp_types::DidChangeTextDocumentParams","value":"{...}","variablesReference":1044},{"evaluateName":"_task_context","memoryReference":"0x7FFED5BD5310","name":"_task_context","type":"core::future::ResumeTy","value":"{...}","variablesReference":1042},{"evaluateName":"__self","memoryReference":"0x55AF7A014580","name":"__self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1043},{"evaluateName":"uri","memoryReference":"0x7FFED5BD43B0","name":"uri","type":"url::Url","value":"{scheme_end:4, username_end:7, host_start:7, ...}","variablesReference":1045},{"evaluateName":"source_code_ref","memoryReference":"0x7FFED5BD5340","name":"source_code_ref","type":"&alloc::string::String","value":""#table = [1,2,3]\ntable2 = [3,4] "","variablesReference":1046},{"evaluateName":"tree","memoryReference":"0x55AF7A014698","name":"tree","type":"mech_core::nodes::ParserNode::Root","value":"{...}","variablesReference":1047},{"evaluateName":"ast","memoryReference":"0x7FFED5BD47F8","name":"ast","type":"mech_syntax::ast::Ast","value":"{depth:112}","variablesReference":1048}]}}
[2023-02-05T18:50:12.763Z DEBUG codelldb::dap_codec] --> {"command":"next","arguments":{"threadId":92148},"type":"request","seq":19}
[2023-02-05T18:50:12.764Z DEBUG codelldb::dap_codec] <-- {"seq":36,"type":"response","request_seq":19,"success":true,"command":"next"}
[2023-02-05T18:50:12.764Z DEBUG codelldb::debug_session] Debug event: 0x55973b671710 Event: broadcaster = 0x55973b546778 (lldb.process), type = 0x00000001 (state-changed), data = { process = 0x55973b546740 (pid = 92148), state = running}
[2023-02-05T18:50:12.764Z DEBUG codelldb::dap_codec] <-- {"seq":37,"type":"event","event":"continued","body":{"allThreadsContinued":true,"threadId":0}}
[2023-02-05T18:50:12.767Z DEBUG codelldb::debug_session::breakpoints] Callback for breakpoint location 1.2: where = mech`<mech_syntax::langserver::backend::Backend as tower_lsp::LanguageServer>::did_change::{{closure}} + 4922 at backend.rs:233:20, address = 0x000055af7785b4ca, resolved, hit count = 1
[2023-02-05T18:50:12.767Z DEBUG codelldb::debug_session] Debug event: 0x7f99500181a0 Event: broadcaster = 0x55973b546778 (lldb.process), type = 0x00000001 (state-changed), data = { process = 0x55973b546740 (pid = 92148), state = stopped}
[2023-02-05T18:50:12.767Z DEBUG codelldb::dap_codec] <-- {"seq":38,"type":"event","event":"stopped","body":{"allThreadsStopped":true,"reason":"breakpoint","threadId":92148}}
[2023-02-05T18:50:12.772Z DEBUG codelldb::dap_codec] --> {"command":"threads","type":"request","seq":20}
[2023-02-05T18:50:12.772Z DEBUG codelldb::dap_codec] <-- {"seq":39,"type":"response","request_seq":20,"success":true,"command":"threads","body":{"threads":[{"id":92148,"name":"1: tid=92148 "mech""},{"id":92149,"name":"2: tid=92149 "mech""},{"id":92150,"name":"3: tid=92150 "mech""},{"id":92151,"name":"4: tid=92151 "mech""},{"id":92152,"name":"5: tid=92152 "mech""},{"id":92153,"name":"6: tid=92153 "mech""},{"id":92154,"name":"7: tid=92154 "mech""},{"id":92155,"name":"8: tid=92155 "mech""},{"id":92156,"name":"9: tid=92156 "mech""},{"id":92157,"name":"10: tid=92157 "mech""},{"id":92158,"name":"11: tid=92158 "mech""},{"id":92159,"name":"12: tid=92159 "mech""},{"id":92160,"name":"13: tid=92160 "mech""},{"id":92161,"name":"14: tid=92161 "mech""},{"id":92162,"name":"15: tid=92162 "mech""},{"id":92163,"name":"16: tid=92163 "mech""},{"id":92164,"name":"17: tid=92164 "mech""},{"id":92165,"name":"18: tid=92165 "mech""},{"id":92166,"name":"19: tid=92166 "mech""}]}}
[2023-02-05T18:50:12.773Z DEBUG codelldb::dap_codec] --> {"command":"stackTrace","arguments":{"threadId":92148,"startFrame":0,"levels":1},"type":"request","seq":21}
[2023-02-05T18:50:12.775Z DEBUG codelldb::dap_codec] <-- {"seq":40,"type":"response","request_seq":21,"success":true,"command":"stackTrace","body":{"stackFrames":[{"column":20,"id":1001,"line":233,"name":"<mech_syntax::langserver::backend::Backend as tower_lsp::LanguageServer>::did_change::{{closure}}","source":{"name":"backend.rs","path":"/home/kkren/mech/src/syntax/src/langserver/backend.rs"}}],"totalFrames":65}}
[2023-02-05T18:50:13.180Z DEBUG codelldb::dap_codec] --> {"command":"scopes","arguments":{"frameId":1001},"type":"request","seq":22}
[2023-02-05T18:50:13.180Z DEBUG codelldb::dap_codec] <-- {"seq":41,"type":"response","request_seq":22,"success":true,"command":"scopes","body":{"scopes":[{"expensive":false,"name":"Local","variablesReference":1035},{"expensive":false,"name":"Static","variablesReference":1036},{"expensive":false,"name":"Global","variablesReference":1037},{"expensive":false,"name":"Registers","variablesReference":1038}]}}
[2023-02-05T18:50:13.182Z DEBUG codelldb::dap_codec] --> {"command":"variables","arguments":{"variablesReference":1035},"type":"request","seq":23}
[2023-02-05T18:50:13.183Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1035)/params)
[2023-02-05T18:50:13.187Z DEBUG codelldb::dap_codec] <-- {"seq":42,"type":"response","request_seq":23,"success":true,"command":"variables","body":{"variables":[{"evaluateName":"","memoryReference":"0x7FFED5BD5318","name":"","type":"core::future::ResumeTy","value":"{...}","variablesReference":1039},{"evaluateName":"self","memoryReference":"0x55AF7A014500","name":"self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1040},{"evaluateName":"params","memoryReference":"0x55AF7A014588","name":"params","type":"lsp_types::DidChangeTextDocumentParams","value":"{...}","variablesReference":1049},{"evaluateName":"_task_context","memoryReference":"0x7FFED5BD5310","name":"_task_context","type":"core::future::ResumeTy","value":"{...}","variablesReference":1042},{"evaluateName":"__self","memoryReference":"0x55AF7A014580","name":"__self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1043},{"evaluateName":"uri","memoryReference":"0x7FFED5BD43B0","name":"uri","type":"url::Url","value":"{scheme_end:4, username_end:7, host_start:7, ...}","variablesReference":1045},{"evaluateName":"source_code_ref","memoryReference":"0x7FFED5BD5340","name":"source_code_ref","type":"&alloc::string::String","value":""#table = [1,2,3]\ntable2 = [3,4] "","variablesReference":1046},{"evaluateName":"tree","memoryReference":"0x55AF7A014698","name":"tree","type":"mech_core::nodes::ParserNode::Root","value":"{...}","variablesReference":1047},{"evaluateName":"ast","memoryReference":"0x7FFED5BD47F8","name":"ast","type":"mech_syntax::ast::Ast","value":"{depth:112}","variablesReference":1048},{"evaluateName":"res","memoryReference":"0x7FFED5BD48C0","name":"res","type":"alloc::string::String","value":""├Root\n│├Program(None)\n││├Section(None)\n│││├Statement(@ [1:1, 1:17))\n││││├TableDefine\n│││││├Table(#'t', 'a', 'b', 'l', 'e' @ [1:2, 1:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││├TableRow\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['1'] @ [1:11, 1:12))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['2'] @ [1:13, 1:14))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['3'] @ [1:15, 1:16))\n│││├Statement(@ [2:1, 2:15))\n││││├VariableDefine\n│││││├Identifier('t', 'a', 'b', 'l', 'e', '2' @ [2:1, 2:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││�..."","variablesReference":1050}]}}
[2023-02-05T18:50:13.197Z DEBUG codelldb::dap_codec] --> {"command":"stackTrace","arguments":{"threadId":92148,"startFrame":1,"levels":19},"type":"request","seq":24}
[2023-02-05T18:50:13.197Z DEBUG codelldb::dap_codec] <-- {"seq":43,"type":"response","request_seq":24,"success":true,"command":"stackTrace","body":{"stackFrames":[{"column":0,"id":1002,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1000}},{"column":0,"id":1003,"line":24,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1001}},{"column":1,"id":1004,"line":110,"name":"tower_lsp::generated::register_lsp_methods::did_change::{{closure}}","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/lib.rs"}},{"column":0,"id":1005,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1002}},{"column":63,"id":1006,"line":53,"name":"tower_lsp::jsonrpc::router::Router<S,E>::method::{{closure}}::{{closure}}::{{closure}}","source":{"name":"router.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/jsonrpc/router.rs"}},{"column":0,"id":1007,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1003}},{"column":0,"id":1008,"line":24,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1001}},{"column":37,"id":1009,"line":55,"name":"<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"map.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/future/map.rs"}},{"column":13,"id":1010,"line":91,"name":"<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/lib.rs"}},{"column":0,"id":1011,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":0,"id":1012,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":0,"id":1013,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":31,"id":1014,"line":119,"name":"<tower_lsp::service::LspService as tower_service::Service<tower_lsp::jsonrpc::Request>>::call::{{closure}}","source":{"name":"service.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/service.rs"}},{"column":0,"id":1015,"line":28,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1005}},{"column":0,"id":1016,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":9,"id":1017,"line":82,"name":"::try_poll","source":{"name":"future.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-0.3.25/src/future.rs"}},{"column":9,"id":1018,"line":34,"name":"<futures_util::future::try_future::into_future::IntoFuture as core::future::future::Future>::poll","source":{"name":"into_future.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/try_future/into_future.rs"}},{"column":37,"id":1019,"line":55,"name":"<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"map.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/future/map.rs"}},{"column":13,"id":1020,"line":91,"name":"<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/lib.rs"}}],"totalFrames":65}}
[2023-02-05T18:50:13.341Z DEBUG codelldb::dap_codec] --> {"command":"next","arguments":{"threadId":92148},"type":"request","seq":25}
[2023-02-05T18:50:13.342Z DEBUG codelldb::dap_codec] <-- {"seq":44,"type":"response","request_seq":25,"success":true,"command":"next"}
[2023-02-05T18:50:13.342Z DEBUG codelldb::debug_session] Debug event: 0x7f99543026f0 Event: broadcaster = 0x55973b546778 (lldb.process), type = 0x00000001 (state-changed), data = { process = 0x55973b546740 (pid = 92148), state = running}
[2023-02-05T18:50:13.342Z DEBUG codelldb::dap_codec] <-- {"seq":45,"type":"event","event":"continued","body":{"allThreadsContinued":true,"threadId":0}}
[2023-02-05T18:50:13.343Z DEBUG codelldb::debug_session] Debug event: 0x55973b915800 Event: broadcaster = 0x55973b546778 (lldb.process), type = 0x00000001 (state-changed), data = { process = 0x55973b546740 (pid = 92148), state = stopped}
[2023-02-05T18:50:13.343Z DEBUG codelldb::dap_codec] <-- {"seq":46,"type":"event","event":"stopped","body":{"allThreadsStopped":true,"reason":"step","threadId":92148}}
[2023-02-05T18:50:13.349Z DEBUG codelldb::dap_codec] --> {"command":"threads","type":"request","seq":26}
[2023-02-05T18:50:13.349Z DEBUG codelldb::dap_codec] <-- {"seq":47,"type":"response","request_seq":26,"success":true,"command":"threads","body":{"threads":[{"id":92148,"name":"1: tid=92148 "mech""},{"id":92149,"name":"2: tid=92149 "mech""},{"id":92150,"name":"3: tid=92150 "mech""},{"id":92151,"name":"4: tid=92151 "mech""},{"id":92152,"name":"5: tid=92152 "mech""},{"id":92153,"name":"6: tid=92153 "mech""},{"id":92154,"name":"7: tid=92154 "mech""},{"id":92155,"name":"8: tid=92155 "mech""},{"id":92156,"name":"9: tid=92156 "mech""},{"id":92157,"name":"10: tid=92157 "mech""},{"id":92158,"name":"11: tid=92158 "mech""},{"id":92159,"name":"12: tid=92159 "mech""},{"id":92160,"name":"13: tid=92160 "mech""},{"id":92161,"name":"14: tid=92161 "mech""},{"id":92162,"name":"15: tid=92162 "mech""},{"id":92163,"name":"16: tid=92163 "mech""},{"id":92164,"name":"17: tid=92164 "mech""},{"id":92165,"name":"18: tid=92165 "mech""},{"id":92166,"name":"19: tid=92166 "mech""}]}}
[2023-02-05T18:50:13.351Z DEBUG codelldb::dap_codec] --> {"command":"stackTrace","arguments":{"threadId":92148,"startFrame":0,"levels":1},"type":"request","seq":27}
[2023-02-05T18:50:13.353Z DEBUG codelldb::dap_codec] <-- {"seq":48,"type":"response","request_seq":27,"success":true,"command":"stackTrace","body":{"stackFrames":[{"column":23,"id":1001,"line":234,"name":"<mech_syntax::langserver::backend::Backend as tower_lsp::LanguageServer>::did_change::{{closure}}","source":{"name":"backend.rs","path":"/home/kkren/mech/src/syntax/src/langserver/backend.rs"}}],"totalFrames":65}}
[2023-02-05T18:50:13.758Z DEBUG codelldb::dap_codec] --> {"command":"scopes","arguments":{"frameId":1001},"type":"request","seq":28}
[2023-02-05T18:50:13.758Z DEBUG codelldb::dap_codec] <-- {"seq":49,"type":"response","request_seq":28,"success":true,"command":"scopes","body":{"scopes":[{"expensive":false,"name":"Local","variablesReference":1035},{"expensive":false,"name":"Static","variablesReference":1036},{"expensive":false,"name":"Global","variablesReference":1037},{"expensive":false,"name":"Registers","variablesReference":1038}]}}
[2023-02-05T18:50:13.760Z DEBUG codelldb::dap_codec] --> {"command":"variables","arguments":{"variablesReference":1035},"type":"request","seq":29}
[2023-02-05T18:50:13.762Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1035)/params)
[2023-02-05T18:50:13.765Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1035)/tree)
[2023-02-05T18:50:13.765Z DEBUG codelldb::dap_codec] <-- {"seq":50,"type":"response","request_seq":29,"success":true,"command":"variables","body":{"variables":[{"evaluateName":"","memoryReference":"0x7FFED5BD5318","name":"","type":"core::future::ResumeTy","value":"{...}","variablesReference":1039},{"evaluateName":"self","memoryReference":"0x55AF7A014500","name":"self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1040},{"evaluateName":"params","memoryReference":"0x55AF7A014588","name":"params","type":"lsp_types::DidChangeTextDocumentParams","value":"{...}","variablesReference":1051},{"evaluateName":"_task_context","memoryReference":"0x7FFED5BD5310","name":"_task_context","type":"core::future::ResumeTy","value":"{...}","variablesReference":1042},{"evaluateName":"__self","memoryReference":"0x55AF7A014580","name":"__self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1043},{"evaluateName":"uri","memoryReference":"0x7FFED5BD43B0","name":"uri","type":"url::Url","value":"{scheme_end:4, username_end:7, host_start:7, ...}","variablesReference":1045},{"evaluateName":"source_code_ref","memoryReference":"0x7FFED5BD5340","name":"source_code_ref","type":"&alloc::string::String","value":""#table = [1,2,3]\ntable2 = [3,4] "","variablesReference":1046},{"evaluateName":"tree","memoryReference":"0x7FFED5BD48A0","name":"tree","type":"alloc::string::String","value":""├Root\n│├Program(None)\n││├Section(None)\n│││├Statement(@ [1:1, 1:17))\n││││├TableDefine\n│││││├Table(#'t', 'a', 'b', 'l', 'e' @ [1:2, 1:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││├TableRow\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['1'] @ [1:11, 1:12))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['2'] @ [1:13, 1:14))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['3'] @ [1:15, 1:16))\n│││├Statement(@ [2:1, 2:15))\n││││├VariableDefine\n│││││├Identifier('t', 'a', 'b', 'l', 'e', '2' @ [2:1, 2:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││�..."","variablesReference":1052},{"evaluateName":"ast","memoryReference":"0x7FFED5BD47F8","name":"ast","type":"mech_syntax::ast::Ast","value":"{depth:112}","variablesReference":1048}]}}
[2023-02-05T18:50:13.775Z DEBUG codelldb::dap_codec] --> {"command":"stackTrace","arguments":{"threadId":92148,"startFrame":1,"levels":19},"type":"request","seq":30}
[2023-02-05T18:50:13.775Z DEBUG codelldb::dap_codec] <-- {"seq":51,"type":"response","request_seq":30,"success":true,"command":"stackTrace","body":{"stackFrames":[{"column":0,"id":1002,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1000}},{"column":0,"id":1003,"line":24,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1001}},{"column":1,"id":1004,"line":110,"name":"tower_lsp::generated::register_lsp_methods::did_change::{{closure}}","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/lib.rs"}},{"column":0,"id":1005,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1002}},{"column":63,"id":1006,"line":53,"name":"tower_lsp::jsonrpc::router::Router<S,E>::method::{{closure}}::{{closure}}::{{closure}}","source":{"name":"router.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/jsonrpc/router.rs"}},{"column":0,"id":1007,"line":22,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1003}},{"column":0,"id":1008,"line":24,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1001}},{"column":37,"id":1009,"line":55,"name":"<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"map.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/future/map.rs"}},{"column":13,"id":1010,"line":91,"name":"<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/lib.rs"}},{"column":0,"id":1011,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":0,"id":1012,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":0,"id":1013,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":31,"id":1014,"line":119,"name":"<tower_lsp::service::LspService as tower_service::Service<tower_lsp::jsonrpc::Request>>::call::{{closure}}","source":{"name":"service.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-lsp-0.17.0/src/service.rs"}},{"column":0,"id":1015,"line":28,"name":"<core::future::from_generator::GenFuture as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::future::from_generator::GenFuture as core::future::future::Future>::poll","sourceReference":1005}},{"column":0,"id":1016,"line":27,"name":"<core::pin::Pin as core::future::future::Future>::poll","presentationHint":"subtle","source":{"name":"@<core::pin::Pin as core::future::future::Future>::poll","sourceReference":1004}},{"column":9,"id":1017,"line":82,"name":"::try_poll","source":{"name":"future.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-core-0.3.25/src/future.rs"}},{"column":9,"id":1018,"line":34,"name":"<futures_util::future::try_future::into_future::IntoFuture as core::future::future::Future>::poll","source":{"name":"into_future.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/try_future/into_future.rs"}},{"column":37,"id":1019,"line":55,"name":"<futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"map.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/future/future/map.rs"}},{"column":13,"id":1020,"line":91,"name":"<futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll","source":{"name":"lib.rs","path":"/home/kkren/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/lib.rs"}}],"totalFrames":65}}
[2023-02-05T18:50:18.608Z DEBUG codelldb::dap_codec] --> {"command":"completions","arguments":{"frameId":1001,"text":"p","column":2,"line":1},"type":"request","seq":31}
[2023-02-05T18:50:18.608Z DEBUG codelldb::dap_codec] <-- {"seq":52,"type":"response","request_seq":31,"success":true,"command":"completions","body":{"targets":[{"label":"p"}]}}
[2023-02-05T18:50:19.924Z DEBUG codelldb::dap_codec] --> {"command":"evaluate","arguments":{"expression":"po tree","frameId":1001,"context":"repl"},"type":"request","seq":32}
[2023-02-05T18:50:19.928Z DEBUG codelldb::debug_session::variables] po tree -> SuccessFinishResult, Error:  Success
Output Message:
"├Root
│├Program(None)
││├Section(None)
│││├Statement(@ [1:1, 1:17))
││││├TableDefine
│││││├Table(#'t', 'a', 'b', 'l', 'e' @ [1:2, 1:7))
│││││├Expression
││││││├AnonymousTableDefine
│││││││├TableRow
││││││││├TableColumn
│││││││││├Expression
││││││││││├NumberLiteral(['1'] @ [1:11, 1:12))
││││││││├TableColumn
│││││││││├Expression
││││││││││├NumberLiteral(['2'] @ [1:13, 1:14))
││││││││├TableColumn
│││││││││├Expression
││││││││││├NumberLiteral(['3'] @ [1:15, 1:16))
│││├Statement(@ [2:1, 2:15))
││││├VariableDefine
│││││├Identifier('t', 'a', 'b', 'l', 'e', '2' @ [2:1, 2:7))
│││││├Expression
││││││├AnonymousTableDefine
│││││││�..."
[2023-02-05T18:50:19.928Z DEBUG codelldb::dap_codec] <-- {"seq":53,"type":"event","event":"output","body":{"output":""├Root\n│├Program(None)\n││├Section(None)\n│││├Statement(@ [1:1, 1:17))\n││││├TableDefine\n│││││├Table(#'t', 'a', 'b', 'l', 'e' @ [1:2, 1:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││├TableRow\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['1'] @ [1:11, 1:12))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['2'] @ [1:13, 1:14))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['3'] @ [1:15, 1:16))\n│││├Statement(@ [2:1, 2:15))\n││││├VariableDefine\n│││││├Identifier('t', 'a', 'b', 'l', 'e', '2' @ [2:1, 2:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││�..."\n\n"}}
[2023-02-05T18:50:19.928Z DEBUG codelldb::dap_codec] <-- {"seq":54,"type":"response","request_seq":32,"success":true,"command":"evaluate","body":{"result":"","variablesReference":0}}
[2023-02-05T18:50:19.931Z DEBUG codelldb::dap_codec] --> {"command":"scopes","arguments":{"frameId":1001},"type":"request","seq":33}
[2023-02-05T18:50:19.931Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1001)/[locs])
[2023-02-05T18:50:19.931Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1001)/[stat])
[2023-02-05T18:50:19.931Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1001)/[glob])
[2023-02-05T18:50:19.931Z WARN  codelldb::handles] Parent/key combination is not unique (Some(1001)/[regs])
[2023-02-05T18:50:19.931Z DEBUG codelldb::dap_codec] <-- {"seq":55,"type":"response","request_seq":33,"success":true,"command":"scopes","body":{"scopes":[{"expensive":false,"name":"Local","variablesReference":1053},{"expensive":false,"name":"Static","variablesReference":1054},{"expensive":false,"name":"Global","variablesReference":1055},{"expensive":false,"name":"Registers","variablesReference":1056}]}}
[2023-02-05T18:50:19.933Z DEBUG codelldb::dap_codec] --> {"command":"variables","arguments":{"variablesReference":1053},"type":"request","seq":34}
[2023-02-05T18:50:19.935Z DEBUG codelldb::dap_codec] <-- {"seq":56,"type":"response","request_seq":34,"success":true,"command":"variables","body":{"variables":[{"evaluateName":"","memoryReference":"0x7FFED5BD5318","name":"","type":"core::future::ResumeTy","value":"{...}","variablesReference":1057},{"evaluateName":"self","memoryReference":"0x55AF7A014500","name":"self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1058},{"evaluateName":"params","memoryReference":"0x55AF7A014588","name":"params","type":"lsp_types::DidChangeTextDocumentParams","value":"{...}","variablesReference":1062},{"evaluateName":"_task_context","memoryReference":"0x7FFED5BD5310","name":"_task_context","type":"core::future::ResumeTy","value":"{...}","variablesReference":1060},{"evaluateName":"__self","memoryReference":"0x55AF7A014580","name":"__self","type":"&mech_syntax::langserver::backend::Backend","value":"{...}","variablesReference":1061},{"evaluateName":"uri","memoryReference":"0x7FFED5BD43B0","name":"uri","type":"url::Url","value":"{scheme_end:4, username_end:7, host_start:7, ...}","variablesReference":1063},{"evaluateName":"source_code_ref","memoryReference":"0x7FFED5BD5340","name":"source_code_ref","type":"&alloc::string::String","value":""#table = [1,2,3]\ntable2 = [3,4] "","variablesReference":1064},{"evaluateName":"tree","memoryReference":"0x7FFED5BD48A0","name":"tree","type":"alloc::string::String","value":""├Root\n│├Program(None)\n││├Section(None)\n│││├Statement(@ [1:1, 1:17))\n││││├TableDefine\n│││││├Table(#'t', 'a', 'b', 'l', 'e' @ [1:2, 1:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││├TableRow\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['1'] @ [1:11, 1:12))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['2'] @ [1:13, 1:14))\n││││││││├TableColumn\n│││││││││├Expression\n││││││││││├NumberLiteral(['3'] @ [1:15, 1:16))\n│││├Statement(@ [2:1, 2:15))\n││││├VariableDefine\n│││││├Identifier('t', 'a', 'b', 'l', 'e', '2' @ [2:1, 2:7))\n│││││├Expression\n││││││├AnonymousTableDefine\n│││││││�..."","variablesReference":1067},{"evaluateName":"ast","memoryReference":"0x7FFED5BD47F8","name":"ast","type":"mech_syntax::ast::Ast","value":"{depth:112}","variablesReference":1066}]}}

I've changed Rust string formatter to read target.max-string-summary-length.

I have tried /cmd settings set target.max-string-summary-length 10000, but it doesn't change anything.
@vadimcn How did you fix this?

Okay, it seems the setting is only read during the initialization. So, it has to be added to the init commands:


Cancel payment - Inconsistency in reimbursement message after cancelling payment

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.26-1
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to workspace chat
Create a manual request
Open expense preview
Pay elsewhere the report
Refresh the page
Note that the reimbursement message is "You marked this report as manually reimbursed. This report will be reimbursed outside of Expensify."
Click 3-dot menu > Cancel payment
Refresh the page

Expected Result:
The reimbursement message will remain the same
Actual Result:
The reimbursement message changes to "You marked this report as reimbursed."
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/2b4dca78-2c44-456a-935b-57c7cfa015b9
View all open jobs on GitHub

#wave6-collect-submitters

Not a blocker.

Probably related to https://github.com/Expensify/App/pull/33836. CC: @Gonals

not overdue, waiting for automation to close

not overdue, waiting for PR to close

Closing as the fix for this was deployed.


gulp-babel + nyc gives wrong paths in coverage reports

Hi, I've also made an issue over at https://github.com/istanbuljs/nyc/issues/359, but this is starting to look more like a gulp-babel issue than an nyc issue.
I would really appreciate if someone here could have a look!

I'm triaging old issues on gulp-babel. Since this has been inactive for ages, I'm going to close it. Feel free to re-open if there's still something to discuss, but I'm assuming at this point it's been too long to address in a useful way.
If someone runs across this, feel free to file a new issue with a reproduction repository.


Include SF version in process title.

This change includes the currently running version string in the process title of the "main" process so that operators can quickly tell what's running.

This is a real error -- raise Exception('Code Error: Bad process name: %s' % name) -- I wonder what a valid process name is?


[x/stableswap] Precision tests for both stableswap CFMM solvers

Background
Our stableswap CFMM solvers (direct and binary search) hit precision-related issues on edge cases. This is especially a problem for our binary search solver as it risks hitting an infinite loop. #2591 should solve this, but we should make sure we have extensive edge case tests around precision-related issues to make sure our core stableswap CFMM solvers always function as intended.
Note: this issue is blocked on #2591
Suggested Design

Add tests for extremely high k values to stableswap solvers (at least one test for k > 100,000,000, ideally even for k = MaxDec)
Other edge case tests relating to multi-asset pools, different scaling factors etc.

Acceptance Criteria

All existing and new tests should pass

This issue is addressed by #2776 and #2591


Dependency dependency (transitive?)

Hey,
When I added sirupsen/logrus as a dependency to my project this ended up in the vendor.json:
		{
			"checksumSHA1": "2ncnCWXu6MhDubZJYmyFNBYsrXE=",
			"origin": "github.com/sirupsen/logrus/vendor/golang.org/x/sys/unix",
			"path": "golang.org/x/sys/unix",
			"revision": "94b76065f2d2081d0fef24a6e67c571f51a6408a",
			"revisionTime": "2017-07-01T06:49:51Z"
		},

but when doing govendor sync on a clean checkout that  package always fails with
fatal: Could not parse object '94b76065f2d2081d0fef24a6e67c571f51a6408a'

in
 .cache/govendor/github.com/sirupsen/logrus/; git reset --hard 94b76065f2d2081d0fef24a6e67c571f51a6408a

and surely enough sirupsen/logrus dont have any commits with that revision. If I update logrus to a newer revision this revision gets updated as well but the problem persists.
I'm guessing that the revision is a revision within x/sys/unix and not logrus?
We removed those lines from vendor.json and added x/sys/unix as a toplevel dependency instead and that seems to solve the problem - I'm just curious if we did something wrong in the first go-around?

I have the same problem with govendor in Prometheus.

I'm guessing that the revision is a revision within x/sys/unix and not logrus?

Yes: https://github.com/golang/sys/commit/94b76065f2d2081d0fef24a6e67c571f51a6408a

Can you make a small repro?
I'm intrested in how you end up with github.com/sirupsen/logrus/vendor/golang.org/x/sys/unix in your origin.

Related to https://github.com/prometheus/prometheus/issues/3030. Not sure what happened there yet.


Bug: APIGatewayHttpResolver doesn't make custome attribute under requestContext.authorizer available in the function

Expected Behaviour
All paramters that are part of the input object unter authorizer are available in the function and accessible on the object.
Current Behaviour
APIGatewayHttpResolver doesn't pass in attribute from requestContext.authorizer. My understanding is that i can in the lambda authorizer can add ther custome attributes e.g. like tenantId but that doesn't get passed to the function. Currently the expected tenantId mis missing:
{"level":"ERROR","location":"initialize:22","message":"event: {'body': '{\"name\": \"test\"}', 'cookies': None, 'decoded_body': '{\"name\": \"test\"}', 'headers': {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'}, 'http_method': 'POST', 'is_base64_encoded': False, 'json_body': {'name': 'test'}, 'path': '/initialize', 'path_parameters': None, 'query_string_parameters': None, 'raw_event': '[SENSITIVE]', 'raw_path': '/prod/initialize', 'raw_query_string': '', 'request_context': {'account_id': '[Cannot be deserialized]', 'api_id': '[Cannot be deserialized]', 'authentication': None, 'authorizer': {'get_lambda': None, 'iam': None, 'jwt_claim': None, 'jwt_scopes': None, 'raw_event': '[SENSITIVE]'}, 'domain_name': '[Cannot be deserialized]', 'domain_prefix': '[Cannot be deserialized]', 'http': {'method': 'POST', 'path': '/initialize', 'protocol': 'HTTP/1.1', 'raw_event': '[SENSITIVE]', 'source_ip': '<IP_ADDRESS>', 'user_agent': 'Custom User Agent String'}, 'raw_event': '[SENSITIVE]', 'request_id': '[Cannot be deserialized]', 'route_key': '[Cannot be deserialized]', 'stage': 'prod', 'time': '[Cannot be deserialized]', 'time_epoch': '[Cannot be deserialized]'}, 'route_key': '$default', 'stage_variables': None, 'version': '2.0'}","timestamp":"2023-12-03 20:48:07,087+0000","service":"service_undefined"}

Code snippet
from aws_lambda_powertools.event_handler import APIGatewayHttpResolver
from aws_lambda_powertools import Logger
from aws_lambda_powertools.event_handler.exceptions import (
    ServiceError
)
import boto3
import json

app = APIGatewayHttpResolver()
s3_client = boto3.client('s3')
logger = Logger(level="ERROR")

@app.post("/initialize")
def initialize():
    logger.error(f"event: {app.current_event}")
    try:
        body = app.current_event.json_body
        #tenant_id = app.current_event.request_context.authorizer.tenantId
        if not body or 'name' not in body:
            raise ServiceError(502, "Name of file is required.")
        return {
            "message": "File upload initiated successfully.",
        }

    except Exception as e:
        logger.error(f"Error initiating multipart upload: {str(e)}")
        raise ServiceError(502, "Could not create multipart urls.")

def lambda_handler(event, context):
    return {
        "statusCode": 200,
        "body": json.dumps({
            "event": event,
            "tenantId": event.get("requestContext", {}).get("authorizer", {})
        })
    }
    #return app.resolve(event, context)

requreiments.txt
aws-lambda-powertools[tracer]  # Tracer requires AWS X-Ray SDK dependency
boto3

template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Sample SAM Template for powertools-quickstart
Globals:
    Function:
        Timeout: 10
        Environment:
            Variables:
                POWERTOOLS_LOG_LEVEL: DEBUG
Resources:
    UploaderFunction:
        Type: AWS::Serverless::Function
        Properties:
            CodeUri: hello_world/
            Handler: app.lambda_handler
            Runtime: python3.12
            Architectures:
                - x86_64
            Events:
                Initialize:
                    Type: HttpApi
                    Properties:
                        Path: /initialize
                        Method: post
Outputs:
    UploaderApi:
        Description: "API Gateway endpoint URL for Prod stage for Hello World function"
        Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"

 sam local invoke "UploaderFunction" -e ./events/initalize-event.json

initalize-event.json
{
  "version": "2.0",
  "routeKey": "$default",
  "rawPath": "/prod/initialize",
  "rawQueryString": "",
  "headers": {
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
  },
  "requestContext": {
    "http": {
      "method": "POST",
      "path": "/initialize",
      "protocol": "HTTP/1.1",
      "sourceIp": "<IP_ADDRESS>",
      "userAgent": "Custom User Agent String"
    },
    "authorizer": {
      "tenantId": "tenantA"
    },
    "stage": "prod"
  },
  "body": "{\"name\": \"test\"}",
  "isBase64Encoded": false
}

### Possible Solution

_No response_

### Steps to Reproduce

- add the code snippets to the template crated with `sam init --runtime python3.12 --dependency-manager pip --app-template hello-world --name powertools-quickstart`
- execute ` sam local invoke "UploaderFunction" -e ./events/initalize-event.json` (see above)
- see the log output that within the function the object doesn't contain the custome `tenantId` field on the `requestContext.authorizer` anymore.

### Powertools for AWS Lambda (Python) version

latest

### AWS Lambda function runtime

3.11

### Packaging format used

Lambda Layers

### Debugging logs

_No response_

Example project: https://github.com/dennisseidel/aws-powertool-bug-example

@dennisseidel ah that's not a bug (phew!). You'd have to use .get to access the key you inject from the authorizer. Since you can have arbitrary key and value types passed down by the Lambda Authorizer to your Lambda Integration, we wrap as a dictionary so you have full control (we wouldn't know otherwise).
Here's the updated line that causes an error
app.current_event.request_context.authorizer.get("tenantId")

# Instead of .<attribute> which would lead to an AttributeError
# app.current_event.request_context.authorizer.tenantId

Does that make sense?
That said, looking at the implementation we have an incorrect property get_lambda that shouldn't be there but we can remove it this coming week to avoid confusion :)

API Reference

Event type for the HTTP API Event Resolver - APIGatewayProxyEventV2
Request Context Authorizer V2 (HTTP API)

reopening as @leandrodamascena is testing and lambda key is injected in HTTP API, meaning .get() might not work as the authorization context is wrapped under the lambda key... hence why we had get_lambda, despite UX not being explicit enough.
we'll come back with a solution

@dennisseidel we improved the experience thanks to you! Today's release will have a new get_context() to make it less ambiguous for both API Gateway REST (v1) and HTTP API (v2).
from aws_lambda_powertools.event_handler import APIGatewayRestResolver
from aws_lambda_powertools import Logger

app = APIGatewayRestResolver()
logger = Logger(level="INFO")

@app.get("/")
def initialize():
    context: dict = app.current_event.request_context.authorizer.get_context()
    logger.info(context.get("tenantId"))

def lambda_handler(event, context):
    return app.resolve(event, context)


Set and access LiquidJS variables from within the headers or swallow LiquidJS newlines

What I have:
---
id: tomorrow
label: "Tomorrow"
title: "{% assign day = 'now' | date: '%a' %}{% if day == 'Fri' %}{{'now' | date: '%s' | plus: 259200 | date: '%d-%m-%Y'}}{% else %}{{'now' | date: '%s' | plus: 86400 | date: '%d-%m-%Y'}}{% endif %}"
---

{% assign yesterday = 'now' | date: '%d-%m-%Y' %}
{% if day == 'Fri' %}
{% assign tomorrow = 'now' | date: '%s' | plus: 345600 | date: '%d-%m-%Y' %}
{% else %}
{% assign tomorrow = 'now' | date: '%s' | plus: 172800 | date: '%d-%m-%Y' %}
{% endif %}

Yesterday: [[{{ yesterday }}]]
Tomorrow: [[{{ tomorrow }}]]

## Tasks

- [ ]

## Pomo

- [ ] [-p15]
- [ ] [-p5]
- [ ] [-p15]
- [ ] [-p5]
- [ ] [-p15]
- [ ] [-p5]
- [ ] [-p15]
- [ ] [-p5]
- [ ] [-p30]

## Notes

-

{% assign day = 'now' | date: '%a' %}
{% if day == 'Thu' || day == 'Tue' %}

## Silent Stand-Up

_Yesterday_

-

_Today_

-

{% endif %}

What I get when I generate a new note from the above template:

Solution:
Either ensure that all text parsed with LiquidJS is completely removed including new lines, or set up something in the header so that I can set variables from there and access them.
I'd be willing to help here, but I don't have much experience with JS at all.

https://github.com/azu/inkdrop-note-templates/issues/3#issuecomment-810233830
body is a body content.
It is not body in the front matter(yaml).


refactor: app configuration

including CI/CD

:tada: This PR is included in version 0.61.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


⚠ GitLab Server has degraded performance

In 14607d7, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 6691 ms

Resolved: GitLab Server performance has improved in f8b997b.


GUI improvements for sysadm

From @JoshDW19 on October 17, 2017 14:43
Can we have an icon for AppCafe on the right-click menu for sysadm? Adding applications should be one of the most used functions of a desktop. This will save the user from having to perform extra clicks any time they want a quick way to get into AppCafe and add applications.
Secondly, is there any workflow reason that the label to open sysadm client can't just say "Control Panel"? A control panel is what a user would expect. When you click on sysadm > local system it brings up the "sysadm: Control Panel".  I would suggest by making the "Local System" label "Control Panel" that it is more in line with what a user would expect.
Thank you!
Copied from original issue: trueos/trueos-core#1487

Since sysadm is multi system aware, this creates a problem of which the entry links against.  We could always tie it to the local system, but what if you're on a Mac or a Windows Machine.  I believe Ken indicated that we will move to having having the multi system client off by default and have a local only client on all the time.  This would allow us to short cut the most used tasks.
As the the labeling, we'll discuss that and figure out the best way to proceed with a local-only client.


error when trying to launch in termux

this is what i get in termux qemu-system-aarch64: --accel tcg,thread=multi: No MTTCG when guest word size > hosts
phone: xiaomi redmi 9a

this is what i get in termux qemu-system-aarch64: --accel tcg,thread=multi: No MTTCG when guest word size > hosts phone: xiaomi redmi 9a

this script is very old, don't try this, you can't get better result of performance when run arm64 base, there are no KVM then it very slow


Running annotate crashes on 'libtiff.5.dylib' (no such file)'

Python 3.12.6
uv for venv
Tried installing from pip, pip w/ github and from cloning the repository and doing an install -e .

pip install git+https://github.com/neuml/annotateai

using uv for pip...
 Updated https://github.com/neuml/annotateai (5838b4a)
Resolved 41 packages in 13ms
   Built annotateai @ git+https://github.com/neuml/annotateai@5838b4a354e3a0b546aafc146e77b3a8a2036183                                                                                Downloaded 1 package in 474ms
Installed 1 package in 0.90ms
 - annotateai==0.1.1 (from file:///Users/samm/git/annotateai)
 + annotateai==0.1.1 (from git+https://github.com/neuml/annotateai@5838b4a354e3a0b546aafc146e77b3a8a2036183)

(annotateai) [master] ~/git/annotateai $ annotate

dyld[92958]: Library not loaded: @rpath/libtiff.5.dylib
  Referenced from: <0141E98F-7328-3104-A192-EA741FF114C3> /Users/samm/miniconda3/lib/libgd.3.dylib
  Reason: tried: '/Users/samm/miniconda3/lib/libtiff.5.dylib' (no such file), '/Users/samm/miniconda3/bin/../lib/libtiff.5.dylib' (no such file), '/Users/samm/miniconda3/bin/../lib/libtiff.5.dylib' (no such file), '/usr/local/lib/libtiff.5.dylib' (no such file), '/usr/lib/libtiff.5.dylib' (no such file, not in dyld cache)
zsh: abort      annotate

Note: Not sure why it's trying to read from an old miniconda environment, I don't use miniconda and it's in the annotateai venv.

@davidmezzetti unfortunately not, I did try reinstalling gd and imagemagik to see if that would fix the issue. Is there perhaps a missing pip dependency?

I just did a dodgy hack to make it work:
ln -s /opt/homebrew/Cellar/libtiff/4.7.0/lib/libtiff.6.dylib /usr/local/lib/libtiff.5.dylib

I suspect the annotate package was compiled against libtiff.5.dylib, but the current version is libtiff.6.dylib.
Not really sure why it's trying to use 'miniconda', there's nothing in my env relating to that - perhaps it was built using it and has some hard coded include paths?

I'm glad you were able to resolve the issue.
The package is called annotateai not annotate. I'm not sure why that library error is happening but there is nothing but pure Python code in this package.


Training Script / Task Augmentation

Hello !
I'm wondering if the training/task augmentation scripts will be released to the community. I'm having some problems reproducing the pipeline.
Best regards,

Greetings,
We don't really have any extensive augmentation scripts that are in good shape to be released, but I can point you towards two augmentation libraries that we found super useful:

Kornia (bonus that it lets you augment on the gpu) https://github.com/kornia/kornia

Albumentations https://albumentations.ai/


Can’t Copypaste Colors

I tried to copypaste a hex color without the # into the foreground and background color fields, but it won’t work.
My Environment
Safari 13.0.3
macOS 10.15.1

Thanks for picking that up, will have a look in to it


Homestead

I'm submitting a ...

[ ] undocumented feature i guess

The thing is that i managed to install this on a laravel homestead vagrant box
all running great  gulp && gulp watch .
But when i want to show it with php artisan serve i get errors on the browser
I  did it without php artisan serve did not work neither
How can i serve the project from laravel/homestead .. Maybe PM2 idk really
Thank you

Laravel & Angular version: 3.2.0

umm Vagrant it's a virtual machine if you run php artisan serve you are running it in the virtual machine so you'll have to open a browser in that machine wich it's almost imposibble since it's just a Command-line interface SO you gonna need to map the Ip address of the virtual machin to your hosts file read a tutorial here's one https://scotch.io/tutorials/getting-started-with-laravel-homestead
It's not a undocumented feature since homestead and vagrant weren't created here xD
Also there have been some issues with Vagrant + Windows as you can read here in the docs
These issues might help

Hello @jpkontreras
Can you please copy/paste your errors here please ?

@ptondereau  The error im getting is a 403 Forbidden and with :8000 im getting ERR_CONNECTION_REFUSED
@flick36  I did read the docs from this starter and the laravel docs . Also i did map the site in my homestead.yaml . I  did it without serve and it was not working neither do.
Do you think that i should map nginx.conf to make this work . I append here the homestead yaml and my hosts  file.
OS: Windows 10 X64
ip: "<IP_ADDRESS>"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: C:\Users\patri\Code
      to: /home/vagrant/Code

sites:
    - map: phpmyadmin.app
      to: /home/vagrant/phpmyadmin

    - map: angular.app
      to: /home/vagrant/Code/projecto/

    - map: homestead.app
      to: /home/vagrant/Code/asg/

databases:
    - homestead

-------Hosts file --------

# localhost name resolution is handled within DNS itself.
#	<IP_ADDRESS>       localhost
#	::1             localhost
<IP_ADDRESS> phpmyadmin.app
#<IP_ADDRESS>  homestead.app
<IP_ADDRESS>  angular.app

Did you restart your vagrant (or re provision it) after editing your .yaml ?

yes! i did the  --provision command after editing my yaml

Be sure your angular.app is linked with the /public folder and not the root

do i have to run it with serve?

nop in your .yaml, it should be like this: /home/vagrant/Code/projecto/public

yea im provisioning right now! ill tell you in a minute

Yeah that was.. ! Thank you both for helping me out!

Feel free to close the issue ;)


No formulae are linked

I seem to be misunderstanding how this workflow is supposed to work. When I run the workflow, it doesn't  make any of the homebrew apps available. The output it produces is
[23:27:01.548] Logging Started...
[23:27:43.040] Alias Homebrew Apps[External] Processing complete
[23:27:43.045] Alias Homebrew Apps[External] Passing output '' to Run Script
[23:28:08.483] Alias Homebrew Apps[Keyword] Processing complete
[23:28:08.489] Alias Homebrew Apps[Keyword] Passing output '' to Run Script

The formulae variable is left empty in the workflow settings.
ANd these are the formulae I currently have:
brew list
==> Formulae
briss			graphite2		libx11			lz4			wakeonlan
cairo			harfbuzz		libxau			lzo			xorgproto
fontconfig		icu4c			libxcb			mupdf-tools		xz
freetype		jpeg-turbo		libxdmcp		openjdk			zstd
gettext			libpng			libxext			pcre2
giflib			libpthread-stubs	libxrender		pixman
glib			libtiff			little-cms2		pkg-config

My expectation was that when I run the workflow, typing "briss" in Alfred search, it would find brissas an appl. But this is not what it's supposed to do, is it?

My expectation was that when I run the workflow, typing "briss" in Alfred search, it would find brissas an appl. But this is not what it's supposed to do, is it?

It is not. The workflow is for formula which already produce .app bundles to have those linked in a way that Spotlight’s indexing and thus Alfred can find them when doing regular searches.


x/crypto: Exporting a private key bundle

Is it currently supported to encrypt and export the private key in the proper pgp format? e.g.:

-----BEGIN PGP PRIVATE KEY BLOCK-----

For questions about Go, see https://golang.org/wiki/Questions.
But, yes.


#736 Generate hash and sign/verify data for secrettext values

Summary
New overloaded procedures for Hash and Sign/Verify that accept SecretText value as hash/sign input value.
Work Item(s)
Fixes #736
Fixes AB#507370

I'm not sure it's a good idea to let this go in. This can allow an attacker to brute force the contents of a secrettext.
The way they would do it is to simply write a brute force search comparing the secret text with different combinations and then adding a breakpoint if the password matches.

@darjoo , @WaelAbuSeada I'm not sure it's a good idea to let this go in. This can allow an attacker to brute force the contents of a secrettext.
The way they would do it is to simply write a brute force search comparing the secret text with different combinations and then adding a breakpoint inside an if statement chrcking if the password matches.

@TKaptian Could you let us know the scenarios you have that require this? What type of values are in the secrettext and why that needs to be hashed?

@darjoo, when time allows, could you peek into this one?

@BazookaMusic @pri-kise Has valid scenarios

Basic Auth
Password comparisons (From yammer)

We had a discussion about 1., and the idea is to provide platform functionality to do that instead of App. However, that does not resolve scenario 2.
So, do you have any thoughts on that? Because if we do not allow SecretText to Text or SecretText == SecretText, our partners would not be able to do password comparisons. That would bring up your concerns of being able to bruteforce the SecretText that wouldn't be addressed by the platform functionality of no. 1.

@BazookaMusic @pri-kise @darjoo  @JesperSchulz  @WaelAbuSeada  I'm not a security expert, but in my opinion, the idea of "cracking" the SecretText using brute force here makes no sense. Why would someone do such a complicated thing if there are other, much easier solutions?
The secret text is useful for hiding values during debugging. But it does not protect values from other developers, at least not if you make the variable somewhere accessible (event, etc.).
Why? Because what prevents any developer just to add any SecretText variable to HttpHeaders and send it to mock server? This will be much easier way if someone wants to "decrept" the secrettext variable... And that's something you can't prevent if you want to make the secrettext variable useful (because the only other solution is to not allow usage of secrettext when interacting with third party/other Microsoft systems.
SecretText is a good replacement for [NonDebuggable], but that's about it. If you want to avoid exposing something, do not make it accessible.
Based on what I said above, I don't see any reasons why we should not be able to generate hashed values for secrettexts, as there are already easier way how to "crack" the secrettext value.

@BazookaMusic @pri-kise @darjoo @JesperSchulz @WaelAbuSeada I'm not a security expert, but in my opinion, the idea of "cracking" the SecretText using brute force here makes no sense. Why would someone do such a complicated thing if there are other, much easier solutions?
The secret text is useful for hiding values during debugging. But it does not protect values from other developers, at least not if you make the variable somewhere accessible (event, etc.).
Why? Because what prevents any developer just to add any SecretText variable to HttpHeaders and send it to mock server? This will be much easier way if someone wants to "decrept" the secrettext variable... And that's something you can't prevent if you want to make the secrettext variable useful (because the only other solution is to not allow usage of secrettext when interacting with third party/other Microsoft systems.
SecretText is a good replacement for [NonDebuggable], but that's about it. If you want to avoid exposing something, do not make it accessible.
Based on what I said above, I don't see any reasons why we should not be able to generate hashed values for secrettexts, as there are already easier way how to "crack" the secrettext value.

I agree with the first part which is that we cannot protect the SecretText value from being extracted from someone installing an extension to brute force it by installing an extension and subscribing an event or something similar. The easiest way to reveal it is as you said to send it via http request somewhere. There is some logging on this to detect it but is besides the point. However, I shouldn't have focused on this scenario.
The actual problem is if the hashed value of a SecretText should be a Text or a SecretText. The purpose of the type as far as credentials go is to prevent somebody from revealing them by debugging them. This can be a delegated admin who should not have direct access to customer credentials like a password.
The issue I see is that hashed passwords should also not be revealed to a delegated admin. A hashed password is still an important attack vector, especially if passwords are user generated. The simplest example is that an admin debugging through an extension's code hovers over a hashed user password and notes it down. Then they use a dictionary attack to try passwords on it and get the user credential. This action would not be logged, since we can't log every time someone hovers over a text variable.
Thus, I think it's fine to make a hash out of a SecretText and to compare the hashes, but I don't think it's fine to allow the hash to be in plain-text.

@BazookaMusic @pri-kise @darjoo @JesperSchulz @WaelAbuSeada Thanks for your input. I have changed the procedures to return SecretText instead.

On the other hand, I'm not thinking if this is now useful... We don't have (for good reason) how to compare secret texts. So is it now even useful? Because we would need the ability to compare hashes, otherwise it makes no sense to hash value...
@BazookaMusic @pri-kise @darjoo @JesperSchulz @WaelAbuSeada

Upps, my fork cleanup was a bit disaster... I'll try to restore this PR in the upcoming days.


golang-google-cicd to 0.0.12

Promote golang-google-cicd to version 0.0.12

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Should finish be uninterruptible?

This change seems to fix the symptom I get a couple levels up the abstraction chain in Persistent:
finish :: Connection
       -> IO ()
finish (Conn fp _) = do
    uninterruptibleMask_ $ finalizeForeignPtr fp

https://github.com/yesodweb/persistent/issues/1199
I discovered this fixed that symptom here: https://github.com/yesodweb/persistent/issues/1199#issuecomment-797028500

I also see that odbc uses withAsyncBound here and says:
-- | Run an action in a bound thread. This is neccessary due to the
-- interaction with signals in ODBC and GHC's runtime.

I'm not sure if this applies to postgresql-libpq.

Still not sure about this, but this also fixes the symptom I linked to in my initial description:
finish :: Connection
       -> IO ()
finish (Conn fp _) = do
    -- uninterruptibleMask_ $ finalizeForeignPtr fp
    runInBoundThread $ finalizeForeignPtr fp


how to resolve error code :4030 issue with hls content?

Please use the bug issue template and fill it out completely: https://github.com/google/shaka-player/issues/new?template=bug_report.md
This issue does not have nearly enough information for us to help you.  Thanks!


Ability to send Content-Length header when streaming large files

I'm using the response.file_stream(...) function to serve a large (often 100MB-ish) file for download, and I noticed that I'm not getting a Content-Length header even if I manually include one in the call to that function.
Without a Content-Length header, tools like wget and curl or browser download interfaces are unable to show my user's a progress bar indicating how long the file will take to download.
My code looks like this:
    return await response.file_stream(
        location=filepath,
        headers={
            'Content-Length': os.path.getsize(filepath),
        },
        filename=os.path.basename(filepath),
        mime_type='application/octet-stream''
    )

It looks like the Content-Length header I calculated is being removed here:
https://github.com/channelcat/sanic/blob/8b920d9d5683467b89fda2bd463656b1846a9059/sanic/response.py#L148-L157
I'd like to be able to include this header when I serve large files.

It should not include both chunked and Content-Length


python3Packages.pynx584: init at 0.6

Motivation for this change
Python package for communicating to NX584/NX8E interfaces
https://github.com/kk7ds/pynx584
This is a Home Assistant dependency.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 120272 run on x86_64-linux 1

3 packages built:

home-assistant
python38Packages.pynx584
python39Packages.pynx584

Result of nixpkgs-review pr 120272 at ca73a19d run on aarch64-linux 1

3 packages built successfully:

home-assistant
python38Packages.pynx584
python39Packages.pynx584


Add EnvironmentName as output for csv to have detailed insight of usage per environment

Currently we are analysing metrics result regarding only Prod or Sandbox environment type. But we have multiple environments and it could be very interesting to have an overview of them. That means that in the exports (loaders), we wanted a new column "environmentName" which contains the name of the environment. With this we would be able to know which environment is consomming our vCores for example, which is the most popular/used/updated, and have an overview of the lifecycle of the APIs.
Thanks.
Guillaume OGIER.

Environment information is available, but in the JSON response of the API. My assumption is you are using the CSV loader, where environment is not currently included as a column.
Based on this assumption we will take this enhancement request into consideration.
If you have any further clarification on your enhancement suggestion please add it here.
Thanks,
Richard


Add before hook to the Step configuration

Add an optional hook for running effects before a step starts
Extract helper functions to src/helpers/common.ts
Fix and improve tests

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Hotifx/disable making public registrations private

Purpose
Registrations now have the ability to obtain DOIs and ARK IDs. With this and upcoming behavior changes with Retractions and Embargoes, public registrations should not be able to be made private unless they were created before a predetermined cutoff date.
Changes
Registrations created before the cutoff date will have no behavioral changes.
Registrations created after the cutoff date will no longer be able to be made private after they have been made public. That cutoff date, REGISTRATION_CUTOFF_DATE, is set in defaults.py
Side Effects
None
Notes
Closes-issue: #2670
Old-pr: #2682

@lbanner @GaryKriebel @sloria -- Am I good to kill this PR?

I think so, yes.


Brightness level appears as 0% when it’s not

I bought several RGBTW bulbs (though, the white isn't tunable) that I have fully working, except that if I set the brightness to a specific percentage, after some time it reports the level as 0% in the Home app despite the actual brightness not changing. These particular bulbs are set to HSB in the config.
I have another other type of bulb (TWLight) that does not face this issue.
To reproduce, open the Home app and set brightness to any percentage. Close the app and reopen. Brightness shows 0% while physical bulb hasn’t changed.

Same issue here!


U2F facets support

This pull request implement support for U2F facets
see https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-appid-and-facets-v1.2-ps-20170411.html

This pull request currently implements a test to show the problem I currently face implementing support for u2f facets.
I have a hard time coming a good API to solve the issue, any tips, ideas or advise is more than welcome!

diff --git a/fido2/rpid.py b/fido2/rpid.py
index d6fefcce15311..95bfc6f77d718 100644
--- a/fido2/rpid.py
+++ b/fido2/rpid.py
@@ -74,7 +74,7 @@ def verify_rp_id(rp_id, origin):
     return False

-def verify_app_id(app_id, origin):
+def verify_app_id(app_id, rp_id, origin):
     """Checks if a FIDO U2F App ID is usable for a given origin.

     :param app_id: The App ID to validate.
@@ -86,4 +86,4 @@ def verify_app_id(app_id, origin):
     url = urlparse(app_id)
     if url.scheme != 'https':
         return False
-    return verify_rp_id(url.hostname, origin)
+    return verify_rp_id(url.hostname, origin) or verify_rp_id(rp_id, origin)
diff --git a/fido2/server.py b/fido2/server.py
index d0990b9517e92..2345e474f7d84 100644
--- a/fido2/server.py
+++ b/fido2/server.py
@@ -310,7 +310,7 @@ class U2FFido2Server(Fido2Server):

     def __init__(self, app_id, rp, *args, **kwargs):
         super(U2FFido2Server, self).__init__(rp, *args, **kwargs)
-        kwargs['verify_origin'] = lambda o: verify_app_id(app_id, o)
+        kwargs['verify_origin'] = lambda o: verify_app_id(app_id, rp.ident, o)
         kwargs['attestation_types'] = [FidoU2FAttestation()]
         self._app_id = app_id
         self._app_id_server = Fido2Server(RelyingParty(app_id), *args, **kwargs)

That would fix my issue, but I'm not sure about it.

The proper way to do the origin verification for a https://.../facets.json App ID would be to verify it in accordance to the content of that file. I suppose we could add support for parsing the JSON and handling that file format so you could provide it, but I'm not sure the complexity of that is worth doing. One problem I see in the current approach is that it isn't really possible to customize the verify_origin function to the inner _app_id_server instance. Allowing this should make it possible for you to supply a simple function tailored to how you want to validate origins, would that suffice for you? I'm thinking something like:
diff --git a/fido2/server.py b/fido2/server.py
index b8be6ef..e86e514 100644
--- a/fido2/server.py
+++ b/fido2/server.py
@@ -305,12 +305,17 @@ class U2FFido2Server(Fido2Server):
     See https://www.w3.org/TR/webauthn/#sctn-appid-extension for details.

     :param app_id: The appId which was used for U2F registration.
+    :param verify_u2f_origin: (optional) Alternative function to validate an
+        origin for U2F credentials..
     For other parameters, see Fido2Server.
     """

     def __init__(self, app_id, rp, *args, **kwargs):
         super(U2FFido2Server, self).__init__(rp, *args, **kwargs)
-        kwargs['verify_origin'] = lambda o: verify_app_id(app_id, o)
+        kwargs['verify_origin'] = kwargs.get(
+            'verify_u2f_origin',
+            lambda o: verify_app_id(app_id, o)
+        )
         kwargs['attestation_types'] = [FidoU2FAttestation()]
         self._app_id = app_id
         self._app_id_server = Fido2Server(RelyingParty(app_id), *args, **kwargs)

What do you think?

@dainnilsson Thanks for the reply! Sorry for the delay of this reply, I was out on holidays.
I didn't want to implement the full featured json parsing either, the complexity of it looked a bit too hazardous to me.
I think the custom function would work. Do you want me to amend this PR to include your patch?

Now it's my turn to be sorry for the delay! Yes, please add the patch to the RP and I'll merge it.

@dainnilsson I had to rewrite your patch slightly, but I think it works great!
I provided examples in the tests.

I've been trying all morning to get that error fixed on travis. It does not reproduce on my computer. I've tried a couple configuration of virtualenv, I've tried ubuntu 16.04 in docker, with the same codebase as travis (curl https://storage.googleapis.com/travis-ci-language-archives/python/binaries/ubuntu/16.04/x86_64/pypy2.7-6.0.tar.bz2 thingy) can't reproduce either.
@dainnilsson if you have any idea, I'm all ears :/

what's even more interesting is:
======================================================================

ERROR: test_u2f_facets (test.test_server.TestU2FFido2Server)

----------------------------------------------------------------------

Traceback (most recent call last):

  File "/home/travis/build/Yubico/python-fido2/test/test_server.py", line 121, in test_u2f_facets

    client_data, authenticator_data, signature)

  File "/home/travis/build/Yubico/python-fido2/fido2/server.py", line 353, in authenticate_complete

    return self._app_id_server.authenticate_complete(*args, **kwargs)

  File "/home/travis/build/Yubico/python-fido2/fido2/server.py", line 280, in authenticate_complete

    raise ValueError('User Present flag not set.')

ValueError: User Present flag not set.

well:
$ git grep 'User Present'
fido2/ctap2.py:        """Return true if the User Present flag is set.
fido2/ctap2.py:        :return: True if User Present is set, False otherwise.

well, this does not look like my code... I don't understand.

meh, I ended up with an old version of master because git fetch did not act the way I expected it to do (fetching from my fork instead of origin). Can reproduce now.

Looks good, thanks!
Please use the already existing fido2.utils.bytes2int instead of int_from_bytes in test/utils.py and we should be ready to merge.

sure, missed that one.

@dainnilsson any chance you could push a new version of the lib once this is merged? This would easy things for me to deploy this. Thanks :)

Thank you so much!

Thank you for the contribution! I'll try to get a release out pretty soon as well.

Release (0.7.1) is out!


antidote: init at version  1.8.6

Description of changes

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[X] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

antidote https://getantidote.github.io/

Antidote is a Zsh plugin manager made from the ground up thinking about performance.
It is fast because it can do things concurrently, and generates an ultra-fast static plugin file that you can easily load from your Zsh config.
It is written natively in Zsh, is well tested, and picks up where Antibody left off.

You should consider adding yourself as a package maintainer in the meta attributes.

The commit message is not correctly formatted.
It must follow our guidelines and therefore be antidote: init at 1.8.6

antidote: init at 1.8.6

https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md
sorry
I just copy from others  lol, now it fixed.

Eval is broken because of that.

nix-build $(pwd) -A antidote --show-trace  is ok, how to reproduce it locally

Please squash your commits and let's wait for the end of all the evaluation before merging.

done

@GrahamcOfBorg build antidote