@gajae-code/coding-agent 0.17.4 → 0.17.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/dist/types/config/autorouting-tier-map.d.ts +1031 -3
- package/dist/types/config/file-lock.d.ts +4 -2
- package/dist/types/config/model-registry.d.ts +3 -1
- package/dist/types/config/model-resolver.d.ts +1 -1
- package/dist/types/exec/bash-executor.d.ts +2 -0
- package/dist/types/extensibility/gjc-plugins/runtime-adapters.d.ts +11 -2
- package/dist/types/gjc-runtime/state-writer.d.ts +14 -1
- package/dist/types/harness-control-plane/control-endpoint.d.ts +4 -1
- package/dist/types/harness-control-plane/finalize.d.ts +14 -3
- package/dist/types/main.d.ts +1 -1
- package/dist/types/runtime-mcp/loader.d.ts +2 -0
- package/dist/types/runtime-mcp/manager.d.ts +13 -6
- package/dist/types/sdk/broker/broker.d.ts +4 -2
- package/dist/types/sdk/broker/ensure.d.ts +3 -0
- package/dist/types/sdk/broker/identity.d.ts +2 -0
- package/dist/types/sdk/broker/lifecycle-ledger.d.ts +11 -3
- package/dist/types/sdk/broker/managed-task-dag.d.ts +1335 -0
- package/dist/types/sdk/broker/managed-task-verification.d.ts +37 -0
- package/dist/types/sdk/broker/spawn-authority.d.ts +8 -0
- package/dist/types/sdk/broker/startup-failure.d.ts +4 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +5 -1
- package/dist/types/sdk/prompt-deadline-flush.d.ts +2 -0
- package/dist/types/sdk/session.d.ts +3 -3
- package/dist/types/session/agent-session.d.ts +7 -2
- package/dist/types/task/types.d.ts +2 -0
- package/dist/types/tools/bash-interactive.d.ts +1 -0
- package/dist/types/tools/fetch.d.ts +10 -1
- package/dist/types/tools/subagent.d.ts +8 -1
- package/package.json +7 -7
- package/src/cli/public-command-registry.ts +8 -2
- package/src/cli/setup-cli.ts +1 -0
- package/src/cli/stats-cli.ts +11 -1
- package/src/config/autorouting-tier-map.ts +529 -3
- package/src/config/file-lock.ts +59 -14
- package/src/config/model-discovery-manager.ts +4 -4
- package/src/config/model-profile-activation.ts +83 -23
- package/src/config/model-registry.ts +72 -12
- package/src/config/model-resolver.ts +6 -1
- package/src/coordinator-mcp/question-state.ts +4 -1
- package/src/coordinator-mcp/server.ts +14 -6
- package/src/exec/bash-executor.ts +3 -0
- package/src/extensibility/gjc-plugins/runtime-adapters.ts +46 -8
- package/src/gjc-runtime/state-writer.ts +317 -6
- package/src/harness-control-plane/control-endpoint.ts +24 -6
- package/src/harness-control-plane/finalize.ts +312 -25
- package/src/harness-control-plane/owner.ts +323 -89
- package/src/internal-urls/docs-index.generated.ts +6 -4
- package/src/main.ts +69 -19
- package/src/modes/acp/acp-agent.ts +581 -37
- package/src/modes/components/gjc-bundle-settings.ts +21 -1
- package/src/modes/components/tool-status-header.ts +72 -6
- package/src/modes/controllers/runtime-mcp-command-controller.ts +1 -1
- package/src/runtime-mcp/loader.ts +6 -3
- package/src/runtime-mcp/manager.ts +177 -75
- package/src/sdk/broker/broker.ts +1058 -150
- package/src/sdk/broker/ensure.ts +65 -8
- package/src/sdk/broker/identity.ts +13 -0
- package/src/sdk/broker/lifecycle-ledger.ts +16 -4
- package/src/sdk/broker/managed-task-dag.ts +1927 -0
- package/src/sdk/broker/managed-task-verification.ts +642 -0
- package/src/sdk/broker/spawn-authority.ts +140 -7
- package/src/sdk/broker/startup-failure.ts +80 -1
- package/src/sdk/broker/transport.ts +1 -0
- package/src/sdk/bus/chat-daemon-control.ts +2 -2
- package/src/sdk/bus/index.ts +22 -6
- package/src/sdk/bus/telegram-daemon-contract.ts +5 -1
- package/src/sdk/cli/session-cli.ts +18 -0
- package/src/sdk/host/session-runtime.test.ts +46 -0
- package/src/sdk/host/session-runtime.ts +13 -6
- package/src/sdk/lifecycle/service.ts +2 -0
- package/src/sdk/prompt-deadline-flush.ts +26 -4
- package/src/sdk/session.ts +587 -115
- package/src/session/agent-session.ts +60 -14
- package/src/session/internal/managed-session-scope.ts +10 -0
- package/src/session/internal/managed-session-storage.ts +30 -1
- package/src/setup/provider-presets.json +2 -1
- package/src/slash-commands/builtin-registry.ts +1 -1
- package/src/task/executor.ts +46 -17
- package/src/task/types.ts +2 -0
- package/src/tools/bash-interactive.ts +2 -0
- package/src/tools/bash.ts +20 -0
- package/src/tools/fetch.ts +21 -5
- package/src/tools/subagent-render.ts +24 -1
- package/src/tools/subagent.ts +27 -1
- package/src/utils/mupdf.ts +11 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,88 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.17.6] - 2026-09-24
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Keep a sealed run's exact resource leases live after a bounded abort wait returns `resources_pending`, so a later tracked tool settlement can clear the ledger instead of leaving a stale quarantine tombstone. `AgentSession.abortPromptAndWait` can re-read the retained proof after the cancellation domain is released, while unknown handles remain `unknown_run`. Continue to report pending work until its tracked promise settles; terminal events and abort acknowledgements do not prove physical settlement (#5401).
|
|
10
|
+
|
|
11
|
+
- Let fresh coordinator-MCP `session.create` requests proceed past unrelated completed metadata-free legacy rows while preserving live and uncertain fences. Exact target-derived terminal legacy create retries can still migrate/replay before the key is reused for another target. Old target-bound rows do not retain a recoverable caller key, so a same-key request for a different target may be admitted as fresh; after that request adopts the key, later target changes conflict with the new indexed row. Key-only legacy create conflicts and non-create target-key conflicts remain protected.
|
|
12
|
+
- Scrub TUI/session identity and lifecycle markers from detached broker startup while preserving supported session budget/memory settings, explicit tmux session names, and user tmux configuration.
|
|
13
|
+
|
|
14
|
+
## [0.17.5] - 2026-09-24
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- Added opt-in native managed task DAGs through authenticated Broker `task.dag` operations, with private durable domain state, resource reservations, native launch and seed fencing, recovery, shared-runner verification, and byte-bound predecessor invalidation. This coordinates enrolled managed tasks only, not arbitrary external processes.
|
|
19
|
+
|
|
20
|
+
- Show per-agent role input/output usage and cost in `gjc stats --summary`.
|
|
21
|
+
|
|
22
|
+
- `gjc setup provider --preset ionet` (aliases: `io-net`, `io-intelligence`): OpenAI-compatible custom provider for IO Intelligence by io.net (`IONET_API_KEY`, live `/models` discovery, `org/name` model ids, `max_tokens` output-limit field).
|
|
23
|
+
|
|
24
|
+
- `anthropic/claude-opus-5-5` is curated as the rank-1 `strong` autorouting tier at `high` effort, demoting `anthropic/claude-opus-5` to rank 2 and `anthropic/claude-opus-4-8` to rank 3; Anthropic reports Opus 5.5 at Fable 5.1-level quality for ~40% less compute per task, so it dominates the model it displaces on both axes. The remaining 341 new catalog keys from the same regeneration are recorded in `TIER_MAP_SKIP_LIST` as uncurated, keeping the tier-map gate authoritative rather than widening it.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Recover uncertain ACP `turn.abort` dispatches with bounded exact-kind/correlation `turn.result` reads without replaying mutations. Report `terminal_ok`/`end_turn` results with a missing receipt as `prompt_failed` while prompt settlement is pending; a later owner-only lookup does not turn an already reported `terminal_uncertain` prompt into success. Keep unresolved ownership fenced across transport reattachment and overlapping acknowledged cancels until exact terminal proof or session retirement, without asserting that pending tool resources physically settled (#5401).
|
|
29
|
+
|
|
30
|
+
- Reclaim interrupted managed enrollment per control root, preserving other roots and their native identities during restart recovery.
|
|
31
|
+
|
|
32
|
+
- Hardened enrollment recovery, cross-root idempotency, cancellation, and verification so interrupted or uncertain managed task lifetimes remain fail-closed.
|
|
33
|
+
- Bound owner validation subprocesses to owner shutdown and rejected private durable publication beneath unsafe roots.
|
|
34
|
+
- Serialized owner submission, recovery, observation, and finalization against retirement so lifecycle writes and receipts cannot outlive owner authority.
|
|
35
|
+
|
|
36
|
+
- Coordinator compaction now ages answered question receipts from a coordinator-local persistence timestamp instead of the remote-supplied `resolved_at`, so a stale or hostile remote value can no longer retire a freshly completed answer receipt. The remote value is still preserved in the safe receipt and API response metadata (#5701).
|
|
37
|
+
|
|
38
|
+
- Keep MCP tools that become plugin-mandatory during cwd rescope or owned-manager replacement out of persisted user selection, while preserving unrelated selected tools.
|
|
39
|
+
|
|
40
|
+
- Disconnect expired MCP startup connections without losing cached tools, the config and source metadata needed to reconnect them, their manager catalog during asynchronous cleanup, or the session-owned manager required to reconnect them; keep remote error response text out of persisted startup failure logs, including failures reported after startup returns; back session-owned conventional autoload managers, including managers rebuilt after cwd rescope, with their profile-specific persistent tool cache restricted to non-shadowed conventional servers; keep a mixed plugin/conventional manager frozen against config reloads while published cached conventional tools retain reconnect access, and refresh conventional cache/publication scope on rediscovery; publish plugin MCP tools that complete after cached fallback startup as always-on tools, rebuilding discovery entries when plugin tool snapshots change; seal fully connected ordinary tools synchronously.
|
|
41
|
+
|
|
42
|
+
- Failed authenticated plugin MCP launches now report a session-visible startup diagnostic with the reason, and unavailable plugin tools are excluded from the active tool inventory (#5794).
|
|
43
|
+
|
|
44
|
+
- Dead-owner SDK session lock acquisition failures now identify guarded-removal refusals and provide a platform-specific manual cleanup command when the same dead owner still holds the lock at exhaustion; broker startup also preserves its bounded discovery recovery when that startup lock disappears before the failure marker is examined (#5827).
|
|
45
|
+
|
|
46
|
+
- Prompt-deadline autosaves no longer stage volatile state under the active SDK broker's `sdk` directory (#5840).
|
|
47
|
+
|
|
48
|
+
- PDF conversion diagnostics are sanitized in linear time. The path-redaction rule in `sanitizeMuPdfDiagnostic` restarted its prefix run at every offset of a long separator-free message before failing to find a `/`, `\`, `%2f`, or `%5c`, which is quadratic in the message length: 12.5k/25k/50k/100k characters cost 207ms/832ms/3.3s/13.3s. A MuPDF diagnostic is derived from the document being converted, and `normalizeError` applies this once per link in the error's cause chain, so a malformed PDF read through the `read` tool could stall the conversion. The prefix run is now boundary anchored; redaction output is unchanged.
|
|
49
|
+
|
|
50
|
+
- Interactive startup now opens the TUI with repair guidance when the persisted default model profile has been removed; explicit unknown profiles and noninteractive startup remain strict (#5845).
|
|
51
|
+
|
|
52
|
+
- Failed default model-profile activation now restores the prior live model even when its credentials have since become unavailable, and reports redacted failure stages when rollback remains incomplete (#5846).
|
|
53
|
+
|
|
54
|
+
- Keep running canonical sub-sessions synchronized with their inherited MCP manager's tool catalog, including additions, renames, and removals, without transferring manager ownership or plugin mandatory authority.
|
|
55
|
+
|
|
56
|
+
- Restore the session-family `--agent-dir` position and accept `--repo` on exact-session CLI commands; successful calls warn that `--repo` is ignored, while failed `--json` calls preserve the empty-stderr error contract (#5862).
|
|
57
|
+
|
|
58
|
+
- Restored fail-soft startup for plugin MCP connection failures when owned-manager cleanup also fails, with sanitized diagnostics and a single cleanup attempt (#5864).
|
|
59
|
+
|
|
60
|
+
- The status-line usage segment now reflects the active OpenAI Codex OAuth credential instead of whichever account report arrives first (#5871).
|
|
61
|
+
|
|
62
|
+
- Preserve inherited MCP startup snapshots while wiring live catalog updates, and keep successfully connected tools plus current GJC runtime evidence when plugin cleanup fails.
|
|
63
|
+
|
|
64
|
+
- Keep dispatched SDK lifecycle requests uncertain when their response times out, so callers do not treat an unknown outcome as terminal (#5885).
|
|
65
|
+
|
|
66
|
+
- Coordinator `gjc_coordinator_start_session` now binds recovered creation intents using the same timestamp-insensitive semantic digest as its WAL, so retries after interrupted creation succeed without weakening conflicts for changed launch inputs (#5899).
|
|
67
|
+
|
|
68
|
+
- Bash-tool children no longer inherit coordinator-only session and sidecar environment markers; explicit tool env overrides and each child’s `GJC_SESSION_ID` remain intact (#5802).
|
|
69
|
+
|
|
70
|
+
- Resolve cached dynamic LiteLLM models consistently for repeated delegated-agent launches, including recovery from stale parent registries.
|
|
71
|
+
|
|
72
|
+
- The SDK broker starts again on macOS and Windows. Managed task DAG enrollment recovery took its Linux-only private durable lock even when no enrollment index existed, so every non-Linux broker failed startup with "Broker cannot establish complete managed enrollment membership." An absent index now reads as empty off Linux; a present index still fails closed.
|
|
73
|
+
|
|
74
|
+
- `/model` opens about twice as fast on large catalogs: profile-activation availability now resolves each provider's discovery-evidence freshness (which scans the catalog for the provider base URL) once per provider instead of once per model, which made each open quadratic in catalog size (4,822 models: 2.0–2.5s → about 1.0s per open).
|
|
75
|
+
- `/resume` no longer SHA-256-hashes every (legacy, v2) transcript pair while deciding which legacy sessions are already migrated; a receipt is rejected on its recorded source/destination paths and source digest before any transcript is read (589 sessions: 10.4–12.3s → 6.2–7.2s per open).
|
|
76
|
+
|
|
77
|
+
- SDK-owned fresh sessions now await configured startup-model provider discovery before model admission, matching CLI startup behavior so discoverable defaults work without an explicit model selector (#5843).
|
|
78
|
+
|
|
79
|
+
- `gjc sdk serve --stdio` now relays supported mid-turn session events without claiming optional capabilities the downstream client did not negotiate. Observer delivery is limited to connections that explicitly negotiated both turn streaming and session-host observation.
|
|
80
|
+
|
|
81
|
+
- The `subagent` await panel again shows each running child's tool count, current context usage, and a live "last activity" age, which were dropped when the await progress payload was narrowed.
|
|
82
|
+
|
|
83
|
+
### Improved
|
|
84
|
+
|
|
85
|
+
- Reduced fetch-tool startup work by loading site-specific scraper handlers only when a non-raw fetch dispatches special URL handling. The startup-import probe now verifies dispatch still works and allows a cold Bun child import up to 30 seconds under CI shard contention.
|
|
86
|
+
|
|
5
87
|
## [0.17.4] - 2026-09-23
|
|
6
88
|
|
|
7
89
|
### Changed
|