Commit Graph
4258 Commits
Author SHA1 Message Date
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
Tianyi Cui fcd9af2033 Merge pull request #498 from deepseek-harness/perf/parallel-built-package-invariants
perf(ci): parallelize packed-companion probes in verify-built-package-invariants
2026-07-23 17:49:22 +08:00
Tianyi Cui 6feb5d9294 Merge remote-tracking branch 'origin/master' into worktree/pr498-conflict-20260723 2026-07-23 17:43:00 +08:00
Tianyi Cui 91774001b1 Merge remote-tracking branch 'origin/master' into worktree/pr498-conflict-20260723
# Conflicts:
#	.agents/notes/implemented/process/2026-07-06-parallel-pre-push-gates.md
#	.github/workflows/ci.yml
#	scripts/verify-built-package-invariants.mjs
2026-07-23 17:42:30 +08:00
Tianyi Cui 4a3e46d698 Merge pull request #563 from deepseek-harness/worktree/record-browser-gif-skill
feat(skill): record browser demo GIFs
2026-07-23 17:41:06 +08:00
Tianyi Cui 9fcafb9ca7 Merge branch 'master' into worktree/record-browser-gif-skill 2026-07-23 17:37:42 +08:00
Tianyi Cui 1eecf025ff Merge pull request #514 from deepseek-harness/worktree/pr504-vendored-cordis-hot-reload
fix(vendor/include): keep config reloads resilient
2026-07-23 17:33:14 +08:00
Tianyi Cui 9ab407fdd6 Merge branch 'master' into worktree/pr504-vendored-cordis-hot-reload 2026-07-23 17:19:42 +08:00
Tianyi Cui 1e84c7e3de Merge remote-tracking branch 'origin/master' into worktree/record-browser-gif-skill 2026-07-23 17:18:49 +08:00
Tianyi Cui c02eb6d941 fix(skill): preserve GIF palette and paths 2026-07-23 17:18:18 +08:00
Tianyi Cui 189219871b Merge pull request #560 from deepseek-harness/worktree/debug-endpoint-e2e-20260723
test(acp): require a real sandbox denial
2026-07-23 17:15:17 +08:00
Tianyi Cui f02c847ecb Merge branch 'master' into worktree/debug-endpoint-e2e-20260723 2026-07-23 17:14:52 +08:00
Ziya 1e1e05d35a Merge pull request #541 from deepseek-harness/feat/tui-extension-service
feat(tui): add interactive extension service
2026-07-23 05:06:30 -04:00
Tianyi Cui f7103c833c feat(skill): record browser demo GIFs 2026-07-23 17:04:33 +08:00
Ziya 2f13de1d8f Merge branch 'master' into feat/tui-extension-service 2026-07-23 04:43:55 -04:00
Tianyi Cui be62eecc60 test(acp): require a real sandbox denial 2026-07-23 16:39:02 +08:00
Tianyi Cui 7c0c516f60 Merge pull request #554 from deepseek-harness/worktree/ci-enterprise-32core-required
Use enterprise 32-core runners for complete CI
2026-07-23 16:20:45 +08:00
Tianyi Cui b918743dd1 Merge branch 'master' into worktree/ci-enterprise-32core-required 2026-07-23 16:06:32 +08:00
Ziya 7fdf685e5c Merge branch 'master' into feat/tui-extension-service 2026-07-23 04:02:19 -04:00
imccyu 2c8e013d69 Merge pull request #548 from deepseek-harness/codex/gui-context-polish
feat(gui): add workspace context and polish tool rows
2026-07-23 15:31:17 +08:00
Tianyi Cui 464065cce2 Use enterprise 32-core runners for complete CI 2026-07-23 15:06:23 +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
Tianyi Cui 89bff10146 Merge pull request #547 from deepseek-harness/worktree/ci-standard-runner-fallback
ci: keep required PR checks on portable runners
2026-07-23 14:47:46 +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 fc1b308266 ci: keep required PR checks on portable runners 2026-07-23 14:31:01 +08:00
Tianyi Cui c5ebcef8af test(ui-sidebar): cover expanded search control 2026-07-23 14:30:43 +08:00
Tianyi Cui fe22e5e955 Merge pull request #544 from deepseek-harness/revert-543-worktree/comprehensive-pre-push
Revert "chore: run primary CI before push"
2026-07-23 14:11:39 +08:00
Dudu-0223 1ba00bf80c feat(web): inject workspace instructions 2026-07-23 14:11:25 +08:00
Dudu-0223 edb999fd0f test(gui): cover thinking row disclosure 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
Tianyi Cui c79b34bda5 Revert "chore: run primary CI before push" 2026-07-23 14:02:58 +08:00
Tianyi Cui 9c01696a7e Merge pull request #523 from deepseek-harness/worktree/fix-collapsed-sidebar-rail
fix(gui): keep sidebar controls when collapsed
2026-07-23 13:47:13 +08:00
imccyu d430744dd8 Merge branch 'master' into worktree/fix-collapsed-sidebar-rail 2026-07-23 13:45:14 +08:00
imccyu dd7d198c0d Revert "fix(gui): keep the label fade and pin the rail icons to one axis"
This reverts commit a4ae2f6c21c1eeed2495481a55a39762f4e64ccb.
2026-07-23 13:37:54 +08:00
imccyu f062ba8fcd fix(gui): keep the label fade and pin the rail icons to one axis
Two polish defects from the headless verification pass:

