Commit Graph
1344 Commits
Author SHA1 Message Date
Yichen Jiang d77db29f01 test: real-Loader dynamic composition, keyless onboarding snapshot, and .env-only e2e
llm-deepseek gains a Loader+Include composition spec proving external
settings.yaml/.env edits reach the very next request, and a real-API e2e
where only a credentials-local document holds the key. The headless example
pins the first-run missing-credential UX as a keyless stream-json snapshot
(new credentials.cordis.snapshot.yml scenario); runLoaderSmoke learns
expectedExitCode so a designed failure surface can be pinned instead of
masked.
2026-07-29 13:44:24 +08:00
Yichen Jiang 0dce3f57ca Merge remote-tracking branch 'origin/master' into worktree/default-pi-ai-providers
# Conflicts:
#	apps/cli/README.i18n.yaml
2026-07-29 13:25:06 +08:00
Yichen Jiang 8f9535af87 Merge remote-tracking branch 'origin/master' into worktree/skill-invocation-controls
# Conflicts:
#	docs/cordis-catalog/services.md
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/ui/tui/README.i18n.yaml
2026-07-29 12:58:10 +08:00
ZiyaZhang ea4103c14a Merge remote-tracking branch 'upstream/master' into fix/hook-matcher-validation 2026-07-28 19:49:35 -07:00
Turtle efb67365d3 test(tui): update assembled terminal snapshots 2026-07-29 10:03:38 +08:00
ZiyaZhang dfba46c6d4 Merge remote-tracking branch 'upstream/master' into fix/workspace-instruction-frame-metadata 2026-07-28 16:53:21 -07:00
ZiyaZhang fad111c7e6 Merge remote-tracking branch 'upstream/master' into fix/hook-matcher-validation 2026-07-28 16:14:51 -07:00
Tianyi Cui 07d61ee992 Merge latest master into skill invocation controls
# Conflicts:
#	docs/config-catalog.md
#	docs/cordis-catalog/services.md
#	examples/acp-agent/tests/snapshots/skill-load/session.jsonl
#	packages/host/apiproxy/README.i18n.yaml
#	packages/host/apiproxy/README.md
#	packages/host/apiproxy/README.zh.md
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/skill/tool-skill/src/index.ts
#	packages/ui/tui/README.i18n.yaml
2026-07-29 01:29:39 +08:00
imccyu 532b2b9107 Merge origin/master (regenerate the event producer-consumer graph) 2026-07-29 01:21:29 +08:00
ZiyaZhang 140a1eaccc Merge commit 'f7e1c47968ecf8704af9605f3f6bc1db6db869bc' into fix/hook-matcher-validation 2026-07-28 10:08:11 -07:00
ZiyaZhang faa540e667 Merge remote-tracking branch 'upstream/master' into fix/workspace-instruction-frame-metadata 2026-07-28 10:03:58 -07:00
ZiyaZhang 55321fe7a4 fix(hooks): ignore matcherless event fields 2026-07-28 09:55:18 -07:00
ZiyaZhang 688d298e7e Merge remote-tracking branch 'upstream/master' into fix/workspace-instruction-frame-metadata 2026-07-28 09:53:30 -07:00
ZiyaZhang cddf340df8 Merge remote-tracking branch 'origin/master' into fix/hook-matcher-validation 2026-07-28 09:49:40 -07:00
Tianyi Cui 8f867cc709 Merge branch 'master' into feature/subagent-policy-inheritance 2026-07-29 00:49:35 +08:00
imccyu 37f34af15f fix(plan): gate the immediate commit on the open-turn fold, not agent status
The TUI keyless smoke exposed the wrong idle signal: /plan submitted while
the driver is between turns still saw status running (checkpointing), so
the selection queued and the immediate copy never appeared. The commit
gate is now the log's own open-turn fold — plan/mode commits at once
whenever no turn is open, and queues only inside one. Specs drive the
distinction through explicit turn/start / turn/end events instead of a
fake status; the keyless smoke pins the new idle copy on both /plan and
/plan off; regenerated cordis/service catalogs ride along.
2026-07-29 00:46:56 +08:00
Tianyi Cui 63c9db1759 test(snapshot): preserve cwd punctuation 2026-07-29 00:02:38 +08:00
ZiyaZhang 15edb38a34 Merge remote-tracking branch 'upstream/master' into fix/workspace-instruction-frame-metadata
# Conflicts:
#	packages/support/acp-snapshot/README.i18n.yaml
#	packages/support/acp-snapshot/README.md
#	packages/support/acp-snapshot/README.zh.md
2026-07-28 08:59:32 -07:00
ZiyaZhang 61a388b54e test(hooks): align matcher fixtures with message identity 2026-07-28 08:59:28 -07:00
imccyu cb8968c80e test(plan): cover the final-state tails and refresh the TUI golden
The idle /plan and /plan off command paths pin the immediate-commit copy;
the chip's dead leaving/locked guard is deleted (both states disable the
button, so no click reaches the handler); the multi-turn TUI golden is
re-recorded keyless over the idle-commit wording and the standalone
plan/mode narration ordering.
2026-07-28 23:49:38 +08:00
Tianyi Cui c3d9f132e8 test(snapshot): canonicalize generated cwd tokens 2026-07-28 23:46:01 +08:00
ZiyaZhang 0626b6656c Merge remote-tracking branch 'origin/master' into fix/hook-matcher-validation 2026-07-28 08:15:28 -07:00
Yichen Jiang c146304797 Merge remote-tracking branch 'origin/master' into worktree/default-pi-ai-providers 2026-07-28 22:29:48 +08:00
Yichen Jiang 152f3e9596 feat(apps): register OpenAI and Anthropic providers 2026-07-28 22:29:41 +08:00
Tianyi Cui 4cf7603be4 test(snapshot): enforce portable fixture invariants 2026-07-28 21:45:01 +08:00
Tianyi Cui 39ff4866ac Merge retargeted parent into policy inheritance simplification 2026-07-28 21:35:23 +08:00
Tianyi Cui 5d147735ac Merge latest master into subagent policy inheritance 2026-07-28 21:33:40 +08:00
Tianyi Cui 84d0d92cfb test(snapshot): normalize temporary workspace paths 2026-07-28 21:32:49 +08:00
Tianyi Cui a70f1a2b7a test(acp): remove vacuous policy inheritance scenario
The ACP fixture configured read-only as the deployment default for both parent and child. Its delegated write therefore remained denied even with inheritance disabled, so the scenario could not fail on the regression it claimed to protect.

