Commit Graph
415 Commits
Author SHA1 Message Date
weichen 9526d35f9c Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=2c016931044bebdc4a114c1ca1127d1b40d4ab17.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 16:22:27 +00:00
weichen adbce4d1ed Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=cd61bbb112eea6a210a64e84f2cef00b0d64bfc1.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 15:58:27 +00:00
weichen e7b969a905 Retain existing-store lifecycle tests during main synchronization
Why: Main D1 now shares the same explicit fixture initialization contract.

Evidence: Both real SQLite and temporary PostgreSQL initialization paths
were independently replayed; capabilities JSON assertions are preserved.

Impact: Resolve duplicate PG setup through the tested helper; preserve
all main lifecycle changes and the rollback directory protection.

Refs: Dev #483/#485; D1 existing-store identity contract
2026-10-12 15:57:05 +00:00
weichenandCursor 9ab5a33ae4 Pin Documents to the U7 ops drill report
Why: The drill report and storage plan r2.2 are on Documents main, and this repo still pointed at the previous pin.
Evidence: Documents PR https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/90 merged as f76cce9 (SELF API merge, no CI statuses on that repo).
Impact: The gitlink moves from 3cc6438 to f76cce9. Second-instance writes stay closed.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 15:53:22 +00:00
weichen d4a83318b1 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=99048dda1f48bccb3d5d798050d7beeea2907177.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 15:07:47 +00:00
weichenandCursor 7cc553d5a3 Merge origin/main into feature/svc-d1-identity-flow
ci / test-pg (pull_request) Successful in 1m52s
ci / test (pull_request) Failing after 2m51s
Why: main already has one release transaction, so this branch keeps that path and only isolates update and recover in a clean child.
Evidence: SELF bash -n scripts/svc.sh; python3 -m unittest identity/recover/deploy/u2/lifecycle pin 92 tests OK (2 skipped), then 66 tests OK after dropping the obsolete journal hook.
Impact: deploy uses releases/ and deploy.journal; the lifecycle child reconciles that journal before deploy or recover. Backend pin is 0f192a4.
Refs: #485
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 15:06:55 +00:00
weichen 9f7b11675e Preserve rollback artifacts across same-second deployments
Why: Second-resolution release IDs let staging delete a previous release
when a same-source deployment ran within the same clock tick.

Evidence: Fixed-clock rollback regression fails before and passes after;
250 governance checks pass. Independent review replays collision and
copy-failure protection; receipts are in the primary task card.

Impact: Add invocation identity and exclusive directory creation; keep
old artifacts intact. Also retain the latest compatible frontend pointer.

