Commit Graph

65 Commits

Author SHA1 Message Date
imccyu
f9f72e2f09 fix(ui): preserve Hero tree when selecting a Workspace 2026-08-06 18:01:11 +08:00
imccyu
86965b053c feat(client): inject slot declaration lifetimes 2026-08-06 11:28:46 +08:00
_Kerman
c634fc2917 fix(trajectory): show exact millisecond durations consistently
Drop the details-panel Duration toggle: Duration rows always show
integer milliseconds, matching the cell time column. Timeline labels
(Total/TTFT/Decoding) and step-group descriptions previously fell back
to second labels at or above one second; they now also show exact
milliseconds via the shared formatDurationMillis formatter.
2026-08-05 16:46:23 +08:00
_Kerman
13fed3721f fix(trajectory): preserve state across history prepends 2026-08-04 16:53:52 +08:00
_Kerman
ae1008b4fb feat(trajectory): virtualize long session histories 2026-08-04 13:57:19 +08:00
_Kerman
5534431d42 fix(ui-trajectory): own composer overlay geometry 2026-08-03 14:02:40 +08:00
_Kerman
74cd2e4bd9 feat(ui-trajectory): enrich timeline timing interactions 2026-08-03 13:48:03 +08:00
imccyu
5d56019d22 feat: revert crumbs navigation for subagents 2026-08-02 12:51:11 +08:00
Dudu-0223
a27492507d feat(web): add subagent conversation transport 2026-08-02 12:51:09 +08:00
kingwl
07b0efc49e fix(web): hide session lineage in header 2026-07-31 21:08:57 +08:00
_Kerman
dd98d15b1d Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish
# Conflicts:
#	packages/client/ui-trajectory/src/client/timeline.ts
#	packages/client/ui-trajectory/tests/views.spec.tsx
2026-07-31 20:01:16 +08:00
Tianyi Cui
e371311203 Merge latest Web transcript parent into manual compaction
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/client/runtime/README.i18n.yaml
2026-07-31 14:39:20 +08:00
_Kerman
d9d1c3e079 fix(trajectory): use runtime preference persistence 2026-07-31 14:09:56 +08:00
imccyu
9ed87a6dba refactor(client): archivedSessionIds public face becomes a plain array
Public snapshot state stays in the store engine's plain-data vocabulary
(immer drafts reject Sets without the MapSet plugin, which stays off):
manager/service/contract carry readonly SessionId[] in Host order, and
the tree derivations build their own transient Set — the
expandedProjects pattern. Membership-unchanged installs still keep the
array reference for Object.is short-circuits.
2026-07-31 14:08:13 +08:00
imccyu
c764ed7e64 feat(client-runtime): project the archive set and the archiveSession action
WorkspaceListState gains archivedSessionIds (ReadonlySet, replaced only
on membership change), installed as full snapshots from the list
baseline, the unary echo, and the changed frame. Archiving the current
session clears the selection into the New Session view state. Test
doubles (test-runtime, fake APIs, fixture client) follow the widened
IWorkspaces/IApiClient faces.
2026-07-31 14:08:13 +08:00
Tianyi Cui
98f48fd83a Merge finalized Web transcript parent
# Conflicts:
#	apps/cli/README.i18n.yaml
#	packages/client/runtime/README.i18n.yaml
#	packages/client/ui-trajectory/README.i18n.yaml
#	packages/client/ui-trajectory/README.zh.md
2026-07-31 13:42:47 +08:00
_Kerman
4b8316dcd5 fix(trajectory): keep fold controls available 2026-07-31 11:39:37 +08:00
_Kerman
72eb82858a fix(trajectory): refine timeline drag and tooltips 2026-07-31 11:38:49 +08:00
_Kerman
5255eb6982 fix(trajectory): contain timeline wheel zoom 2026-07-31 11:28:01 +08:00
_Kerman
db00677fd2 Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish 2026-07-31 11:12:51 +08:00
_Kerman
4624c476de fix(trajectory): persist idle-compressed duration mode 2026-07-31 11:12:43 +08:00
Turtle
aa39d6c6ed Merge remote-tracking branch 'origin/master' into fix/node26-vitest-webstorage
# Conflicts:
#	scripts/run-gates.spec.ts
#	vitest.config.ts
2026-07-31 10:26:05 +08:00
Hypatia May
01e64c6350 Merge finalized Web transcript parent 2026-07-31 09:46:32 +08:00
imccyu
1e10966ef6 wip
fix: docs
2026-07-31 02:13:53 +08:00
Turtle
f04b35c6a4 fix(test): isolate jsdom storage on Node 26 2026-07-30 21:49:33 +08:00
Hypatia May
7a6d64981c round 3: disambiguate standalone compaction sections 2026-07-30 18:28:06 +08:00
Hypatia May
4de4d693a2 round 2: address manual compaction review findings 2026-07-30 18:15:12 +08:00
_Kerman
287289ddbc feat(ui): highlight trajectory errors 2026-07-30 17:42:02 +08:00
_Kerman
997932ffd6 feat(ui): refine trajectory timeline interaction 2026-07-30 17:00:58 +08:00
imccyu
64acc5874b test(client): cover independent trajectory history 2026-07-29 20:46:02 +08:00
imccyu
e0022ff19e refactor(client): isolate trajectory history 2026-07-29 20:21:37 +08:00
_Kerman
5d0d28cd0e fix(client): refine trajectory inspection behavior 2026-07-29 11:57:13 +08:00
_Kerman
33afcc913b Revert "fix(ui-conversation): keep composer visible across views"
This reverts commit 978d035d4a8d3578a70844511a42aa793664e5de.
2026-07-29 11:46:14 +08:00
_Kerman
5939355b1a fix(ui-conversation): keep composer visible across views 2026-07-29 11:30:50 +08:00
_Kerman
943ef7403e fix(client): resolve trajectory review follow-ups 2026-07-28 22:54:46 +08:00
_Kerman
f942c30f4b fix(client): address trajectory review feedback 2026-07-28 22:16:45 +08:00
_Kerman
0e1e594314 Merge remote-tracking branch 'origin/master' into xtr/trajectory-timeline
# Conflicts:
#	apps/web/tests/code-mode-fixture.snapshot.ts
#	apps/web/tests/navigation-panes.e2e.ts
#	apps/web/tests/snapshots/navigation-panes/details-open.expected.md
#	packages/client/runtime/src/client/index.ts
#	packages/client/runtime/src/client/sessions/fold-adapter.ts
#	packages/client/ui-trajectory/tests/views.spec.tsx
2026-07-28 18:06:04 +08:00
_Kerman
bbd9949d31 feat(client): refine trajectory timeline interaction 2026-07-28 18:02:19 +08:00
_Kerman
1d4a6149cc feat(client): add trajectory timing overview 2026-07-28 16:28:57 +08:00
_Kerman
9096dbb29d fix(client): address trajectory review findings 2026-07-28 15:07:44 +08:00
_Kerman
1ac0eb9611 fix(client): keep trajectory history on the session seam 2026-07-28 13:56:00 +08:00
_Kerman
028ac5c2f6 refactor(client): isolate trajectory history reads 2026-07-28 13:50:46 +08:00
imccyu
e2791107c4 ci: clear the snapshots-and-artifacts lane — lint sweep and TUI snapshot re-record
Lint: eslint --fix over the merge-crossed projection/command files (arrow
parens, trailing commas, unnecessary assertions), Extract<> replaces the
keyof-map & string intersections no-redundant-type-constituents rejects,
the fold-adapter's merge loop drops its non-null assertions for a
bounds-carrying cursor, one JSDoc line wrapped under max-len (api-catalog
regenerated). Snapshots: the four TUI goldens re-recorded for the merged
event-count shift (the durable command lifecycle adds one event to the
seeded diagnostics log). The headless advanced-toolchain snapshot passes
on CI and fails locally in this sandbox both with and without these
changes (30s child timeout — environment-bound, tracked in the ledger).
2026-07-28 11:48:01 +08:00
_Kerman
92081094ae fix(ui): reconcile trajectory ledger with current client contracts 2026-07-28 10:23:44 +08:00
_Kerman
fb3e4effba fix(ui): align trajectory checks with inspection ledger 2026-07-28 10:17:44 +08:00
_Kerman
a4f4751600 Merge remote-tracking branch 'github/master' into xtr/trajectory-inspection-ui
# Conflicts:
#	packages/client/ui-primitives/src/Menu.tsx
#	packages/client/ui-trajectory/src/client/TrajectoryCell.tsx
#	packages/client/ui-trajectory/src/client/TrajectoryView.tsx
#	packages/client/ui-trajectory/tests/layout.spec.tsx
#	pnpm-lock.yaml
#	pnpm-workspace.yaml
2026-07-28 10:12:29 +08:00
imccyu
90addbf53c feat(gui): useProjection — the fifth framework hook seat through the standard kit
React half of the session-projection client base: the renderer contract gains
an open-key projections face on SessionMaybeProvideInfo (cellOf(key), distinct
from the static hooks roster), web-react mints projectionHook (per-bundle cache;
per-cell uSES binding via the shared observableHook cache; unresolved keys read
undefined through the absent source so hook order stays constant), standardKit
delivers kit.useProjection, and the runtime merges UseProjection into
SessionStandardProps/SessionMaybeStandardProps (overloads mirror useSession).
3 jsdom specs (kit delivery + live re-render, selector over undefined, faceless
bundle = all absent); existing direct-prop-feed specs gain the one-line stub the
new required seat mandates.
2026-07-27 22:58:53 +08:00
imccyu
cdd4d59ea0 chore(lint): clear the semantic .tsx backlog
Hand fixes for the findings --fix cannot touch, mirroring the fixes
already applied on the fe-docs feature branch (same file, same shape)
so its eventual rebase resolves cleanly:

