Commit Graph
404 Commits
Author SHA1 Message Date
weichen cc48d2eecb Merge latest main into the endpoint integration branch
Why: keep the integration branch current with main's advances.

Evidence: host-verified; see Dev PR #706

Impact: integration commit.
2026-10-23 16:06:56 +00:00
weichen 68104556d5 Merge the endpoint migration into the current main line
Why: Dev main advanced this component's pin on the pre-migration
lineage while the endpoint migration landed on main; combine both so
the combined pin carries migrated URLs and the newer functionality.

Evidence: host-verified; see Dev PR #706

Impact: integration commit.

Refs: Agent-System-Dev PR #706

# Conflicts:
#	deps/agent-command
#	deps/agent-intent
#	deps/agent-native
#	deps/agent-squad
2026-10-23 14:40:48 +00:00
weichen 7776399fe7 Reapply the A1 review m1-m4 fixes lost in a stale apply
Why: the m1-m4 changes (intent_session comment sync, cancel reason,
expiry fail-closed, slot ownership) were applied to a backend state
that later got reset, losing them from the branch; the reviewer
correctly flagged their absence.
Evidence: repair receipt (a1m-run.json) reusing the preserved
transport diff; per-package tests below.
Impact: the four review-minor behaviors restored on the current tip.
Refs: feature/audit-review-minors-cleanup
2026-10-23 12:28:01 +00:00
agent-exec-transport 67102901d6 agent-exec transport 7a27ae40d354fd19ec3b760cf1a7ce9a/d2827ccb55ff 2026-10-23 11:51:03 +00:00
weichen 50bc120fed Merge remote-tracking branch 'origin/main' into fix/role-project-scope-permissions
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Successful in 2m33s
2026-10-23 08:49:30 +00:00
agent-exec-transport e7b345e127 Carry project-scope defaults for roles with project management
governance / governance (pull_request) Successful in 17s
ci / vet-and-test (pull_request) Successful in 1m52s
Why: After the role-authority cutover a role could only carry the single
project.create boolean, so every project-scope action resolved as undefined and
project conversations plus member collaboration were rejected. Owner product
intent: a role carries one project-management toggle, and holding it grants the
in-project defaults (read, write, members, traces, stage, archive, audit);
three-duty and knowledge publishing stay duty-gated.

Evidence: go test ./internal/store ./internal/app ./internal/server -count=1
passes; TestRoleCarriesProjectScopeDefaults covers the write, the snapshot
projection and the unchanged invariant that a role enabling project.create may
not deny a linked management action. The agent-exec transport diff is identical
to the owner-accepted revision deployed on imc-tx-ecs (binary 941f8eef).

Impact: ReplaceRolePermissions accepts project-scope actions while protected
system actions stay refused, RolePermissions projects project-scope rows plus
the project-management implied defaults into the role policy snapshot, and an
explicit capability-association gate runs before each write.

Refs: feature/role-project-scope-permissions
2026-10-23 08:47:11 +00:00
agent-exec-transport 32ae91e8d9 agent-exec transport ae6850a4e3e4d28ecaa38f92061f2782/f8e97c931854 2026-10-23 08:02:29 +00:00
weichen 96393b77f7 Integration: endpoint migration into the recall-eval stack
Why: combine the in-flight recall-eval stack with the endpoint
migration so superproject pins can advance safely.

Evidence: host-verified; see Dev PR #706

Impact: integration commit.

Refs: Agent-System-Dev PR #706

# Conflicts:
#	deps/agent-intent
#	deps/agent-native
#	deps/agent-squad
2026-10-23 04:30:03 +00:00
agent-exec-transport 56700f0a26 agent-exec transport 2db9c40c541363422c723d1144447eef/125a24e9759a
governance / governance (pull_request) Successful in 28s
ci / vet-and-test (pull_request) Successful in 2m32s
2026-10-23 01:54:26 +00:00
weichen 2da3d76ce1 Move the published renderer pin to the migrated renderer main
governance / governance (pull_request) Successful in 25s
ci / vet-and-test (pull_request) Successful in 2m23s
Why: the document-renderer pin moved to its migrated main for the
endpoint migration; identity regenerated and the published-pin
expectation updated to match.

Evidence: go test ./internal/docgen → ok (local, host-verified)

Impact: generated identity + test constant; part of the coordinated
endpoint migration.

