Commit Graph
3368 Commits
Author SHA1 Message Date
Yichen Jiang 6f624c67c4 feat(web): render assistant Markdown 2026-07-23 19:18:05 +08:00
Turtle 44fd93fd06 feat(agent): unify send(target × wakeup), coalesce context/message into user/message
Replace send/steer/inject with one Agent.send primitive over the
(target × wakeup) matrix; followup/steer/inject become fixed-preset
alias methods on the now-abstract Agent class. Coalesce context/message
into user/message (injected context is a non-user source). Replace
agent/queued with agent/inbox/enqueue/dequeue/discard, add cancel
keepInbox, and add a FIFO-conservation invariant.
2026-07-23 19:15:45 +08:00
Tianyi Cui 3bd27df5a2 Merge remote-tracking branch 'origin/master' into worktree/web-session-titles 2026-07-23 19:06:03 +08:00
imccyu 34f0536cfe Merge branch 'worktree/web-carrier-chain' into worktree/web-ask-user-question 2026-07-23 18:56:20 +08:00
imccyu 2b06aa0102 Merge branch 'worktree/web-carrier-chain' into worktree/web-ask-user-question
Restack the ask-user domain layer onto the carrier-chain architecture
branch. Conflict policy: runtime and ui-conversation take the
carrier-chain side (master sessions shape, dual-kind PendingCard,
'internal' envelope shell tests); the 'cancelled' wire code and its
semantics tests stay in apiproxy + ui-question (domain layer); the
smoke fixture keeps the nine-bundle success pass with the resident
question round over the carrier-chain first-describe shape.
2026-07-23 18:50:30 +08:00
Tianyi Cui 7e27f1b00f Merge remote-tracking branch 'origin/master' into worktree/web-session-titles 2026-07-23 18:40:13 +08:00
Tianyi Cui d2dc618e3f Merge remote-tracking branch 'origin/master' into worktree/web-session-titles
# Conflicts:
#	.agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml
#	packages/client/ui-conversation/tests/apply-inject.spec.tsx
#	packages/client/ui-conversation/tests/chat-stats-bash-sample.spec.tsx
#	packages/client/ui-conversation/tests/gate-branch-tails.spec.tsx
#	packages/client/ui-conversation/tests/selection-survival.spec.ts
#	packages/client/ui-conversation/tests/skeleton-branches.spec.tsx
#	packages/client/ui-conversation/tests/skeleton.spec.tsx
#	packages/client/ui-layout/tests/service.spec.ts
#	packages/client/ui-sidebar/tests/apply.spec.tsx
#	packages/client/ui-sidebar/tests/store.spec.ts
#	packages/client/ui-trajectory/tests/views.spec.tsx
#	packages/client/web/src/app.tsx
#	packages/client/web/tests/boot.spec.tsx
#	packages/host/runtime/README.md
#	packages/host/runtime/tests/host-runtime.spec.ts
2026-07-23 18:39:48 +08:00
imccyu 39a60c0215 style(gui): shorten the ConversationSlotProps doc line for the lint gate 2026-07-23 18:33:33 +08:00
Tianyi Cui 0d87f7ee27 Merge remote-tracking branch 'origin/master' into worktree/ci-subminute-stability 2026-07-23 18:33:04 +08:00
_Kerman 7f5ba286fe fix: keep crash repair away from live sessions 2026-07-23 18:31:37 +08:00
imccyu 5c53af88b3 Merge branch 'master' into fix/web-zstd-session-logs 2026-07-23 18:29:44 +08:00
Tianyi Cui 7e81d9dad2 test: bind webserver fixtures atomically 2026-07-23 18:25:00 +08:00
Tianyi Cui f666c39379 fix(web): generate model-backed session titles 2026-07-23 18:20:17 +08:00
imccyu c18be97f17 refactor(gui): route the composer chain on PendingWait currency 2026-07-23 18:18:52 +08:00
Tianyi Cui 2c98610601 Merge branch 'master' into codex/code-mode-complete-result-card 2026-07-23 18:18:42 +08:00
imccyu 408cdf7436 refactor(gui): mint kind-agnostic PendingWait carriers for pending interactions 2026-07-23 18:11:21 +08:00
Yichen Jiang c37892f753 Merge branch 'master' into worktree/tui-file-autocomplete 2026-07-23 18:07:34 +08:00
imccyu 3826b50b4a feat(gui): chain slot kind with select routing and renderSlotChain 2026-07-23 18:03:44 +08:00
_Kerman 022b42a450 Merge origin/master into refactor/eager-session-persistence 2026-07-23 18:00:36 +08:00
Tianyi Cui fa5c3fa0b9 Merge origin/master into codex/code-mode-complete-result-card 2026-07-23 17:59:58 +08:00
_Kerman 406c82d1a7 refactor: eagerly persist session events 2026-07-23 17:57:26 +08:00
Yichen Jiang d633758a30 fix(tui): keep config schema statically walkable 2026-07-23 17:50:32 +08:00
imccyu bbde18caff refactor(gui): dissolve the tool ring into per-view keyed slots
Four rounds of structural rework on the conversation surface, converging
on one registration model for the whole client:

- Review fixes: open() leaves the inject factory (SessionsService owns
  the semantic); ConversationService mounts via ctx.plugin(); the
  bespoke view registry retires into the 'conversation.view' list slot.
- Ring alignment: createChatView factory retired (components get
  everything through checkable shares at the register call site); the
  hand-rolled t/i18n threading is deleted wholesale — a future
  framework-level i18n will supply t as a standard prop keyed by slot
  name, so no interim manual channel.
- Toolview dissolution: ToolViewRegistry / ToolViewResolver /
  ToolViewOutlet / ctx.toolviews retire. Tool rows are entries of the
  'conversation.chat.toolview' keyed slot (scope: session) declared by
  the chat entry; ToolRowOwnerProps is the unified owner payload;
  GenericToolCard becomes the call-site fallback; registrants are plain
  plugins (inject ['slots','conversation'] as the load-order seam);
  session-dimension dispatch moves into components (useSessions reads
  parentId); trajectory/waterfall gain same-shape slots the day they
  render tool rows (RendersCheck rejects empty declarations). Slot
  names mirror the composition path (<domain>.<entry>.<hole>).
- Staging follows current: cell()/binding() are pure resolution
  (render-safe); the constructor subscribes to the list store and
  followCurrent opens the event window when the current session
  changes — staging IS the open signal, business verbs are the timing,
  React render/commit is decoupled from window lifecycle. A masked
  current (projection gap) keeps the stage untouched so deferred
  teardown semantics survive reconnects.

Agent Note: .agents/notes/implemented/architecture/
2026-07-23-toolview-dissolution.md (bilingual pair) records the
decision, the four rejected alternatives, and the accepted semantic
changes; the web client architecture note and packages/client/AGENTS.md
carry the current-state narrative.