- .newSessionLabel/.footLabel declared their own transition shorthand,
  which replaced .wide's opacity fade entirely (shorthands do not merge) —
  the labels vanished instantly while everything else faded. The fade is
  restated alongside max-width.
- The rail icons drifted off a common vertical axis: the 56px track holds
  a 55px content box (1px column border), and the capsule rows kept their
  1px border-width in the collapsed state, shaving their content to 23px
  and pushing the search icon 2px right. Collapsed capsules now zero the
  border-width (transitioning border, not border-color), the root gives
  back the border pixel via asymmetric padding, and every surviving row
  centers its icon — five glyphs on the track's 28px center.
2026-07-23 13:30:07 +08:00
Tianyi Cui 0401fd52b9 Merge pull request #543 from deepseek-harness/worktree/comprehensive-pre-push
chore: run primary CI before push
2026-07-23 13:21:44 +08:00
imccyu 23e942029a Merge remote-tracking branch 'origin/master' into worktree/fix-collapsed-sidebar-rail 2026-07-23 13:16:48 +08:00
Tianyi Cui 1f8d0cf853 Merge remote-tracking branch 'origin/master' into worktree/comprehensive-pre-push 2026-07-23 13:11:49 +08:00
Tianyi Cui 75755c466d Merge pull request #313 from deepseek-harness/readme
docs: make the top-level README product-first
2026-07-23 13:11:20 +08:00
Tianyi Cui 00d5b69882 chore: run primary CI before push 2026-07-23 13:09:52 +08:00
imccyu 698f46b0c9 feat(gui): morph the sidebar collapse instead of swapping renders
The collapse read as a hard cut: only the track width animated while the
panel content swapped instantly and the rail icons bore no relation to the
expanded layout. Now the four control rows persist across the transition —
collapse toggle, new session, new workspace, search, the same top-down
order as their expanded rows — and morph their geometry (row heights,
paddings, margins, capsule borders) on the deepsuite curve, so each rail
icon is its expanded control converging onto the 56px axis. Wide-only
content (brand, labels, input, session tree) cross-fades over 200ms, stays
mounted while the collapse animates, and unmounts at the 300ms settle,
still dropping the sessions subscription. The search query moves up to the
root and survives the round trip; rail search focuses the surviving input
after expand instead of remount-autofocus.
2026-07-23 13:03:32 +08:00
ZiyaZhang b64c3eb13f fix(tui): contain overlay reentrancy 2026-07-22 22:00:36 -07:00
Tianyi Cui b96b48d5aa Merge branch 'master' into readme 2026-07-23 12:47:33 +08:00
ZiyaZhang 2a1b3139f9 feat(tui): add interactive extension service 2026-07-22 21:30:17 -07:00
Tianyi Cui d1a5593407 docs: separate plugin architecture tagline 2026-07-23 12:15:56 +08:00
Tianyi Cui 3e3ea47296 Merge pull request #535 from deepseek-harness/worktree-webts
refactor(tsconfig): single root solution graph over host/client aggregates
2026-07-23 12:03:11 +08:00
imccyu e4d3f6fd53 Merge branch 'master' into worktree-webts 2026-07-23 11:50:08 +08:00
Tianyi Cui 2848f0827d Merge pull request #538 from deepseek-harness/worktree-webslot2
refactor(gui): slot system standard & store migration
2026-07-23 11:48:08 +08:00