Refs: Agent-System-Dev PR #706
2026-10-22 15:34:06 +00:00
weichen ea497ed149 Regenerate the renderer identity for the migrated renderer pin
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Failing after 2m31s
Why: the document-renderer pin moved to its migrated main; the
checked-in identity must match or docgen tests fail.

Evidence: host-verified; see Dev PR #706

Impact: generated constant only.

Refs: Agent-System-Dev PR #706
2026-10-22 15:23:24 +00:00
weichen 330c1a3ffe Merge commit 'f9939dd1d722b997c6f1522237ae2e53fd9e239c' into fix/exec-recovery-diagnostics-a2 2026-10-22 14:56:09 +00:00
agent-exec-transport f9939dd1d7 agent-exec transport b82641a7033ca786ca66a2ca599ea9b5/4ad0f36d42ba 2026-10-22 14:53:01 +00:00
agent-exec-transport 06b0c9f1db Add the read-only run diagnostics endpoint
Why: A2 - answer where a run is stuck, who is responsible, why it
waits, the last stable checkpoint, known side effects and the next
step, from existing records only (recovery holds, HITL decisions,
confirmation cards, audit envelopes).
Evidence: rundiag/server/store tests pass (verify-a2.json); per-state
responsibility, scoping and next-step mapping cases added.
Impact: one read-only GET endpoint plus read helpers; no behavior
change to execution or recovery paths.
Refs: feature/exec-recovery-diagnostics-a2
2026-10-22 13:03:53 +00:00
weichen c2e3104970 Route the cancel intent through cmdbus with explicit targets
Why: A1 - the cancel library command was declined as host-unconsumed,
so "取消刚才的任务" could not act on a real run.
Evidence: route/server/intentsession tests pass (verify-a1c.json);
explicit-id, session-bound, ambiguous and cross-owner cases added;
confirmation card semantics unchanged.
Impact: cancel decisions dispatch via the existing host path; other
intents unchanged.
Refs: feature/intent-multi-turn-a1
2026-10-22 10:04:23 +00:00
weichen 0fb64c488e Add conversation-scoped intent sessions for multi-turn closure
Why: A1 - the host declined set_slot/change_slot/cancel and never kept
pending expectations, so multi-turn clarifications could not complete
an action.
Evidence: intentsession/store/server tests pass (verify-a1b.json);
TTL, revision, isolation, expiry and legacy-behavior cases added.
Impact: new table + service; chat flow suspends/fills expectations;
cmdbus confirmation semantics untouched (U-A1c routes cancel next).
Refs: feature/intent-multi-turn-a1
2026-10-22 09:30:25 +00:00
weichenandCursor 8cd4dd0ab7 Qualify the role permission version upsert and wait for the second HITL card
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Successful in 1m27s
Why: Dev composite test-pg failed: PostgreSQL rejects the unqualified
permission_version self-reference in the role_permissions upsert
(SQLSTATE 42702), and TestResolveHITLSecondRoundKeepsTerminalStatus read
the round-2 card before it was persisted.

Evidence: go test ./internal/store ./internal/runmgr pass and the HITL
test passes 20 consecutive runs locally on SQLite (SELF); PostgreSQL is
verified by the Dev composite test-pg job.

Impact: role_permissions.permission_version+1 on conflict; test-only
wait mirrors round 1. No other behavior change.

Refs: Agent-System-Backend#240, Agent-System-Dev#691 (test-pg run 4841);
agent-exec receipt u7-run (pi, success)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 06:40:12 +00:00
weichen 443e7af1b8 Merge branch 'main' into fix/agent-stack-audit-b2
governance / governance (pull_request) Successful in 18s
ci / vet-and-test (pull_request) Successful in 1m22s
2026-10-22 05:44:47 +00:00
weichen 7b8a34d1aa Synchronize the shared tool-run state behind the direct path
Why: the U11C concurrent event plumbing exposed a data race between
runToolCtx writes and callback reads; -race failed the package on
fc0a050 but passed on its parent.
Evidence: full-package race run green (verify-u11cr.json, exit=0).
Impact: synchronization only; no behavior change.
Refs: feature/agent-stack-audit-remediation-b2 U11c repair
2026-10-22 04:17:55 +00:00
weichenandCursor 2424f8e3f7 Merge origin/main into feature/scratch-session-general-agent
governance / governance (pull_request) Successful in 17s
ci / vet-and-test (pull_request) Successful in 1m24s
Why: main advanced with agent-stack audit batch-1; resolve the Bus
struct conflict by keeping both hostProjectGuard and operationQuery.