Delete the overlay, scenario registration, sessions, prompt, and 473-line tool-schema sidecar. The Loader-booted headless snapshot remains the real composition guard: only its parent carries read-only while the deployment default is workspace-write, so removing inheritance makes the child write reach disk and fails the test.

Keeping one discriminating snapshot avoids 662 lines of duplicated fixture data and makes the review evidence correspond to the actual security boundary.
2026-07-28 21:32:10 +08:00
Tianyi Cui cfceb8452b subagent: seed inherited policy events at creation
The parent implementation introduced sandboxMode and approvalPolicy as generic SessionHeader fields, then propagated those fields through both persistence backends, session-query indexes, collision checks, policy-specific seed-boundary folds, catalogs, and a broad test matrix. That storage plane is unnecessary: Session already accepts a validated constructor seed, and persistence captures that seed when the session is announced before committing its first batch.

Capture each parent override synchronously at delegation, append source-tagged sandbox/mode and approval/policy records after the optional fork prefix, and create the child with that combined seed. Keeping header.seedLength at the original fork-prefix length preserves lineage while ordinary last-event-wins folds make the inherited records outrank stale parent history and remain subordinate to later child switches. Unswitched parents still stamp nothing, so children continue to follow deployment defaults.

Remove the generic header fields and every persistence/query/schema branch built around them. Collapse the inheritance suite from ten leaking scenarios to four owned-context cases covering real filesystem confinement, stale fork precedence, delegation-time capture, and the no-override path. The assembled headless snapshot now asserts the persisted inheritance event directly.

This keeps the security behavior while restoring policy ownership to the existing event log and deleting the speculative durability machinery that the original tests did not exercise.
2026-07-28 21:31:17 +08:00
Tianyi Cui afa38c4b2f Merge latest master into subagent policy inheritance
Retarget the feature branch to the current master tip without rewriting its existing review history. Keeping this as a dedicated merge checkpoint makes the later simplification diff attributable to the stacked child rather than mixing base movement with design changes.