Refs: User-approved I2; Dev #483; Frontend #71/#72
2026-10-12 14:50:09 +00:00
weichenandCursor e8f84b8cf1 Add a reversible release switch and a lifecycle pin
Why: an update that stops the old process and overwrites the binary cannot
get the previous version back, and a migration the old binary cannot read
must be refused before that stop. CI also had no fixed RDM SHA to build from.
Evidence: python3 -m unittest tests.test_svc_identity tests.test_svc_recover tests.test_svc_deploy_txn tests.test_lifecycle_pin passed. make test-lifecycle exits 2 when AGENT_PG_TEST_DSN is unset.
Impact: installs land in releases/<rid> and current switches with mv -T.
Deploy keeps the desired state and rolls back a non-terminal journal.
Schema compatFloor above the installed target is refused unless
--migrate-schema --confirm is paired with a backup. test-lifecycle fails
closed without PostgreSQL and an RDM checkout. Login stays NOT_RUN.
Refs: recovery plan r3.1 D2 and D3; Backend feature/d1-identity-open

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 14:43:27 +00:00
weichen 99bbbc089e Gate svc lifecycles on real Dev and RDM artifacts in CI
Why: stub suites proved the script logic but not real artifact
behavior (the 2026-10-12 incidents passed all stub tests); the report's
U3 requires real-combination gates, and realcombo dry-runs exposed two
real gaps: fresh deploys closed identity governance one lifecycle late,
and pg-bound identity calls put the DSN on the command line.
Evidence: make test exit 0; local realcombo dry-run 16 OK (rows in the
task card); CI adds svc-realcombo (SQLite, both real binaries, full RDM
track) and a real-PG identity step on test-pg with env-delivered DSN.
Impact: tests/test_svc_realcombo.py (SVC_TEST_REAL gate, explicit
NOT_RUN otherwise); ci.yaml new job + test-pg step (RDM clone via
trusted-base URL-scoped token header, allowlist addition reviewed in
this PR); svc.sh delivers identity DSN via AGENT_SYSTEM_DSN and runs
manifest adoption in the same deploy that first registers svc.env;
modules/backend pinned to main (env fallback, backend #182).
Refs: .task/feature-svc-u3-realcombo.md; user goal directive 2026-10-12
(U3); backend #182; RDM #285.
2026-10-12 14:27:59 +00:00
weichen 9964fe3608 Restore the compatible frontend combination for saved surface reload
Why: Dev #452 selected a frontend pointer lacking the previously merged
SurfaceMeta hydration fix and blanked saved-page conversations.

Evidence: Independent review and regression red/green receipts are in
.task/feature-surface-black-screen-recovery.md; make test/build follow.

Impact: Pin the frontend that retains fast-slow and saved-page recovery;
no backend, UI token, storage or permission configuration change.

Refs: Frontend #68; Dev #454; Dev #452; surface-black-screen-recovery
2026-10-12 14:21:00 +00:00
weichenandCursor 451c95be70 Gate deploys on versioned identity capabilities
Why: probing identity by running the subcommand still launched old RDM
builds, and ensure on a missing database created an empty one. A batch
update also inherited the caller's AGENT_SYSTEM_* variables.
Evidence: python3 -m unittest tests.test_svc_identity tests.test_svc_recover passed (41 tests, 1 skipped). tests.test_svc_lifecycle_isolation caller-env and restart cases passed.
Impact: capability probes use version --json only. Established instances
refuse a missing identity row until adopt --confirm. update and recover
run each service in a clean environment. serve reads a 0600 serve.env
and does not inherit the caller environment. Backend and documents pins
move to the D1 identity and recovery-plan commits.
Refs: recovery plan r3.1 D1; Backend feature/d1-identity-open; RDM feature/d1-version-json

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 14:09:36 +00:00
weichen aba6a25607 Pin modules/backend to acabb85 for the public identity CLI
Why: Backend #180 moved the identity CLI to pkg/identity (shared with
Agent-System-RDM per PR 276); Dev main should consume it so composed
binaries carry the same identity semantics and capabilities output.
Evidence: make test exit 0 (combined suite on the bumped pin);
make test-pins ok; rows in the task card.
Impact: gitlink only (bbe9773 -> acabb85, spans #177/#179/#180).
Refs: .task/feature-pin-backend-identity-cli.md; user goal directive
2026-10-12 (implement remaining U1/U2/U3 items in order).
2026-10-12 13:27:26 +00:00
weichen f977f36351 Merge remote-tracking branch 'origin/main' into feature/pin-backend-read-consumption
# Conflicts:
#	modules/backend
2026-10-12 12:35:34 +00:00
weichenandCursor 7ae8423465 Merge authoritative main into the task branch
ci / test-pg (pull_request) Successful in 2m10s
ci / test (pull_request) Successful in 3m52s
Why: resolve modules/documents gitlink conflict against updated main.
Evidence: Documents origin/main=3cc64380 (includes #84/#87).
Impact: pin modules/documents to Documents main tip.
Refs: #452
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 12:20:41 +00:00
weichen 0529e53b00 Pin backend to EXT-8b read-path consumption
Why: Backend PR #179 合入六处读面资源级咨询(EXT-8b),Dev 组合消费。
Evidence: modules/backend bbe9773→830fea3(Merge #179);组合验证见任务卡 make test 证据行。
Impact: 仅 gitlink。
Refs: Agent-System-Backend#179
2026-10-12 12:20:02 +00:00
weichen 1dece88ab0 Merge pull request 'Fix surface list hydrate black screen on refresh' (#454) from fix/surface-list-hydrate into main
ci / test-pg (push) Successful in 2m16s
ci / test (push) Successful in 3m35s
Reviewed-on: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/454
2026-10-12 12:18:10 +00:00
weichenandCursor caa39f2120 Merge authoritative main into the task branch
Why: keep frontend hydrate pin while absorbing main for Dev PR #454.
Evidence: resolved frontend@$ours from feature tip.
Impact: PR should become mergeable after Frontend #68 lands.
Refs: Dev #454; Frontend #68
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 12:11:27 +00:00
weichenandCursor ae02201803 Merge authoritative main into the task branch
Why: resolve modules/documents gitlink conflict for Dev PR #451.
Evidence: Documents feature tip ebf655c merges main@1048e7c with r1.1/U1 plan.
Impact: pin documents to ebf655c; PR should become mergeable after Docs #84 lands.
Refs: Documents #84; Dev #451
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 12:07:20 +00:00
weichen afa094f004 Pin backend to EXT-8b resource authorization contract
Why: Backend PR #178 合入 EXT-8b 公开资源授权契约(U9 首切片),Dev 组合消费。
Evidence: modules/backend 5e8ada7→bbe9773(Merge #178);组合验证见任务卡 make test 证据行。
Impact: 仅 gitlink。
Refs: Agent-System-Backend#178
2026-10-12 11:46:33 +00:00
weichen f830d3251d Pin frontend to permission matrix tab
Why: Frontend PR #70 合入项目设置「项目权限」页签(消费 RDM #266 矩阵解释读面),Dev 组合消费。
Evidence: modules/frontend 336ec94→c4ebcf5(Merge FE#70);组合验证见任务卡 make test 证据行。
Impact: 仅 gitlink。
Refs: Agent-System-Frontend#70
2026-10-12 10:58:12 +00:00
weichen 1292a69d74 Pin frontend to RDM management pages
Why: Frontend PR #69 合入 U6 管理页面(角色/成员/文档职责·整文审签,命令面门控),Dev 工作区组合消费。
Evidence: modules/frontend cc233fe→336ec94(Merge PR #69);组合验证见任务卡 make test 证据行。
Impact: 仅 gitlink。
Refs: Agent-System-Frontend#69
2026-10-12 10:29:04 +00:00
weichen 832cdf8a92 Pin documents to RDM function plan r1
Why: Documents PR #85 合入方案 r1(功能/实现矩阵 + U1-U9 工作包),Dev 工作区需消费该文档入口。
Evidence: modules/documents 8d0810b→1048e7c(Merge PR #85);组合验证见任务卡 make test 证据行。
Impact: 仅 gitlink;无代码行为变化。
Refs: Agent-System-Documents#85
2026-10-12 09:31:23 +00:00
weichenandCursor cc9556c3e8 Pin frontend surface list hydrate fix
Why: Refresh black-screened because SurfaceMeta was written into surfaces
and PreviewPane read identity.surfaceId.
Evidence: make test (receipt /tmp/surface-hydrate-make-test2.json);
Frontend PR https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/68
Impact: Pins frontend@0f52634; openConversation hydrates via surfaceGet
Refs: fix/surface-list-hydrate

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 08:38:09 +00:00
weichenandCursor 30788452a8 Repin UI after knip-private helper fix
Why: Keep Dev gitlink on the knip-clean UI tip for combo test.
Evidence: UI knip 57<=57; awaiting make test-ui.
Impact: modules/ui gitlink only.
Refs: UI 83e80f5
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 08:00:04 +00:00
weichenandCursor 97643327f8 Pin Core Backend UI Frontend for fast-slow U1
Why: Combine U1 component SHAs so Dev can run make test against the
status mapping and L1 card body changes.
Evidence: Component unit tests; combo make test follows.
Impact: gitlinks only; R03-c/U2/U3 still out of scope.
Refs: .task/feature-fast-slow-display-u1.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 07:45:38 +00:00
weichenandCursor 6671a04f87 Pin Documents U1 plan approval status
ci / test-pg (pull_request) Successful in 1m56s
ci / test (pull_request) Successful in 4m9s
Why: Keep Dev gitlink aligned with approved U1 plan revision.
Evidence: Documents tip after approval commit.
Impact: Design branch documents pin only.
Refs: feature/fast-slow-display-design
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 07:39:03 +00:00
weichenandCursor bfc2fd9882 Merge origin/main into feature/fast-slow-display-design
Why: Clear SYNC_REQUIRED so the design branch tracks current main
while keeping Documents fast-slow r1.1 + U1 plan commits.
Evidence: make task-sync; Documents merge to 5b71525.
Impact: Submodule pins follow origin/main except Documents feature tip.
Refs: policy/delivery.md task-sync

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 07:33:43 +00:00
weichenandCursor c60ef6d11f Record fast-slow display r1.1 approval and U1 plan
Why: Capture design approval, R03 incremental split, U1 exit
whitelist, and stage-5 U1 plan pointer after user confirmation.
Evidence: Documents SHA f9d96df; design-only, no runtime tests.
Impact: Task card stage 1-4 pass; U1 plan awaits stage-5 approval.
Refs: .task/feature-fast-slow-display-design.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 07:31:55 +00:00
weichen e7f0efad97 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=1938b442b19cc18ee05fbab919873635c91eba96.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 06:44:35 +00:00
weichenandCursor b2b5409109 Pin documents r2 progress update after U1-U7
Why: Planning progress must live in the proposal, not chat;
Documents #83 merged the r2 header, preferred-next, and lesson.
Evidence: Documents merge 8d0810b; Dev gitlink pin.
Impact: Dev main readers see U1-U7 code-done vs capacity pending.
Refs: Documents #83; feature/u7-capacity-wrap-measure

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 06:40:10 +00:00
weichenandCursor cbe753c51f Pin backend for material-intake lifecycle flake fix
Why: Backend #176 aligned the test wait with CardDone + materialActive
release so done-dedup no longer races deliverNotices.
Evidence: Backend CI success on c963347; local -count=20 PASS (evidence on card).
Impact: Dev consumes backend@5e8ada7; test-only, no product behavior change.
Refs: Backend #176; fix/material-intake-lifecycle-flake

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 06:33:09 +00:00
weichen 66155d3feb Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=b008bd94ad0fe6f520a8500f40ed6297251762b7.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 06:07:02 +00:00
weichen b008bd94ad Merge pull request 'Gate the rdm audit entry on command availability (frontend pin + plain-base e2e)' (#418) from feature/rdm-audit-capability-gate into main
ci / test-pg (push) Successful in 2m9s
ci / test (push) Successful in 3m41s
Reviewed-on: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/418
2026-10-12 06:04:40 +00:00
weichenandCursor 060b152d38 Pin backend to origin/main after #175
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 05:44:44 +00:00
weichenandCursor e29f772dff Pin backend to storage-migrate login_keys copyOrder fix
Why: origin/main backend broke make test after v26 login_keys without migrator list update.
Evidence: go test ./cmd/storage-migrate -run TestCopyOrderCoversAllFixtureTables (exit 0) on 741b5b0.
Impact: Dev combination gate unblocked; pairs with backend PR #175.
Refs: modules/backend@741b5b0; backend PR #175
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 05:32:00 +00:00
weichen ee7903344f Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=673e687c5c85b9af3ce13ca30845d5e68de5dfa0.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 05:27:29 +00:00
weichenandCursor 03648250ac Merge origin/main into proposal branch; resolve svc-deploy docs pin
ci / test-pg (pull_request) Failing after 1m3s
ci / test (pull_request) Failing after 2m28s
Why: Dev #422 add/add on docs/svc-deploy after U1/U4 landed; documents gitlink also diverged from main.
Evidence: took main svc-deploy specs; Documents pin 9d9b152 = proposal + main merge; Backend pin 1d9e8f4
Impact: PR #422 should become mergeable; Documents #79 tip advanced.
Refs: Dev pulls/422; Documents pulls/79; merged #428/#429
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 05:26:29 +00:00
weichen 904a8351c7 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=b431777c9fa9c74f096d7f14fce40d1beba53fe2.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 05:06:11 +00:00
weichenandCursor 9b6bfc1a5b Retarget backend pin to #170 tip after v27 rebase
ci / test-pg (pull_request) Failing after 1m21s
ci / test (pull_request) Successful in 3m9s
Why: main claimed migration v26; Backend #170 rebased to e7b70c2
(v27 identity + copyOrder). Dev pin must track that tip.
Evidence: Backend CI success on e7b70c2; mergeable True.
Impact: modules/backend gitlink → e7b70c2.
Refs: Backend PR #170; Dev PR #426

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 05:06:03 +00:00
weichen a918d8c181 Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=b431777c9fa9c74f096d7f14fce40d1beba53fe2.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 05:04:14 +00:00
weichenandCursor 8ab41871ea Pin Backend to main tip that includes merged U4
Why: Backend #171 landed on main as 1d9e8f4; Dev #428 conflicted on the gitlink against newer main pins.
Evidence: Backend origin/main contains OpenExisting + login_keys (merge #171)
Impact: Dev U4 tracks Backend main tip; unblocks task-sync merge of origin/main.
Refs: Backend pulls/171; Dev pulls/428
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 05:04:12 +00:00
weichenandCursor 93a64979d8 Bump pins for GenUI surface action param flatten hotfix
ci / test (pull_request) Successful in 3m9s
ci / test-pg (pull_request) Successful in 1m35s
Why: Ship Backend#174 (flatten action data for system.intent) and the
usage-guide field-fix log into the prod redeploy combination.
Evidence: Backend#174 @ 52d75fd; Documents#82; surfacesvc tests green
Impact: Prod second-knife redeploy can validate B-class intent end-to-end.
Refs: GenUI prod deploy; Backend#174; Documents#82

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 04:17:16 +00:00
weichenandCursor bb8ecaf3cd Bump Backend and Documents pins for Generative UI prod deploy
ci / test-pg (pull_request) Successful in 1m40s
ci / test (pull_request) Successful in 3m2s
Why: Ship the surface-action nil-card fix and usage-guide deploy note
into the Dev combination for the local prod instance.
Evidence: Backend #173 @ c7b30d2; Documents #81; make test/build pending
Impact: Prod redeploy can pick up B/C action stability and boundary docs.
Refs: GenUI prod deploy task; Backend#173; Documents#81

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 04:09:07 +00:00
weichenandCursor bad29e09da Merge origin/main into recovery-u1-db-identity and retarget backend pin
ci / test-pg (pull_request) Successful in 1m38s
ci / test (pull_request) Successful in 3m7s
Why: task-sync hit a submodule conflict; pin must track Backend #170
HEAD after rebase onto main (copyOrder fix).
Evidence: backend 0c79618; origin/main merge completed in worktree.
Impact: modules/backend gitlink; sync with main.
Refs: Backend #170; Dev #426

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 04:04:47 +00:00
weichenandCursor 8af735fbe6 Bump backend pin for synchronous auto-present reminders
ci / test-pg (pull_request) Successful in 1m43s
ci / test (pull_request) Successful in 3m14s
Why: Include #172 race fix before Dev PR CI recheck.
Evidence: go test ./internal/runmgr/ -run Material
Impact: Dev pin tracks backend main with sync-only reminders.
Refs: backend#172
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 03:57:11 +00:00
weichen e83c60b21b Merge authoritative main into the task branch
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=ae465d24441ab349c961a55e9b04f8c4ccaf6de8.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
2026-10-12 03:55:34 +00:00
weichenandCursor 33a6e046dc Bump Backend pin after U4 e2e gate alignment
Why: Backend #171 HEAD advanced with must_change e2e fix; keep Dev gitlink in sync and mark U4 specs started.
Evidence: Backend go test store/server/app green at 47463a9
Impact: Dev U4 branch tracks Backend PR #171 tip.
Refs: docs/svc-deploy/u4-one-time-login-key.md; Backend pulls/171
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 03:55:24 +00:00
weichenandCursor feccf26b90 Wire U1 I3 DB identity into svc start and tests
Why: after #415 file markers, startup must also bind
manifest.instance_id to agent_system_identity (I4).
Evidence: python3 -m unittest tests.test_svc_identity
tests.test_svc_recover (OK, 1 skipped NOT_RUN for real PG);
Backend pin b92eaca (PR #170).
Impact: svc ensure/verify + AGENT_SYSTEM_* env; stub identity;
I3 SQLite tests; design doc status; modules/backend gitlink.
Refs: docs/recovery/u1-identity-manifest.md §5.2; Backend #170

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 03:52:48 +00:00
weichen d87c8e4015 Bump frontend pin: readonly assertion fix in the changepw spec 2026-10-12 03:50:57 +00:00
weichen d02f3a1f14 Bump frontend pin: password form semantics and typed setting inputs
Why: increment 3 of the 2026-10-12 diagnostic - the change-password modal
lacked form semantics (no form/autocomplete/username association) and
SettingInput masked all free-text config values.

Evidence: frontend 8db7093 (vitest 24 files / 116 tests incl.
settingInputAttrs matrix; knip; tsc -b && vite build); full e2e and make
test receipts follow on this head.

Impact: modules/frontend pin follows; e2e.sh phase 4 also runs the new
changepw-form spec; task card records scope, authorization and stages.

Refs: 2026-10-12 diagnostic report, increment 3; stacked on PR #418.
2026-10-12 03:49:00 +00:00