weichen
ea66f4456f
docs: review P0/P1 fix records, ISSUES ledger, lesson, task claim
...
- remediation master record for 5 resolved + 1 deferred + 1 open issues
- ISSUES.md rows with evidence dates and lesson links
- LESSON-20260926-failclosed-bypass-contract (validated)
- remediation/lessons INDEX hooks + CURRENT task row (docs apply receipt)
2026-09-26 02:00:24 +00:00
weichen
6a3a0dc201
fix(security): harden bypass authz, gate blind spot, command exec, validated_only (review P0/P1)
...
- FIND-SEC-01: GetUserContext requires session ownership (handler 403 +
SQL/memory owner filter); in-memory HTTP + isolated-PG regressions
- FIND-ARCH-01: archtest fails closed on untracked table writes (+noise
exemption) and registers 50 existing writer tables in table_owners
- FIND-SEC-02: Authorizer without pool denies by default; explicit
NewInMemoryAuthorizer seam opt-in via ALLOW_IN_MEMORY at composition
- FIND-SEC-03: swboot commands run argv-exec (no sh -c) with exact
basename allowlist match; prefix-spoof and no-shell-eval tests
- FIND-FLOW-01: confirm rejects validated_only plans; ExecuteClaimed
hard-refuses validated_only steps (new error codes + HTTP mapping)
- FIND-QUAL-01: intentflow.ValidateFlagConsistency fail-fast at Assemble
2026-09-26 02:00:14 +00:00
weichen
f4c1b73f28
merge: candidate swboot-closeout-2026-09-26-r3 into dev
2026-09-26 01:09:32 +00:00
weichen
f697420db8
docs(status): promote workflow-swboot to done — SWBOOT-10 executor + L5/L6 verified
2026-09-26 01:09:20 +00:00
weichen
7c7a08a3ca
docs(test): swboot closeout evidence — executor e2e, L5 live PI, L6 playwright wizard
2026-09-26 01:08:51 +00:00
weichen
86e0cf46c6
merge: candidate swboot-closeout-2026-09-26-r2 into dev
2026-09-26 01:00:51 +00:00
weichen
a52816299d
fix(server): read bound repo from project_source_bindings.source_ref
2026-09-26 01:00:37 +00:00
weichen
70f3028cdb
merge: candidate swboot-closeout-2026-09-26-r2 into dev
2026-09-26 00:59:21 +00:00
weichen
f394bb15f9
fix(projectworkflow): write repo binding into project_source_bindings.source_ref
2026-09-26 00:59:08 +00:00
weichen
4965e74d66
merge: candidate swboot-closeout-2026-09-26-r2 into dev
2026-09-26 00:57:11 +00:00
weichen
83561682eb
feat(swboot): wire SWBOOT-10 controlled patch executor (fail-closed)
...
DB-backed repo_path_allowlist reader (deny-all until admin seeds), per-prefix
admin test_commands (goose 00075), execution evidence table (goose 00074),
isolated git-worktree patch executor with command allowlist/time/output caps
and failure-stops evidence; controlled_patch creation/preview unlocked only
with an allowlisted repo binding (projectworkflow gate + catalog flag);
creator-only server endpoints for bindings/executions; merge/push/deploy stay
behind a typed separate-authorization boundary. Module boundary: app->swboot
composition import registered.
2026-09-26 00:56:59 +00:00
weichen
d0f3f76f7e
merge: candidate rdev-p3-rerun-2026-09-26-r4 into dev
2026-09-26 00:43:04 +00:00
weichen
88e9b8bade
docs(test): archive P3 rerun console log (rename out of ignored *.log)
2026-09-26 00:43:00 +00:00
weichen
09e4c08f28
merge: candidate rdev-p3-rerun-2026-09-26-r3 into dev
2026-09-26 00:42:20 +00:00
weichen
c9d94545f8
docs(status): promote workflow-rdev to done — P3 real-PI rerun all-pass
2026-09-26 00:42:09 +00:00
weichen
68d29ef04e
docs(test): rdev P3 real-PI rerun all-pass; register docgov approval-chain issues
2026-09-26 00:41:47 +00:00
weichen
5d5cd5fd6d
merge: candidate rdev-p3-rerun-2026-09-26-r3 into dev
2026-09-26 00:25:12 +00:00
weichen
dc26321bab
fix(docgov): join ambient uow in persistApproveAndFAV to avoid row-lock deadlock
...
docflow Commands.run takes SELECT ... FOR UPDATE on document_records inside
its unit of work before calling ApproverApprove; persistApproveAndFAV then
opened a second pool connection and its UPDATE blocked on that row lock until
statement timeout (SQLSTATE 57014), failing every final approval. Join the
ambient uow scope (doc sync + FAV staging on the caller tx, commit owned by
the uow); only open an own tx when no scope is present. Regression test
reproduces the production shape (FOR UPDATE + FAV wiring inside Within).
2026-09-26 00:25:01 +00:00
weichen
6bd6e91606
merge: candidate rdev-p3-rerun-2026-09-26-r3 into dev
2026-09-26 00:22:20 +00:00
weichen
043c66ccfb
chore(server): log docgov approver decision failures (envelope redacts internals)
2026-09-26 00:22:15 +00:00
weichen
121b33f8ed
merge: candidate rdev-p3-rerun-2026-09-26-r2 into dev
2026-09-26 00:16:08 +00:00
weichen
bf3136490d
fix(docgov): load review_snapshot_id when reading document records from PG
...
loadDocumentFromDBLocked selected every column except review_snapshot_id,
so any document loaded after a restart or cache miss lost its frozen review
snapshot and ApproverApprove failed with "approved requires frozen
review_snapshot_id". PG regression test seeds a snapshot and asserts a
fresh engine carries the id through load.
2026-09-26 00:15:56 +00:00
weichen
a6d25afa27
merge: candidate chat-semantic-replace-2026-09-26 into dev
2026-09-25 23:24:55 +00:00
weichen
53d2731849
docs(status): promote chat-semantic-replace to done — fail-closed gray wiring verified
2026-09-25 23:24:45 +00:00
weichen
e2cfd88ac0
docs(test): semantic REPLACE fail-closed gray wiring evidence (unit + dev runtime ladder)
2026-09-25 23:24:33 +00:00
weichen
6004494e21
merge: candidate chat-semantic-replace-2026-09-26 into dev
2026-09-25 23:14:16 +00:00
weichen
aee774b894
fix(ctxmgr): keep displaced deterministic narrative for rollback-safe replace
...
Runtime verification found the deterministic generator merges the prior
served narrative, so a replaced (semantic) narrative would linger after
rollback. Store the displaced deterministic narrative in the shadow report
(persisted via shadow_json) and merge that instead when the prior summary
source is semantic_replace.
2026-09-25 23:14:07 +00:00
weichen
cd1f846f49
merge: candidate chat-semantic-replace-2026-09-26 into dev
2026-09-25 22:56:45 +00:00
weichen
ffa41d78df
feat(ctxmgr): wire fail-closed gray REPLACE for chat semantic narrative
...
Unseal SEMANTIC_SUMMARY_REPLACE under explicit user authorization with a
defense-in-depth session allowlist (SEMANTIC_SUMMARY_REPLACE_SESSIONS):
swap happens only for allowlisted sessions after result digests and served
watermark validation, bounded narrative size; facts/counts stay deterministic
and the daily digest stays advisory. Master flag alone replaces nothing.
2026-09-25 22:56:36 +00:00
weichen
4d5d695c75
merge: candidate jevdecide-soak-2026-09-26 into dev
2026-09-25 22:51:03 +00:00
weichen
cbf96ebbe5
docs(status): promote jevdecide-shadow to done — 200-turn soak converged
2026-09-25 22:50:54 +00:00
weichen
96013db9aa
docs(test): jevdecide assist soak >=200 turns with 94% handled rate evidence
2026-09-25 22:50:33 +00:00
weichen
c373d6fbc0
merge: candidate dialogue-ctx-closeout-2026-09-26-r4 into dev
2026-09-25 21:43:41 +00:00
weichen
4b231d97ec
docs(status): promote dialogue-ctx-injection to done — close conditions verified on dev
2026-09-25 21:43:33 +00:00
weichen
416674e3ec
docs(test): dialogue-ctx closeout evidence — dev migration + real PI workspace inject + conflict card smoke
2026-09-25 21:43:02 +00:00
weichen
f89b946d37
merge: candidate dialogue-ctx-closeout-2026-09-26-r4 into dev
2026-09-25 21:30:41 +00:00
weichen
ae48970f5f
fix(pi-runner): allow host-side extension path override for task runs
...
Task-run pi launches hardcoded the container path /app/extensions/tavily-search.mjs;
on the no-docker host sidecar every squad/dialogue task run failed at spawn with
ENOENT/extension-load errors. Add PI_AGENT_EXTENSION override and export the
managed pi-dir extension path from the sidecar start script.
2026-09-25 21:30:29 +00:00
weichen
ebb8282091
merge: candidate dialogue-ctx-closeout-2026-09-26-r2 into dev
2026-09-25 21:03:21 +00:00
weichen
76ddf4dd35
feat(ctx): surface dialogue conflict confirmation cards to triggering user
...
Capture trigger_user HITL expectations from dialogue adjudication (previously
dropped at the bizdev call site), project them as chat confirmation cards via
taskrun OnTerminal (exactly-once), arm the session PendingExpectation, and
handle confirm_context_fact hits through the supplement-info blackboard path.
Decline (纠正) guides the user to state the correct fact.
2026-09-25 21:01:37 +00:00
weichen
f6ad3344f8
merge: candidate worktree-final-closeout-2026-09-26 into dev
2026-09-25 20:34:14 +00:00
weichen
e6994e4e4e
docs(closeout): 回填运行时验证与清理结果;任务收口 done
2026-09-25 20:34:06 +00:00
weichen
0e4b51c387
merge: record feature/dialogue-office-expansion-2026-09-25 into dev ancestry — 内容已由 dialogue-office-expansion-land 等价落地 dev;记录原分支历史归属 (tree unchanged)
2026-09-25 20:32:49 +00:00
weichen
19700e8590
merge: candidate worktree-final-closeout-2026-09-26 into dev
2026-09-25 20:27:01 +00:00
weichen
743b6a4774
docs(closeout): worktree 全量收口——唯一日志归档、CURRENT 漂移修正与本任务登记
2026-09-25 20:26:50 +00:00
weichen
dc10818143
merge: record feature/promote-rc-beta3-c-2026-09-24 into dev ancestry — test 晋升分支:全部提交已保留于本地 test 分支头 0e4b111d(tag rc-v1.1.0-beta.3 历史);不引入 dev 树变化 (tree unchanged)
2026-09-25 20:24:51 +00:00
weichen
2a7a700051
merge: record feature/integrate-gov-visibility-p0-b-2026-09-24 into dev ancestry — 取消的重试候选,被 p0-c 替代,仅含 merge 节点 (tree unchanged)
2026-09-25 20:24:40 +00:00
weichen
5f85f3c5d7
merge: record feature/integrate-backlog-triage-p10-r2-2026-09-25 into dev ancestry — 被 r3 候选替代,仅含 merge 节点 (tree unchanged)
2026-09-25 20:24:33 +00:00
weichen
2d3a7a22f8
merge: record feature/integrate-backlog-triage-p10-2026-09-25 into dev ancestry — 被 r2/r3 候选替代,仅含 merge 节点 (tree unchanged)
2026-09-25 20:24:25 +00:00
weichen
043e10f674
merge: record feature/integrate-admin-settings-maint-b-2026-09-25 into dev ancestry — 内容已由后续候选(r3)等价合入 dev(patch-id 查重 8f9b91d3 = dev 等价提交) (tree unchanged)
2026-09-25 20:24:18 +00:00
weichen
357c869a34
merge: record feature/single-binary-deploy-design-2026-09-24 into dev ancestry — 内容已由 single-binary-design-land 等价落地 dev;记录原分支历史归属 (tree unchanged)
2026-09-25 20:24:06 +00:00