Resolve the identified-message API drift in the feature tests by constructing complete user messages, reading the nested tool-result message shape, and adapting the prompt-submit listener signature. Preserve both sides of the user-approval conflict: master’s createUserMessage wrapper and the feature’s inherited-policy attribution.

Regenerate the Cordis and persistence catalogs, re-record the session README pair, and refresh the affected ACP/headless fixtures so derived artifacts describe the merged source rather than either parent in isolation.

Validated with the focused policy/session/persistence/query suites (430 tests), focused ACP/headless snapshots (3 tests), build, doc-sync (25 gates), lint, hygiene, and git diff checks.
2026-07-28 21:11:20 +08:00
Tianyi Cui 0304ba1457 Merge branch 'master' into worktree/dedupe-snapshot-contracts 2026-07-28 21:08:38 +08:00
ZiyaZhang f688cd32af fix(workspace-context): escape instruction metadata 2026-07-28 05:22:47 -07:00
_Kerman bc988ca4a9 Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages
# Conflicts:
#	docs/cordis-catalog/events.md
#	docs/core-data-structures/core.i18n.yaml
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/core/agent-loop/README.i18n.yaml
#	packages/core/agent/README.i18n.yaml
2026-07-28 18:49:23 +08:00
kingwl 2f93614efb Merge remote-tracking branch 'origin/master' into feature/subagent-policy-inheritance
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/subagent/subagent-inprocess/README.i18n.yaml
2026-07-28 18:37:46 +08:00
kingwl d69e1ada97 Merge remote-tracking branch 'origin/master' into feature/subagent-policy-inheritance
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/persistence.i18n.yaml
#	docs/persistence-catalog.md
#	packages/core/session/README.i18n.yaml
#	packages/sandbox/sandbox-policy/README.i18n.yaml
#	packages/subagent/subagent-inprocess/README.i18n.yaml
2026-07-28 18:19:30 +08:00
Yichen Jiang fd01fef6b7 test(sdk): satisfy max tokens gates 2026-07-28 18:06:58 +08:00
ZiyaZhang 5e4c2ffae7 test(hooks): snapshot invalid matcher loading 2026-07-28 02:58:08 -07:00
Yichen Jiang 5358168787 feat(sdk): support max output tokens 2026-07-28 17:36:44 +08:00
Tianyi Cui 9c78a7df33 test(snapshot): share identical header sidecars 2026-07-28 17:26:03 +08:00
Yichen Jiang 3764778be3 Merge remote-tracking branch 'origin/master' into worktree/skill-invocation-controls 2026-07-28 17:22:56 +08:00
Yichen Jiang e133e4bddb feat(skill): add invocation controls 2026-07-28 17:22:41 +08:00
Tianyi Cui def1b5c55a Merge remote-tracking branch 'origin/master' into worktree/pr742-retarget-20260728
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-28 16:59:10 +08:00
NI0317 6b79ce08c5 test(fs-search): minimize glob snapshot composition
Boot the glob sampling scenario from a standalone ACP composition that exposes only bash, glob, and grep. Regenerate the smaller header fixtures and trim implementation narration already owned by the Agent Note.
2026-07-28 16:21:29 +08:00
NI0317 b14fbf7031 Merge remote-tracking branch 'origin/master' into feature/directory-listing-tool 2026-07-28 16:12:11 +08:00
_Kerman 750aa2022f fix(snapshot): refresh session title messages 2026-07-28 15:55:15 +08:00
_Kerman 019b0abb68 Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/core.i18n.yaml
#	docs/core-data-structures/session.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/persistence-catalog.md
#	packages/core/session/README.i18n.yaml
#	packages/session-title/session-title/tests/persistence.spec.ts
2026-07-28 15:45:53 +08:00
_Kerman a39ffb095a fix(session): preserve plugin turn invariants 2026-07-28 15:18:48 +08:00
NI0317 57cf137918 fix(fs-search): keep broad glob samples representative
Remove the duplicate model-facing list tool from this branch; directory orientation remains available through bash ls. Keep the glob sampling fix, add a real ACP composition snapshot, and narrow the decision record to the shipped bug fix.
2026-07-28 14:42:59 +08:00
_Kerman 350c296cff fix: complete immutable message migration 2026-07-28 14:15:23 +08:00