Evidence: go test ./internal/cmdbus ./internal/app ./internal/runmgr
./internal/server ./internal/store pass locally (SELF).

Impact: scratch host guard retained alongside the new operation query
port; deps gitlinks match origin/main.

Refs: Agent-System-Backend#241
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 04:06:52 +00:00
weichenandCursor b704ba9897 Fail closed both ways when the scratch host lookup fails
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Successful in 1m23s
Why: Returning true from scratchProject on a lookup error closed the
isolation gates correctly, but the same helper also skipped RDM
observation and project context for a normal project during a
transient store failure.

Evidence: go test ./internal/runmgr ./internal/cmdbus ./internal/app
./internal/server ./internal/store pass locally (SELF); CI is authoritative.

Impact: confirmedScratchProject (lookup succeeded and marked scratch)
drives the relaxing gates; scratchProject (lookup error => true) keeps
driving the tightening ones.

Refs: Agent-System-Backend#241; agent-exec receipt u2d-run (pi, success)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 04:02:11 +00:00
weichen 03f7f39a9b Merge origin/main into fix/agent-stack-audit-b1
governance / governance (pull_request) Successful in 15s
ci / vet-and-test (pull_request) Successful in 1m20s
2026-10-22 03:58:45 +00:00
weichenandCursor 2fc6e7e0a7 Gate project context and project commands for scratch hosts at the source
Why: Independent review found scratch runs still called the project
context resolver, and chat intent routing plus system.intent re-dispatch
could deliver rdm.* commands with a scratch host project.

Evidence: go test ./internal/runmgr ./internal/cmdbus ./internal/app
./internal/server ./internal/store pass locally (SELF); CI is authoritative.

Impact: ProjectContext returns nothing when project context is disabled;
Bus.Dispatch applies a host-project guard to every request carrying a host
project, rejecting rdm.* and formal project commands on scratch hosts;
scratch lookups that fail keep isolation gates closed.