Verified: typecheck 0, duplication 0 clones (478 files), full coverage
run 6190 passed with zero threshold errors, knip 0, doc-sync 24/24,
client aggregate tsc 0, render-count checks (one commit per chunk, zero
row re-renders under streaming) green.
2026-07-23 17:49:47 +08:00
Yichen Jiang efe13c09d6 fix(tui): share config schema fields 2026-07-23 17:46:13 +08:00
Yichen Jiang 23fc9cc226 feat(tui): add path-only @file autocomplete 2026-07-23 17:39:30 +08:00
imccyu 58a08f1e41 Merge branch 'master' into fix/web-zstd-session-logs 2026-07-23 17:33:46 +08:00
Tianyi Cui 05cdee1471 Merge branch 'master' into worktree/llm-default-context-window 2026-07-23 17:31:17 +08:00
imccyu 07bdfbce9b refactor(gui): route the composer chain on PendingWait currency 2026-07-23 17:23:17 +08:00
imccyu de36006956 refactor(gui): mint kind-agnostic PendingWait carriers for pending interactions 2026-07-23 17:20:46 +08:00
imccyu 58cdc21431 feat(gui): chain slot kind with select routing and renderSlotChain 2026-07-23 17:19:59 +08:00
Tianyi Cui 9ab407fdd6 Merge branch 'master' into worktree/pr504-vendored-cordis-hot-reload 2026-07-23 17:19:42 +08:00
Yif 789e9daaf6 test(gui): cover the tooltip primitive and the inert expanded search control 2026-07-23 17:08:47 +08:00
Yif 20720ef238 fix(gui): polish sidebar layout, wordmark, tooltip, and fonts to figma
Fixed sidebar width (never concedes), figma session-row rail (16px twist +
status slots, triangle arrows, mount fade), exact brand wordmark svg with
tooltip'd rail controls, form controls inheriting the app font stack, and
inlined the twist button reset since the tsdown CSS pipeline drops composes.
2026-07-23 17:08:47 +08:00
Chinesezjc bae81744b4 test(tui): await first-frame rendering in cwd variants
The cwd-variants test asserted footer text right after setup()'s single
tick. On slow Windows runners the TUI has only written the color-scheme
query and hideCursor by then — no first frame — so the /opt assertion
failed (PR #498, windows coverage lane). Wait for each first-frame
assertion with vi.waitFor, the pattern 7fddeb446 and df38095a1 already
use in this file.
2026-07-23 16:53:12 +08:00
Yichen Jiang 0605913d4d Merge branch 'master' into worktree/llm-default-context-window 2026-07-23 16:43:34 +08:00
Turtle 7d751d3894 test(web): provide workspace context config 2026-07-23 16:04:32 +08:00
Ziya 7fdf685e5c Merge branch 'master' into feat/tui-extension-service 2026-07-23 04:02:19 -04:00
Turtle 5cdb192e92 Merge remote-tracking branch 'origin/master' into fix/web-zstd-session-logs 2026-07-23 16:00:27 +08:00
Turtle 3b97c7b318 fix(web): compress session logs by default 2026-07-23 15:54:10 +08:00
imccyu 62b62ac9d5 Merge remote-tracking branch 'origin/master' into codex/gui-context-polish
# Conflicts:
#	apps/web/tests/smoke-fixture.e2e.ts
2026-07-23 15:03:26 +08:00
Dudu-0223 0301b7fda8 feat(gui): add write tool row variant 2026-07-23 14:46:07 +08:00
Dudu-0223 aee859841b test(gui): cover edit tool row 2026-07-23 14:38:27 +08:00
Tianyi Cui c5ebcef8af test(ui-sidebar): cover expanded search control 2026-07-23 14:30:43 +08:00
imccyu 1210735959 refactor(gui): rework ui-question to the terminal slot standard
Contract face moves to contract/slots.ts (PropsRuntime composition off the
conversation SlotMap entry, flat answer/cancel injected share); apply takes
the ui-sidebar terminal form (strict need() service reads, ctx.effect-wrapped
single register, framework-resolved sessionId); tests upgrade to the terminal
style (props-direct component specs with standard-kit stubs, real-registry
apply spec with children-declared slot, fiber-teardown case).
2026-07-23 14:23:10 +08:00
Dudu-0223 1ba00bf80c feat(web): inject workspace instructions 2026-07-23 14:11:25 +08:00
Dudu-0223 d7d8650600 fix(gui): expand thinking rows on click 2026-07-23 14:11:25 +08:00
Dudu-0223 691efb0025 feat(gui): add 'edit' variant for tool row, showing as 'Edit · path' like Read
- Add 'edit' to ToolRowVariant type and TOOL_VARIANTS mapping
- Add 'edit' title and summary key preference (path/file_path)
- Add IconEditOutline16 as the leading icon for edit variant
2026-07-23 14:11:25 +08:00
imccyu 61dc4b6b99 Merge remote-tracking branch 'origin/master' into worktree/web-ask-user-question 2026-07-23 14:05:08 +08:00
Tianyi Cui c79b34bda5 Revert "chore: run primary CI before push" 2026-07-23 14:02:58 +08:00
Hypatia May 931e0e22c7 test(ui-sidebar): cover expanded search control 2026-07-23 14:02:37 +08:00