- restore the return the no-confusing-void-expression autofix ate in
  useAbsentSnapshot (typed S | undefined; hook call kept for hook-order
  stability, undefined returned explicitly);
- re-type DOM queries the no-unnecessary-type-assertion autofix broke:
  getByRole<HTMLButtonElement>(...) generics instead of the removed
  as-casts (the eslint program and the client tsconfig aggregate
  disagree about these casts; the generic form satisfies both);
- justified eslint-disable for the deliberate legacy paths: keyCode 229
  IME-composition detection, execCommand clipboard fallbacks, lib.dom
  clipboard optionality, and the any-typed Reflect.get/this probes in
  test fakes;
- drop the dead react/no-danger directive (eslint-plugin-react is not
  loaded, so the rule never applied) keeping its shiki rationale;
- delete the tautological 'Z' comparison and the renameTarget null
  check already implied by renameBlocked;
- css-module non-null assertions replaced by type widening
  (Button className, TAG_CLASS Record) per the established pattern;
- misc: max-len comment wraps, void generic drop in the deferred test
  helper, unused type imports, floating selectWorkspace promises voided,
  member-delimiter newlines in inline type literals.
2026-07-27 22:23:41 +08:00
imccyu
49c2e85ac7 chore(lint): apply eslint auto-fixes across the .tsx backlog
Mechanical --fix output over the newly linted .tsx files (indent,
arrow-parens, comma-dangle, member-delimiter-style, unnecessary type
assertions), plus the three generic-arrow test hooks converted to
function declarations up front: the comma-dangle fixer strips the
<T,> disambiguation comma and turns them into parse errors otherwise.
2026-07-27 21:49:40 +08:00
_Kerman
628c1bffe0 feat(ui): add trajectory inspection ledger 2026-07-27 15:47:44 +08:00