weichen and Cursor
46ee9fe647
chore(ops): occupy the U4 integration slot
...
Remove accidental promote-dev and pycache files from the U4 docs commit and hold the merge slot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:50:26 +00:00
weichen and Cursor
2755d916f4
docs(test): record U4 outbox projection report
...
Close the U4 checklist with golden payload and only-forward projection evidence.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:46:09 +00:00
weichen and Cursor
c36d891b05
feat(intentflow): emit plan facts onto Track E outbox
...
Append awaiting/step/completed envelopes in the command UoW and project them without changing dispatcher leases.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:46:09 +00:00
weichen and Cursor
cf063f5727
feat(db): add intent plan projection shadow tables
...
Store idempotent event outcomes and an only-forward shadow without replacing plan SSOT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:46:09 +00:00
weichen and Cursor
1afd39c9e8
docs(ops): claim U4 intent plan outbox projection
...
Register the events mutex before appending intent.plan facts onto Track E.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:40:57 +00:00
weichen
0f656638eb
merge: chore/release-multi-intent-u3-slot
2026-09-15 23:47:19 +00:00
weichen and Cursor
223b2841d7
chore(ops): release the U3 integration slot
...
Smoke already passed on the feature branch; shared env stays on schema 43 until a planned rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:47:19 +00:00
weichen
26f1632a21
merge: feature/multi-intent-u3-intentflow-pg
2026-09-15 23:46:55 +00:00
weichen and Cursor
4cfe6ff59d
chore(ops): occupy the U3 integration slot
...
Hold the shared merge slot for the no-ff merge of the intentflow PG owner.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:46:55 +00:00
weichen and Cursor
b6956003d5
docs(test): record U3 intentflow PG CAS lease report
...
Close the U3 checklist with CAS/lease/fencing evidence while leaving chat routing on legacy.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:46:34 +00:00
weichen and Cursor
1385002350
feat(app): assemble intentflow plan owner
...
Wire the composition root without letting chat or coordinator call CreatePlan yet.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:43:46 +00:00
weichen and Cursor
da0b3d812b
feat(intentflow): persist plans with CAS lease and fencing
...
Own plan/step/decision writes behind UoW so two workers cannot both execute the same step.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:43:46 +00:00
weichen and Cursor
7dfd6d6f33
feat(db): add intent plan tables in goose 00044
...
Persist plans, steps, and append-only decisions with typed CAS, lease, and nonce columns.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:43:37 +00:00
weichen and Cursor
a75aa45129
docs(ops): claim U3 intentflow PG CAS lease
...
Register the intent-plan mutex and freeze U3 scope before schema or repository work.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:33:15 +00:00
weichen
53c0722925
merge: chore/release-multi-intent-u2-slot
2026-09-15 23:18:37 +00:00
weichen and Cursor
86f25b26c4
chore(ops): release the U2 integration slot
...
Smoke already passed on the feature branch; U2 has no schema or container change.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:18:37 +00:00
weichen
53d4077f06
merge: feature/multi-intent-u2-segmenter
2026-09-15 23:18:10 +00:00
weichen and Cursor
91edeccb26
chore(ops): occupy the U2 integration slot
...
Hold the shared merge slot for the no-ff merge of the rule-segmenter shadow proposal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:18:10 +00:00
weichen and Cursor
c2e79c8a1d
docs(test): record U2 rule segmenter shadow proposal report
...
Close the U2 checklist with golden/hard-negative evidence while keeping production routing unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:17:45 +00:00
weichen and Cursor
932ba87daf
feat(intent): add rule segmenter and shadow PlanProposal
...
Generate 2–4 step L1 proposals with stable digests while leaving TopIntent and the legacy IntentPlan router unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:14:29 +00:00
weichen and Cursor
9005766b62
test(intent): lock legacy multi-intent plan routing
...
Keep write combos and internal-chain summaries on the current TopIntent path so U2 shadow proposals cannot silently change production.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:07:46 +00:00
weichen and Cursor
475134802b
docs(ops): claim U2 multi-intent rule segmenter
...
Register the independent U2 short-term on the intent mutex so shadow proposals can land without touching production routing.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:06:29 +00:00
weichen
8ac3d3fbc6
merge: chore/release-multi-intent-u1-slot
2026-09-15 16:28:07 +00:00
weichen and Cursor
3171e4f0e5
chore(ops): release the U1 integration slot
...
Smoke already passed on the feature branch; U1 has no schema or container rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:28:07 +00:00
weichen
29d9c65603
merge: feature/multi-intent-u1-contracts
2026-09-15 16:27:29 +00:00
weichen and Cursor
42c8ae2ccd
chore(ops): occupy the integration slot for U1 merge
...
Serialize the local --no-ff merge of multi-intent U1 contracts onto dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:27:29 +00:00
weichen and Cursor
3d326ad81e
docs(status): record U1 multi-intent contract freeze
...
Archive the arch/parity/short evidence and mark the U1 claim done so U2 can take the intent mutex next.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:27:03 +00:00
weichen and Cursor
9364da4974
feat(intentflow): freeze plan lifecycle contracts and batch policy
...
Add the app/intentflow skeleton so HITL state, error codes, REST shapes, and BatchActionPolicy live outside intent and default to the legacy tier.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:22:52 +00:00
weichen and Cursor
aefb1e45a6
feat(events): register intent.plan contracts and table owners
...
Freeze the three fact events, intentflow allowlist, and plan table ownership so later units cannot invent producers or write paths outside app/intentflow.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:20:19 +00:00
weichen and Cursor
bdccb4dbfe
docs(ops): claim U1 multi-intent HITL contract freeze
...
Register the independent U1 short-term, checklist, and CURRENT mutex so architecture-docs and events stay serial while contracts land.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:19:12 +00:00
weichen
987423794f
merge: feature/test-env-smoke-notes
2026-09-15 16:04:59 +00:00
weichen and Cursor
8919ca9842
docs(ops): record the test promotion smoke and release the slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:04:59 +00:00
weichen
5a79752ebe
merge: feature/promote-dev-to-test-2026-09-15
2026-09-15 16:02:38 +00:00
weichen and Cursor
68755862f1
docs(ops): occupy the integration slot for the test promotion
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:02:38 +00:00
weichen
067cf8be18
merge: feature/phase2-session-close
2026-09-15 15:58:47 +00:00
weichen and Cursor
035d8594a6
docs: sync multi-intent review index with the parked plan
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:58:47 +00:00
weichen and Cursor
fa5955be07
docs(design): tighten multi-intent confirm UI and accessibility gates
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:58:26 +00:00
weichen and Cursor
69d1203593
docs(ops): close Phase 2 session and park multi-intent HITL plan
...
Archive the shared-live short-term, refresh CURRENT foci, and check in the reviewed multi-intent design so it no longer sits uncommitted on dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:57:40 +00:00
weichen
c1a2bcc26b
merge: feature/current-env-snapshot
2026-09-15 15:27:50 +00:00
weichen and Cursor
05550f3558
docs(ops): record typed-result and live consumer modes in CURRENT
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:27:50 +00:00
weichen
3d39ee0589
merge: feature/pi-typed-result
2026-09-15 15:27:16 +00:00
weichen and Cursor
ecba6f3b14
chore: release the pi-typed-result integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:27:16 +00:00
weichen and Cursor
a3fa7c137b
docs(test): record PI typed-result-v1 dual-track evidence
...
Archive Track P tasks and point FEATURE-MATRIX at the live MiniMax runner report.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:25:34 +00:00
weichen and Cursor
0a61cfbe90
feat(agent): add typed-result-v1 and fail-closed remote parser
...
Remote /v1/run now emits additive result_v1; Go validates run_id, digest, and paths before materializing, and only accepts missing typed payloads with an explicit legacy handshake.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 15:25:18 +00:00
weichen
4dbe6a431c
merge: feature/http-error-envelope
2026-09-15 14:41:09 +00:00
weichen and Cursor
f6813cc272
feat(api): add additive HTTP/SSE error envelopes
...
Public errors now emit code, safe message, and request_id while keeping the legacy error field. Raw SQL, paths, tokens, and XSS payloads are stripped; the frontend branches on code instead of substring matching.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 14:40:56 +00:00
weichen
39dc68d15c
merge: feature/event-shared-live-cutover
2026-09-15 14:24:17 +00:00
weichen and Cursor
7a9d0d850d
chore: ignore pycache and release the live-cutover integration slot
...
Shared live rebuild passed health/ready; keep Python bytecode out of test-report assets.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 14:24:17 +00:00
weichen and Cursor
ad9027fe8f
docs(test): record shared event live cutover and close the reliability pilot
...
Notify, workflow_advance, and projection completed shadow/live/rollback on agent-dev; authorized 6275 digest matches; project 143 stays non-leaking.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 14:23:07 +00:00
weichen and Cursor
9b1a94c5bc
feat(app): drop production outbox and approval hook registration
...
Durable notify/advance/projection are live on shared dev, so composition roots must not assign OnOutbox or AddOnApprovedHook. Bind helpers remain for tests and a rollback window.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 14:23:07 +00:00
weichen and Cursor
4a662ec2d3
feat(events): gate shared-dev consumer mode changes
...
Add ValidateOpsCutover, eventmode CLI, and a host script that pin agent_system_dev and refuse FAV plus test/main before any cluster mode write.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 14:11:44 +00:00
weichen
a20760953a
merge: feature/phase2-closeout-inventories
2026-09-15 13:26:50 +00:00
weichen and Cursor
8400427c24
docs: close Phase 2 isolation tracks and file H0/P0 inventories
...
Archive completed Track E/S short-terms, record HTTP/PI compatibility matrices, and defer shared live plus protocol implementation to long-term tasks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:26:20 +00:00
weichen and Cursor
1c04f17c8c
test(events): reject replay apply without approval ref
...
ReplayPlan two-person apply already required digest match; this pins the missing ApprovalRef negative so dry-run tickets cannot skip the ticket field.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:26:20 +00:00
weichen
3a6d4f45dd
merge: fix/chatflow-orchestration-boundary
2026-09-15 13:15:57 +00:00
weichen and Cursor
9811ae3841
docs(test): record D7b chatflow orchestration boundary
...
S4b report and archive; chat production allowlist no longer includes bizdev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:15:48 +00:00
weichen and Cursor
425c8ba776
feat(chat): drop production bizdev import from action executor
...
Pending-action task runs now use stageflow request aliases and Server ports, so chat no longer reaches through the orchestration root.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:15:48 +00:00
weichen
20fc82c485
merge: fix/bizdev-locator-removal
2026-09-15 13:11:10 +00:00
weichen and Cursor
6a9e3fb51a
docs(test): record D4 bizdev locator removal
...
S1 report, archive the short-term task, and mark the getter contract closed.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:10:47 +00:00
weichen and Cursor
2a75abb39e
refactor(bizdev): delete eight locator getters
...
Composition roots already hold Snapshot ports; the interface and archtest now forbid putting Pool/DocGov/DocRevision/ContextManager/CAS/ProjectWorkflow/FreeformDoc/KB back on Service.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:08:25 +00:00
weichen and Cursor
3f42149457
feat(bizdev): snapshot collaborators onto Runtime and Server ports
...
Composition roots copy Parts once so HTTP/CLI handlers stop calling locator getters on every request.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 13:00:33 +00:00
weichen
92a9c6783d
merge: fix/stageflow-type-ownership
2026-09-15 11:13:17 +00:00
weichen and Cursor
acb443e949
docs(test): record D5 stageflow type ownership and chatflow first batch
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 11:13:17 +00:00
weichen and Cursor
110c2e810c
feat(stageflow): own task/stage types so coordinator drops bizdev
...
Coordinator now takes a StageTaskRunner and injected context/KB ports.
Chatflow assembler reads maturity tokens instead of the orchestration root.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 11:13:17 +00:00
weichen
6f541feac0
merge: fix/intent-bizdev-boundary
2026-09-15 10:29:38 +00:00
weichen and Cursor
23d0cfb10f
docs(test): record D7a intent-bizdev boundary
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:29:38 +00:00
weichen and Cursor
525047b841
feat(intent): depend on maturity vocabulary instead of bizdev
...
Intent only needed the three official stage tokens. Moving them to a
leaf package lets the recognizer compile without the orchestration root.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:29:38 +00:00
weichen
0a2ea2477d
merge: fix/doccontent-canonical-boundary
2026-09-15 10:24:24 +00:00
weichen and Cursor
7728339d08
docs(test): record D6 doccontent canonical boundary
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:24:24 +00:00
weichen and Cursor
9ddc673eb8
feat(doccontent): extract shared markdown canonicalization and SHA
...
docgov saves content hashes through the new leaf module so it no longer
imports docrevision. Existing docrevision exports stay as thin wrappers.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:24:24 +00:00
weichen
2771a1ed04
merge: fix/event-e2-hook-guard
2026-09-15 10:17:47 +00:00
weichen and Cursor
71502c7ce0
docs(test): record E2 hook live-guard and Track E retrospective
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:17:26 +00:00
weichen and Cursor
a1316e39cb
test(events): prove WriterLive off/shadow/live hook matrix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:17:26 +00:00
weichen and Cursor
97028c33b5
feat(events): skip in-process writers when a consumer is live
...
Keep OnOutbox and approval hooks registered while dispatcher mode is
off, but no-op them as soon as the matching durable consumer owns the
visible write so a later switch cannot dual-write.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:17:09 +00:00
weichen
51bf791ef0
merge: fix/event-projection-cutover
2026-09-15 10:00:38 +00:00
weichen and Cursor
dab3e1a355
docs(test): record E1C projection no-replace and worker restart evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 10:00:11 +00:00
weichen and Cursor
d645eaa1f7
docs(test): record E1C projection no-replace and worker restart evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:59:55 +00:00
weichen and Cursor
aa2f31dc0f
test(docproject): prove projection shadow, uniqueness, and no-replace
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:59:55 +00:00
weichen and Cursor
92f31ffa6a
feat(events): apply version-committed projections only forward
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:59:55 +00:00
weichen and Cursor
21d7692c94
feat(db): record unique projection outcomes per envelope version
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:59:54 +00:00
weichen
1b1d0a1cba
merge: fix/event-workflow-advance
2026-09-15 09:43:09 +00:00
weichen and Cursor
7d1b7e736b
docs(test): record E1B workflow-advance shadow/live/rollback evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:43:09 +00:00
weichen and Cursor
0ebaaaed87
test(docadvance): prove workflow advance shadow, uniqueness, and rollback
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:43:09 +00:00
weichen and Cursor
965e288d36
feat(events): apply approved events onto workflow advance in one fenced transaction
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:43:09 +00:00
weichen and Cursor
28bb0b8356
feat(db): correlate stage-ready requests to envelope event_id
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:43:09 +00:00
weichen
ebf16aa094
merge: fix/event-notify-cutover
2026-09-15 09:26:45 +00:00
weichen and Cursor
ff713ff790
docs(test): record E1A notify shadow/live/rollback evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:26:36 +00:00
weichen and Cursor
a5e46eeb5f
test(docnotify): prove notify shadow, live uniqueness, and rollback on isolated PG
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:26:36 +00:00
weichen and Cursor
16a31f8aa5
feat(events): run notify side effects and ack on one fenced transaction
...
Shadow dry-runs the same handler then rolls back, writing only the intended digest.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:26:36 +00:00
weichen and Cursor
6702b16249
feat(db): correlate notifications to envelope event_id for unique visible outcomes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:26:36 +00:00
weichen
06b824ad7c
merge: feature/events-dispatcher-pg
2026-09-15 09:08:25 +00:00
weichen and Cursor
d926f64c2e
docs(test): record E0B dispatcher PG, race, and default-off evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:08:15 +00:00
weichen and Cursor
6bee7630bd
feat(service): run the event dispatcher as an independent cmd/events process
...
HTTP Runtime does not start the worker. Each compose environment gets its own events service, health port, and bounded pool.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:08:15 +00:00
weichen and Cursor
d5968ad4ba
feat(events): replace SELECT-only claim with fenced atomic leases
...
Workers claim with SKIP LOCKED, heartbeat by token, and ack/fail only when the fencing token still matches. Shadow scans without acking live deliveries.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:08:15 +00:00
weichen and Cursor
5fd5588a3f
feat(db): add dispatcher attempts, consumer modes, and checkpoints
...
E0B needs an additive lease audit trail and a cluster-level off/shadow/live table before any worker can claim. FAV remains constrained to off.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 09:08:15 +00:00
weichen
5f3b117c00
merge: fix/event-production-scope-contract
2026-09-15 08:53:10 +00:00
weichen and Cursor
0f2f8d30e5
docs(test): record E0A producer-contract gate and checkpoint ADR
...
Archive isolated-PG evidence, 7-day read-only inventory, and the decision to bootstrap consumers from the first safe event instead of gap-waiting.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 08:52:59 +00:00
weichen and Cursor
0f2057765a
test(docflow): prove three production chains share one Postgres transaction
...
Isolated-library coverage checks approved/candidate/impact envelopes, empty-env rollback, and zero FAV staging rows.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 08:52:48 +00:00
weichen and Cursor
504058debf
feat(app): inject unique docflow Commands and isolate FAV from production events
...
HTTP adapters now reuse the composition-root instance. Candidate-ready, downstream impact, and approved envelopes share the domain unit of work, and missing env/project fail closed without defaulting to dev/0.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 08:52:40 +00:00
weichen and Cursor
bcb122ac53
feat(events): fail-closed scope, static registry, inventory, and replay digest
...
Reject empty environment/project, disable FAV consumers at register time, and keep historical classification/repair/replay as audited application use cases with no raw SQL entrypoint.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 08:52:30 +00:00