Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
144c7c7
vendor: rebrand upstream 0.37.1 (c11da4fbd)
elkaix Aug 19, 2026
bd8349b
feat(sync): checkpoint 2026-08 reconciliation and branded CLI/TUI ref…
elkaix Aug 20, 2026
0b40bdf
chore: merge rebranded upstream 144c7c7d8 (kimi-code @ c11da4fbd, 0.3…
elkaix Aug 20, 2026
e8c67fe
feat(app)!: remove legacy session migration machinery
elkaix Aug 20, 2026
ec4dbda
refactor(agent-core-v2)!: retire legacy-named session and auth modules
elkaix Aug 20, 2026
f294dbd
refactor(gateway): rename the server package
elkaix Aug 20, 2026
89ad656
feat(workflow): complete session interfaces
elkaix Aug 20, 2026
141e198
chore(repo): align release safeguards
elkaix Aug 20, 2026
501c877
fix: restore upstream TUI and ACP parity regressions
elkaix Aug 20, 2026
e04d774
refactor(plugins): remove Kimi marketplace default, trusted hostnames…
elkaix Aug 20, 2026
d1e2cab
refactor(app): repoint telemetry to Pythinker and remove Kimi update/…
elkaix Aug 20, 2026
a4531a5
chore(docs): sweep Kimi doc links and extend check-managed with an id…
elkaix Aug 20, 2026
565ce2b
chore: add changeset and fix unused parameter after update-check removal
elkaix Aug 20, 2026
6b3e9bb
test: align native-stage and gateway marketplace tests with disabled …
elkaix Aug 20, 2026
e858dd4
test: narrow fetch call URLs explicitly in gateway marketplace test
elkaix Aug 20, 2026
d2d7a13
fix(vscode): repair host-SDK regressions and restore real SDK types
elkaix Aug 20, 2026
9948a83
feat(web): port reference design tokens, dock primitives, and i18n keys
elkaix Aug 20, 2026
8bcedee
feat(web): port reference chat dock — workbar pills and dock panels
elkaix Aug 20, 2026
8084cdb
feat(web): port reference composer internals and status panel
elkaix Aug 20, 2026
e11b447
fix(web): split workflow enable confirm into title and message
elkaix Aug 20, 2026
bd27fc2
fix(web): dedupe dynamicWorkflowIndex after rebase merge
elkaix Aug 20, 2026
152e8ad
feat(web): make the composer workflow chip agent-driven
elkaix Aug 20, 2026
35da551
docs(web): changeset and agent-guide notes for the composer port
elkaix Aug 20, 2026
9959b19
vendor: rebrand upstream 0.37.2 (ca87c58e6)
elkaix Aug 20, 2026
7bb024c
Merge branch 'vendor/upstream' into sync/upstream-0.37.2
elkaix Aug 20, 2026
c5a106c
test(mcp): wait for confirmed stdio close
elkaix Aug 19, 2026
117f1f8
chore(sync): reconcile manifests, test snapshots, and changeset after…
elkaix Aug 20, 2026
ce837a8
fix(web): resolve lint errors in composer and conversation pane
elkaix Aug 20, 2026
6aa4e42
refactor: rename kaos OS-abstraction package to pyaos
elkaix Aug 20, 2026
bb2e82e
feat(web): parity wave 1 — Schibsted Grotesk font, mention pills, sma…
elkaix Aug 20, 2026
7467077
feat(web): parity wave 2a — per-tool call renderers
elkaix Aug 20, 2026
1bb6d01
feat(web): parity wave 2b — turn chrome
elkaix Aug 20, 2026
679305e
feat(web): parity wave 2c — transcript search and media lightbox
elkaix Aug 20, 2026
d7e23e1
refactor(web): rename kw-icon class family to ui-icon
elkaix Aug 20, 2026
e1766e8
feat(web): parity wave 3 — sidebar and session management
elkaix Aug 20, 2026
6de7748
feat(web): parity wave 4a — settings providers tab and about section
elkaix Aug 20, 2026
39878d7
feat(web): parity wave 4b — session admin view, terminal tabs, list p…
elkaix Aug 20, 2026
0544bf4
docs(web): changesets for the parity waves
elkaix Aug 20, 2026
b19df43
docs(web): note the in-repo vendor bundle path for design parity work
elkaix Aug 20, 2026
f7d8ed2
fix(web): drop the last blue-tinted dark values for neutral grey
elkaix Aug 20, 2026
2096257
fix(web): drop the dev backend pill and version-prefixed backend label
elkaix Aug 20, 2026
6caeab4
feat(core-v2): add execEnv shellPathBridge for git-bash path resolution
elkaix Aug 21, 2026
327d089
feat(core-v2): add generic keyedResource lease-pool primitive
elkaix Aug 21, 2026
7eb49d8
feat(core-v2): emit Workspace Created/Updated/Deleted events
elkaix Aug 21, 2026
8b804de
feat(core-v2): add AgentModel/AgentEffect framework and AgentContext …
elkaix Aug 21, 2026
2183963
feat(core-v2): move token counting onto a session-scoped feature
elkaix Aug 21, 2026
6735541
feat(core-v2): move usage onto a session-scoped feature with cache probe
elkaix Aug 21, 2026
0e5f349
refactor(core-v2): move goal domain onto the Feature seam
elkaix Aug 21, 2026
d4695b7
feat(core-v2): add todo feature over the agent-model seam
elkaix Aug 21, 2026
7616dcc
feat(core-v2): add forked conversation context to subagent runs
elkaix Aug 21, 2026
f7ff724
feat(core-v2): wire fork parameter through the agent tools
elkaix Aug 21, 2026
2a8d34a
refactor(core-v2): rewire engine consumers to session-scoped services
elkaix Aug 21, 2026
e4ca224
test(core-v2): update tests for session-scoped feature rewire
elkaix Aug 21, 2026
423f112
feat(pyaos): add git-bash shell path bridge
elkaix Aug 21, 2026
4387026
feat(oauth): add pythinker region resolution
elkaix Aug 21, 2026
fc8dee3
fix(agent-core): route git-bash paths through the shell path bridge
elkaix Aug 21, 2026
0589695
fix(agent-core): drain background-task output writes before session c…
elkaix Aug 21, 2026
e5dab43
fix(agent-core): await proactive MCP OAuth refreshes during shutdown
elkaix Aug 21, 2026
935747c
fix(agent-core): stop compaction shrinking budget on safety-filtered …
elkaix Aug 21, 2026
3e9b18e
feat(klient): forward login region option through the wire contract
elkaix Aug 21, 2026
e58e2ef
refactor(klient): repoint facades at session-scoped v2 services
elkaix Aug 21, 2026
d7a6896
feat(sdk): add login region option and track v2 engine rewiring
elkaix Aug 21, 2026
c30436b
fix(kosong): fail fast on safety-filtered empty responses
elkaix Aug 21, 2026
6b1b95d
fix(minidb): guard lock-retirement close with the writer-op lease
elkaix Aug 21, 2026
21ab355
feat(protocol): add config.persist_blocked error code
elkaix Aug 21, 2026
0c4e45a
fix(transcript): factor taskId into origin equality checks
elkaix Aug 21, 2026
9efc83c
fix(acp): drain append-log retirements and log closes on shutdown
elkaix Aug 21, 2026
f714945
feat(telemetry): support region-aware flush endpoint
elkaix Aug 21, 2026
7cd1ad7
feat(pi-tui): add jump-to-bottom control for scrolled viewports
elkaix Aug 21, 2026
cfb4fee
refactor(gateway): repoint transcript/status at session-scoped v2 ser…
elkaix Aug 21, 2026
2d38fe3
feat(gateway): broadcast session-archived and workspace lifecycle events
elkaix Aug 21, 2026
3a7d6bf
test(gateway): cover workspace grouping, lifecycle broadcasts, rewire
elkaix Aug 21, 2026
7e620eb
feat(web): stream transcripts and provider management over the daemon…
elkaix Aug 21, 2026
b9e81d7
feat(web): redesign transcript — per-tool cards, folds, search, media
elkaix Aug 21, 2026
7df1cee
feat(web): composer running-work pills, model picker and tool meta
elkaix Aug 21, 2026
bce60f2
feat(web): session management — pins, admin table, grouped sidebar
elkaix Aug 21, 2026
05afdb2
feat(web): settings — add-provider flow and per-provider model list
elkaix Aug 21, 2026
cdf7418
feat(web): restyle background-task notifications as light notices
elkaix Aug 21, 2026
1cf220c
feat(web): improve mobile shell UI styling
elkaix Aug 21, 2026
65a496d
feat(web): shared app shell, theme tokens and design-system view
elkaix Aug 21, 2026
f465b48
test(web): cover transcript, sessions, settings, daemon and helpers
elkaix Aug 21, 2026
b9b8231
feat(cli): region-aware login and derived endpoint resolution
elkaix Aug 21, 2026
b2e485e
fix(cli): partition client-config cache and base URL by region
elkaix Aug 21, 2026
eafcdf9
feat(tui): drive login and prompts through the shared SDK login runner
elkaix Aug 21, 2026
0b2dabf
feat(tui): unified shell-run cards, replay parity and print flushing
elkaix Aug 21, 2026
81aeb18
test(cli): cover region, login provider selection, shell-run and replay
elkaix Aug 21, 2026
c60a884
feat(inspect): workspace→session tree over grouped v2 listing
elkaix Aug 21, 2026
aa35295
test(vscode): adapt harness integration to v2 session rewiring
elkaix Aug 21, 2026
2883c32
feat(plugin): add Tencent CloudBase to the curated marketplace
elkaix Aug 21, 2026
1436478
feat(plugin): expand pythinker-datasource stocks/news/macro coverage
elkaix Aug 21, 2026
9913b04
chore: pin Node.js 24.x (24.15 – <25) across the workspace
elkaix Aug 21, 2026
8968c0f
chore(flake): pin nixpkgs nodejs_24 with <25 ceiling
elkaix Aug 21, 2026
5fd6a41
chore: bump package manifests for the port
elkaix Aug 21, 2026
299b357
chore(apps): version notes and disabled TUI full-screen in tests
elkaix Aug 21, 2026
96ec52a
docs: sync config, env-vars, keyboard and server-api guides
elkaix Aug 21, 2026
6fe85c8
feat(cli): refresh the bundled web UI and welcome asset
elkaix Aug 21, 2026
593ea12
style(web): apply oxlint auto-fixes to chat pane and helpers
elkaix Aug 21, 2026
cec3253
chore(core-v2): regenerate wire/state manifests for the feature seam
elkaix Aug 21, 2026
42d3cff
chore(changeset): refresh the port's pending changeset set
elkaix Aug 21, 2026
fa6c1a3
feat(cli): refresh the bundled web UI with the newest build
elkaix Aug 21, 2026
cfa4cf7
feat(web): uncommitted ProviderSetupForm component and its tests
elkaix Aug 21, 2026
192ae33
fix(web): keep completed subagents terminal on stale progress and reu…
elkaix Aug 21, 2026
e8a51e0
fix(web): restore ProviderSetupForm after AppProviderSetup removal
elkaix Aug 21, 2026
a7be162
chore(web): rebuild committed dist-web bundle
elkaix Aug 21, 2026
b78ad1b
fix(gateway): coalesce instance registry heartbeat writes
elkaix Aug 21, 2026
50e05e6
fix(gateway): deliver subagent lifecycle events outside transcript pr…
elkaix Aug 21, 2026
ba3dc4b
fix(agent-core-v2): emit rejected tool results with the declared reas…
elkaix Aug 21, 2026
2e112d7
test(agent-core): cover gateImageFormatParts
elkaix Aug 21, 2026
42a2c17
fix(brand): regenerate all pythinker icons from the unclipped vector …
elkaix Aug 21, 2026
0725a76
feat(web): rework thinking block to kimi-style inline collapsible wit…
elkaix Aug 21, 2026
cfe52c8
feat(web): expose manual dynamic-workflow toggle on composer and mobi…
elkaix Aug 21, 2026
be0e4b8
feat(web): swap the manual-permission glyph to the brand fingerprint …
elkaix Aug 21, 2026
7e3955e
feat(web): add mono accent option and mascot working indicator
elkaix Aug 21, 2026
5bcd10d
fix(brand): ship generated pythinker icons and manifest in the dist-w…
elkaix Aug 21, 2026
6c442a0
chore(web): rebuild committed dist-web bundle
elkaix Aug 21, 2026
f88672a
chore(web): drop the retired thinking variant from the legacy DetailT…
elkaix Aug 21, 2026
0f10648
fix(oauth): refresh models.dev-sourced providers on the scheduled mod…
elkaix Aug 22, 2026
be4b705
fix(web): report task background flag so foreground subagents never d…
elkaix Aug 22, 2026
46166a8
feat(fs): add session fs:write with etag-based optimistic concurrency
elkaix Aug 22, 2026
0c7c900
feat(web): workspace file editor with Monaco in the detail layer
elkaix Aug 22, 2026
b753e26
fix(agent-core-v2): abort stalled LLM streams after an idle timeout
elkaix Aug 22, 2026
634eaca
feat(web): resolve file-type icons through Material Icon Theme
elkaix Aug 22, 2026
af35dbb
feat(web): add self-animated brand icons, thinking bulb, and shimmer
elkaix Aug 22, 2026
089fd62
fix(web): draw composer interrupt as a solid stop square
elkaix Aug 22, 2026
559915a
feat(web): redesign providers panel as master-detail and restyle onbo…
elkaix Aug 22, 2026
70dbf5d
fix(web): follow daemon default permission mode and model in live state
elkaix Aug 22, 2026
3f29b22
chore(changeset): describe the subagent card stuck-running fix
elkaix Aug 22, 2026
37dbffc
chore(web): rebuild committed dist-web bundle
elkaix Aug 22, 2026
c76c8be
chore(cli): bump version to 0.22.0
elkaix Aug 22, 2026
36e42f2
fix(web): dock /tasks-listed subagents like the reference client
elkaix Aug 22, 2026
ff99359
chore(web): rebuild committed dist-web bundle
elkaix Aug 22, 2026
51835ab
chore(oauth): align SHARED_DEFAULT_BASE_URLS type with its Set value
elkaix Aug 22, 2026
e5245b5
feat(tui): replace the /dance easter egg with /hatch
elkaix Aug 22, 2026
6d2ed52
feat(tui): cycle model thinking effort on Shift-Tab instead of plan t…
elkaix Aug 22, 2026
6023889
feat(tui): show decode tokens/s next to context in the status footer
elkaix Aug 22, 2026
0048151
feat(web): settle thinking parts with startedAt/durationMs and render…
elkaix Aug 22, 2026
2c67630
fix(web): failed-turn Continue submits a fixed prompt, not the last u…
elkaix Aug 22, 2026
93490db
feat(web): emphasize running tool rows and dim settled titles
elkaix Aug 22, 2026
92cb0e1
chore(web): refresh the bundled web UI with continue-prompt fix
elkaix Aug 22, 2026
8763465
feat(web): resolve subagent model and effort labels through providers
elkaix Aug 22, 2026
7a601df
feat(web): port copy menu teleport and keyboard focus behavior
elkaix Aug 22, 2026
79e3ab0
docs: finish the agent-gateway rename across guides and comments
elkaix Aug 22, 2026
e989ea0
Merge remote-tracking branch 'origin/main' into fix/modelsdev-provide…
elkaix Aug 22, 2026
688d877
chore(web): rebuild the bundled web UI after the main merge
elkaix Aug 22, 2026
e5eb913
chore: exclude generated web-bundle tables from the typo checker and …
elkaix Aug 22, 2026
d4c312f
feat(web): frosted-glass sidebar theme for light and dark modes
elkaix Aug 22, 2026
b9642d9
fix(desktop): launch the Host with pythinker web from dist/main.mjs
elkaix Aug 22, 2026
0f595ca
fix(web): float the sidebar toggle only while collapsed and center fi…
elkaix Aug 22, 2026
f7ed27f
fix(web): drop permission and thinking slash commands, label the sess…
elkaix Aug 22, 2026
0a721d4
fix(web): remove archived sessions from the sidebar when another clie…
elkaix Aug 22, 2026
b624a2c
fix(tui): keep a cron turn's answer out of the previous turn's fold
elkaix Aug 22, 2026
49ab6f1
fix(plugins): restore the real CloudBase release asset filename
elkaix Aug 22, 2026
33b37bd
docs: drop a stale package rename note and ignore desktop dev logs
elkaix Aug 22, 2026
1385b49
fix(vscode): keep the selected model across a provider refresh
elkaix Aug 22, 2026
45f3ea1
chore: move the security overrides into pnpm-workspace.yaml
elkaix Aug 22, 2026
544915f
feat(tui): document and schema-check the effort heat-ladder theme colors
elkaix Aug 22, 2026
70c9602
fix(web): show the onboarding logo unboxed
elkaix Aug 22, 2026
9d7d936
docs(agent-core-v2): drop three superseded design documents
elkaix Aug 22, 2026
313db21
chore: replace non-English examples and punctuation classes with Engl…
elkaix Aug 22, 2026
cec4c7b
chore(web): rebuild the committed web bundle
elkaix Aug 22, 2026
7493bd2
Merge branch 'feat/web-editor-fs-write' into fix/modelsdev-provider-r…
elkaix Aug 22, 2026
2b6e76e
chore(web): rebuild the committed web bundle with the workspace editor
elkaix Aug 22, 2026
b7eeafe
test(tree-sitter-bash): correct the non-ASCII identifier fixture offsets
elkaix Aug 22, 2026
afd6a9b
fix(vscode): stop walling API-key providers behind the sign-in screen
elkaix Aug 22, 2026
d785420
chore(nix): refresh the pnpm deps hash after the overrides move
elkaix Aug 22, 2026
abc820a
docs: make the documentation English-only
elkaix Aug 22, 2026
7db4f89
chore(scripts): exempt generated changelogs from the legacy-name guard
elkaix Aug 22, 2026
af0dd86
docs: document the fs:write endpoint and stop tracking the nix build …
elkaix Aug 22, 2026
bf530e8
test(agent-core-v2): pass the full request shape to fs read and write
elkaix Aug 22, 2026
df16920
docs: drop the Chinese line from the pull request template
elkaix Aug 22, 2026
f0ffce3
feat(vscode): add an opt-in seeded config profile for the dev extensi…
elkaix Aug 22, 2026
1b65ae0
fix(provider): stop sending parameters the Codex gateway rejects
elkaix Aug 22, 2026
a9db045
fix(web): make the workspace file editor usable
elkaix Aug 22, 2026
0ead28f
fix(web): stop a settled thinking step animating in the activity header
elkaix Aug 22, 2026
305ce07
fix(gateway): raise the body limit on the filesystem route
elkaix Aug 22, 2026
6734992
fix(desktop): keep the Host bearer token out of captured output
elkaix Aug 22, 2026
e623f1b
fix(vscode): apply only the newest provider refresh
elkaix Aug 22, 2026
6dab970
refactor(tui): move the transcript boundary predicates out of the class
elkaix Aug 22, 2026
c2c0a0a
docs(skills): point the doc skills at the paths that exist
elkaix Aug 22, 2026
c3f0f5f
build: fail when the committed web bundle is stale
elkaix Aug 22, 2026
6a2f129
chore(web): rebuild the committed web bundle
elkaix Aug 22, 2026
cf8e3c0
fix(desktop): redact the bearer token from readiness parse errors
elkaix Aug 22, 2026
6b51f3c
fix(gateway): size the filesystem body limit for JSON-escaped content
elkaix Aug 22, 2026
426048c
fix(build): fingerprint workspace dependencies and the lockfile
elkaix Aug 22, 2026
4b8cab7
fix(vscode): give the seeded dev profile its own tree
elkaix Aug 22, 2026
569f4c4
chore(web): rebuild the committed web bundle
elkaix Aug 22, 2026
7b8f117
test(tree-sitter-bash): pin the budgets on the 500KB parse cases
elkaix Aug 22, 2026
b71815c
docs(gateway): clarify which side of the body limit is rejected
elkaix Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .agents/skills/agent-core-dev/SKILL.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,7 +29,7 @@ End-to-end procedures that span the stages. Reach for these before reading the s

- [Align (port `agent-core` → `agent-core-v2`)](align.md): split a v1 class into semantic units, fix each unit's domain / scope / Service / dependencies, then migrate the logic and tests. Use when the task is "move feature X from v1 to v2" or "port `IXxxService` to v2".
- [Commit align (triage a `main` commit against v2)](commit-align.md): given one `main` commit hash + a short note, find the v1 logic it changed, check whether v2 already has the corresponding implementation, bucket it (aligned / partial / missing / not-applicable), and recommend a minimal fix. Use in the `pythinker-code-v2`-catching-up-to-`main` phase, for one commit at a time; escalate to [align.md](align.md) if the gap is a whole domain.
- [Server align (expose `agent-core-v2` over `server-v2`)](server-align.md): wire a v2 domain into `packages/kap-server` over `/api/v2` (native) and `/api/v1` (v1-compatible mirror), keep the wire schema byte-compatible with the established v1 contract by sharing the `@pymodel/protocol` schema, and isolate v1-only behavior in a `<domain>Legacy` edge adapter instead of distorting the native v2 Service. Use when the task is "expose the new v2 Service on the server", "add a route to the `/api/v1` surface", or "keep server-v2 wire-compatible with released v1 clients".
- [Server align (expose `agent-core-v2` over `server-v2`)](server-align.md): wire a v2 domain into `packages/agent-gateway` over `/api/v2` (native) and `/api/v1` (v1-compatible mirror), keep the wire schema byte-compatible with the established v1 contract by sharing the `@pymodel/protocol` schema, and isolate v1-only behavior in a `<domain>Legacy` edge adapter instead of distorting the native v2 Service. Use when the task is "expose the new v2 Service on the server", "add a route to the `/api/v1` surface", or "keep server-v2 wire-compatible with released v1 clients".

## Stages

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/agent-core-dev/config.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -270,7 +270,7 @@ registerSection(MY_SECTION, MySectionSchema, {
});
```

- A deprecated TOML key is **ignored** (its value no longer applies — the schema only knows the new key) and reports a warning `ConfigDiagnostic` while present; the file is never rewritten, so the warning is the migration guide. Diagnostics are recomputed on every load/reload and surface to clients via `IConfigService.diagnostics()` and `onDidChangeDiagnostics` (kap-server republishes them as the global `event.config.warning` WS event).
- A deprecated TOML key is **ignored** (its value no longer applies — the schema only knows the new key) and reports a warning `ConfigDiagnostic` while present; the file is never rewritten, so the warning is the migration guide. Diagnostics are recomputed on every load/reload and surface to clients via `IConfigService.diagnostics()` and `onDidChangeDiagnostics` (agent-gateway republishes them as the global `event.config.warning` WS event).
- A deprecated env var still **resolves** as a fallback (new var first), with the same warning treatment, and `stripEnvBoundFields` treats it as env-owned for writes.
- See `src/agent/loop/configSection.ts` for a worked example (`max_retries_per_step` → `max_attempts_per_step`).

Expand Down
11 changes: 9 additions & 2 deletions .agents/skills/agent-core-dev/edge-exposure.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,6 +2,13 @@

How a domain's Services become the wire surface (`/api/v2`) and WebSocket events. This is a **design-time** decision: which Services are exposed, under what public `resource:action` name, and which events stream.

> **Implementation note (2026-08):** the current `/api/v2` surface is hand-written route files
> under `packages/agent-gateway/src/routes/v2/`, mounted by `src/routes/registerApiV2Routes.ts`
> (see `packages/agent-gateway/AGENTS.md`). There is no generic `actionMap` dispatcher in
> agent-gateway today; the `resource:action` model and tables below are the original v2 edge
> design. The facade rules (§2, §4), the scope-resolution rule, and the WS-event rules (§5)
> still apply to route-file exposure.

The transport (`/api/v2` over HTTP + WS) lives in the **edge** layer (`gateway`/`rpc`/`transport`). It borrows business Services by interface; business code never imports it.

## 1. The edge model
Expand DownExpand Up@@ -45,7 +52,7 @@ A Service method is directly exposable iff **all** hold:
3. Errors are `PythinkerError` (coded).
4. It is a command/query, not a factory, stream, byte-store, or sink.

If any fail → add a wire-safe orchestration method to the owning domain Service (e.g. `IAgentPromptService.submit` settles `{turn_id}` instead of returning the live `PromptHandle`) or compose several domain Services at the edge — kap-server's `routes/prompts.ts` is the reference for edge-side composition.
If any fail → add a wire-safe orchestration method to the owning domain Service (e.g. `IAgentPromptService.submit` settles `{turn_id}` instead of returning the live `PromptHandle`) or compose several domain Services at the edge — agent-gateway's `routes/prompts.ts` is the reference for edge-side composition.

## 3. Per-scope `resource:action` map

Expand DownExpand Up@@ -160,7 +167,7 @@ The `eventMap` binds a public event name to the scope's `Event` source (analogou

Session-level `onDidChange` sources (metadata / interactions) carry no payload today, so they are not exposed until there is a concrete consumer.

Safety / reliability (carried over from `packages/server/src/ws/connection.ts` and VSCode's `ChannelServer`):
Safety / reliability (carried over from VSCode's `ChannelServer`, and the legacy v1 server those ideas were ported from):

- request ids + active-request table — `cancel` / `unlisten` disposes them;
- heartbeat — `ping` every 30s, `pong` timeout 10s → `terminate`;
Expand Down
Loading
Loading