openclaw/config
Peter Steinberger 4e9e68140a
fix(zalouser): avoid Gateway stalls during credential persistence (#156003)
* fix(zalouser): avoid Gateway stalls during credential persistence

Move QR credential saves and logout revocation onto the shared SQLite worker,
await their durable completion, and keep restoration behind pending revocation
on its originally selected state directory. Preserve the credential format,
revocation markers, refresh CAS, and named older-host capability fallback.

Carry a live hosted-wizard assertion through setup and into the final write
grant so a detached QR login cannot persist after its owner is retired.

Validation: 172 focused tests across worker storage, registered setup, synthetic
SDK transport, and core wizard lifecycle; complete independent P2 review clean.
Repository gates: 34 passed, 3 unchanged core gates reused. The inherited unused
TSGO_CORE_TEST_MAX_ROOTS export is the sole remaining gate failure on this base;
canonical fix 1619aff478 supplies its repair.

Regression controls prove the former host-SQL logout path, a missing final
wizard-lifetime guard, and state-root drift across a pending logout. No live
provider account, operator Gateway restart, schema change, or protocol bump.

* test(gateway): await recap publication before projection assertion

Wait for the existing owner's next publication after releasing the model result,
assert its captured state without filtering successful outcomes, and check one
direct describe response. Preserve the durable watermark and model-call assertions.
No production logic or test deadline changes.

Validation: 22 cases on the exact tested CI merge with Node 24.21; real writer
queue probe preserves the old updating recap until write settlement, then exposes
the published current recap. Owning type graph, typed lint, formatting, and P2
review pass. The initial CI log redacts the returned summary, so the change does
not claim that its historical failure was proved timing-only.

* test(discord): scope policy reload fixture activation

Limit the synthetic policy fixture to its Discord plugin so real reloads do
not cold-load unrelated runtime plugins. Require the reload to report
applied while preserving the active-turn, held lookup and revocation flow.

Exact CI merge-source proof passed locally in 15.3s. Root fixture types,
typed lint, formatting and independent review passed. No production code
or test timeout changed.
2026-09-23 08:23:57 -07:00
..
oxlint
tsconfig ci: keep plugin lint in its nearest TypeScript project (#134216) 2026-08-31 09:34:21 -07:00
assertion-safety-baseline.txt fix(zalouser): avoid Gateway stalls during credential persistence (#156003) 2026-09-23 08:23:57 -07:00
ci-test-timings.json refactor(telegram): remove redundant test coverage (#155040) 2026-09-23 00:50:06 -07:00
control-ui-startup-budget-baseline.json fix(update): explain foreign destination refusals (#155692) 2026-09-22 19:05:54 +00:00
env-var-count-budget.txt fix(update): verify every managed Gateway restart attempt (#155355) 2026-09-22 19:32:37 -07:00
knip.all-exports.config.ts fix(test): keep update executor fixtures out of shared handoff state (#156037) 2026-09-22 19:24:03 -06:00
knip.config.ts feat(browser): add portable Lightpanda deployment and benchmarks (#154360) 2026-09-23 15:14:16 +00:00
knip.scripts-exports.config.ts fix: honor exact frozen-target exclusions in release validation (#156300) 2026-09-23 01:51:51 -07:00
markdownlint-cli2.jsonc
markdownlint-templates.jsonc fix(tooling): run markdownlint on workspace templates (#91160) (#117166) 2026-08-28 12:21:13 -07:00
max-lines-baseline.txt refactor(plugins): deslop codex and agent-harness plugins (#156297) 2026-09-23 07:58:14 -07:00
shellcheckrc
stylelint.config.mjs perf(control-ui): load built-in theme palettes on demand (#130473) 2026-08-26 18:56:14 -07:00
swiftformat chore(deps): refresh macOS and iOS app dependencies (#135592) 2026-09-01 16:31:14 -07:00
swiftlint.yml feat(macos): open links as native Mac tabs in the Browser panel (#140988) 2026-09-07 13:12:46 -07:00