Refs: Agent-System-Backend#241; agent-exec receipt u2c-run (pi, success)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 03:53:46 +00:00
weichen fc0a0505b3 Honor tool-call identity and real status in squad runner events
Why: F14 backend half - tool events used the tool name as the call id
and hardcoded status ok, so same-named tools could not be paired and
failures displayed as success; parallel callbacks shared artifact state.
Evidence: squad runner event tests pass (verify-u11c.json); pairing,
error mapping and legacy passthrough cases added; artifact list locked.
Impact: legacy empty-field events keep byte-identical output.
Refs: feature/agent-stack-audit-remediation-b2 U11c
2026-10-22 03:49:37 +00:00
agent-exec-transport 97f60c1df6 agent-exec transport f461d74086dd6a80db72f83748f34b04/128fee1609ad
governance / governance (pull_request) Successful in 15s
ci / vet-and-test (pull_request) Successful in 1m20s
2026-10-22 03:41:15 +00:00
weichenandCursor f3f70a7978 Mark scratch conversations in conversation responses
governance / governance (pull_request) Successful in 21s
ci / vet-and-test (pull_request) Successful in 1m27s
Why: The Frontend groups scratch sessions under a separate sidebar category and
needs an explicit marker instead of inferring it from the project list.
Evidence: agent-exec run 2d662c46 (pi, success); go test ./internal/store ./internal/server pass.
Impact: listTasks, listConversations, conversationDetail and POST /api/scratch-sessions
return scratch: true for scratch conversations; other conversations keep the same JSON (omitempty).
Refs: Agent-System-Dev docs/superpowers/specs/2026-10-22-scratch-session-general-agent-design.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 03:05:25 +00:00
agent-exec-transport 4c2db4c89b agent-exec transport baad876f1320016310be2522c373a71b/9d3ed5593bfb
governance / governance (pull_request) Successful in 17s
ci / vet-and-test (pull_request) Successful in 1m27s
2026-10-22 03:03:31 +00:00
weichenandCursor 613c068c79 Isolate scratch sessions from project-only capabilities
Why: A scratch session is a private general-agent chat; it must work for its
owner without the RDM provider and must not share documents or context with any
other conversation.
Evidence: agent-exec run fb04c4a9 (pi, success); go test ./internal/store ./internal/server ./internal/runmgr ./internal/app pass.
Impact: Owner work/read on scratch bypasses the domain provider; non-owners and
shared adapters get NotFound. Scratch runs skip project context, knowledge
retrieval, owner/project context entries, user/project memory, and cross-session
reads (both directions). Knowledge add/search 400, rdm.* and formal project
commands 403, settings writes 400, uploads skip indexing, and deleting the sole
conversation removes the scratch project.
Refs: Agent-System-Dev docs/superpowers/specs/2026-10-22-scratch-session-general-agent-design.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 02:53:31 +00:00
weichenandCursor 3b4a7af4b4 Add scratch sessions as inherent private no-project conversations
Why: Accounts without project.create need an isolated general-agent chat; each
scratch session is a private shell project (settings host.kind=scratch) with
exactly one cross-private conversation.
Evidence: agent-exec run 9b3d31a3 (pi, success); go test ./internal/store ./internal/server -run Scratch pass.
Impact: New POST /api/scratch-sessions (no project.create needed); project lists
omit scratch; second conversation under scratch 409; client writes cannot add or
remove the scratch marker; POST /api/projects rejects the marker.
Refs: Agent-System-Dev docs/superpowers/specs/2026-10-22-scratch-session-general-agent-design.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 02:16:15 +00:00
weichen b6141800cc Merge commit '528e3a4c1ff9b59c4df998f4fffb39f0b52dbbcd' into fix/agent-stack-audit-b1
ci / vet-and-test (pull_request) Successful in 2m3s
governance / governance (pull_request) Successful in 14s
2026-10-21 18:24:33 +00:00
weichen 49c1259e00 Keep the server admission test inside the intent boundary
Why: the U6 admission test imported agent-intent directly from
internal/server, which lint-boundaries forbids (only intentgate,
intentsem and the squad intent adapter may import it).
Evidence: repair receipt success; server/intentgate/route tests pass
(verify-u6r.json); fixtures moved behind intentgate helpers.
Impact: test-only rework plus a small intentgate fixture helper.
Refs: feature/agent-stack-audit-remediation-b1 U6 repair
2026-10-21 17:35:53 +00:00
weichen 4030449f4b Report honest receipts when handlers err after side effects
Why: F10 - any handler error became a no-side-effect rejected receipt
and an audit-store failure dropped the generated operation ID, losing
the reconciliation handle and inviting unsafe retries.
Evidence: cmdbus tests pass (verify-u7b.json); post-execution-unknown,
audit-failure-keeps-ID and confirmation-idempotency cases added.
Impact: unknown receipts now carry the trusted operation ID via the
U7A constructor; rejected stays ID-free; no auto-replay anywhere.
Refs: feature/agent-stack-audit-remediation-b1 U7B
2026-10-21 16:55:01 +00:00
weichen 0e55875329 Admit intents with full slot validity and schema-typed slots
Why: F09 - invalid slot information was dropped at the gate, the router
saw only Start, and the command entrance passed untyped text, so
invalid-slot recognitions could still reach business execution paths.
Evidence: intentgate/route/server tests pass (verify-u6.json);
admission regression cases added.
Impact: invalid or missing slots never start executable actions;
clarification flows unchanged; cmdbus confirmation untouched.
Refs: feature/agent-stack-audit-remediation-b1 U6
2026-10-21 16:34:12 +00:00
weichen 80faf3edbd Resolve squad routes from the run owner and project
Why: F13 - the squad factory read the default account with an empty
project, pairing the run user's model name with another account's
endpoint and credentials; direct and squad paths disagreed on
reasoning split and route contract.
Evidence: app/runtime/squadadapter tests pass (verify-u10b.json);
run-scoped snapshot, project override, profile override and
fail-closed cases added with synthetic keys.
Impact: squad execution now uses the same effective-config rules as
the direct path; default setups unchanged.
Refs: feature/agent-stack-audit-remediation-b1 U10
2026-10-21 16:15:03 +00:00
weichen 4a8cc0170b Merge remote-tracking branch 'origin/main' into fix/iam-perm-ux-port
governance / governance (pull_request) Successful in 23s
ci / vet-and-test (pull_request) Successful in 1m42s
2026-10-21 15:14:16 +00:00
agent-exec-transportandCursor 954e744d6d Require the caller's conversation when creating a surface
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Successful in 1m14s
POST /api/surfaces with an empty surfaceId now requires a conversationId
that belongs to the caller: empty returns 400, missing or another owner's
conversation returns 404. Revisions keep the previous behavior. Without
this check a direct API caller could create a project-less surface and
skip the project lifecycle gate on actions.

Why: an empty conversationId produced surfaces with no project ownership.
Evidence: agent-exec unit backend-surface-submit-conversation-required (pi, attempt 1 after authorized rerun, terminal=success); go test ./internal/server/... ./internal/surfacesvc/... .
Impact: HTTP create-surface validation only.
Refs: Dev task fix/svc-superadmin-envfile-surface-conv.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-21 15:02:15 +00:00
agent-exec-transport f10fb2e65c agent-exec transport 362d13b3c56f54861bc1cae9cd38cc36/2b675cb19c4f 2026-10-21 15:01:35 +00:00
agent-exec-transport 76abebe790 agent-exec transport 64b951970cf4308149cee90d2ab93fbb/078c7847c409 2026-10-21 14:41:59 +00:00
agent-exec-transport 789f67f317 agent-exec transport d7af319ad1e36046a46be5ad16007582/d3f2d0786d5b 2026-10-21 07:10:20 +00:00
agent-exec-transport aec92b7684 agent-exec transport bf732506478b02c63a7b4fe251f0ef0f/ba449849829e
governance / governance (pull_request) Successful in 16s
ci / vet-and-test (pull_request) Successful in 1m18s
2026-10-21 06:08:09 +00:00
agent-exec-transport 9a6f0f880f agent-exec transport fb210f7fecc330e94bf619a5fb064a9c/3e52e52b4541 2026-10-21 05:38:29 +00:00
agent-exec-transport 52a3e497ed agent-exec transport 2aba0efd75f9b3a95cb01b82b7fcc45c/866c2dd62a06
governance / governance (pull_request) Successful in 13s
ci / vet-and-test (pull_request) Successful in 1m15s
2026-10-21 04:36:36 +00:00
agent-exec-transport 284d3ac781 agent-exec transport 39075300fab9c8ac1d78ca2dd93074fd/55144c34e7ce
governance / governance (pull_request) Successful in 15s
ci / vet-and-test (pull_request) Successful in 1m36s
2026-10-21 03:53:35 +00:00
weichen 0408a032c1 Merge the lifecycle role and project-state work into Backend main
Why: the project access and lifecycle units (U1 role narrowing to a single
project-access boolean, U2 creator authority, U3 member history, U4 project
work states) were implemented and pushed on this line but never landed on
Backend main, so Dev's pinned Backend does not contain them.

Evidence: merge is conflict-free against current origin/main; full
vet-and-test runs on the merge commit.

Impact: Backend only. RDM side is delivered separately.

Refs: Dev PR #634.
2026-10-21 03:47:35 +00:00
agent-exec-transport 7867449920 agent-exec transport 3908146c8a3ed2d0c3967ffe7fdf69cf/9e8e3bf5a934
governance / governance (pull_request) Successful in 19s
ci / vet-and-test (pull_request) Successful in 1m12s
2026-10-21 02:58:14 +00:00
weichen 5a4edf3bc1 Merge remote-tracking branch 'origin/main' into feature/w6-x1-source-recheck
governance / governance (pull_request) Successful in 21s
ci / vet-and-test (pull_request) Successful in 1m28s
2026-10-21 01:48:57 +00:00
agent-exec-transport 837480d4c1 agent-exec transport fe547395130f262af6f15a09d8a4aa2d/1f4b762f53be
governance / governance (pull_request) Successful in 23s
ci / vet-and-test (pull_request) Successful in 1m26s
2026-10-20 16:15:37 +00:00
agent-exec-transport 8c410b9ea4 agent-exec transport 412eff9b36afd457500606d468b89f94/0636a7e1c0f0
governance / governance (pull_request) Successful in 14s
ci / vet-and-test (pull_request) Successful in 1m30s
2026-10-20 15:59:51 +00:00
agent-exec-transport bd640df8d0 agent-exec transport 70575de7333e033d2c2b5f7bc0eec883/362fcbe4d749 2026-10-20 13:13:39 +00:00
agent-exec-transport 58228c21f3 agent-exec transport d0da8a3d648b5dc044f808fb094916f8/2838ce0af93e
governance / governance (pull_request) Successful in 20s
ci / vet-and-test (pull_request) Successful in 1m45s
2026-10-20 12:44:00 +00:00