Commit Graph
100 Commits
Author SHA1 Message Date
creatixchu 1f7e491526 docs: describe shared delivery and review file actions 2026-09-20 14:00:41 +08:00
creatixchu 28089001a2 fix: complete file action slot contracts and branch coverage 2026-09-20 13:59:00 +08:00
creatixchu 59fdc2604d test: provide the file action slot runtime in delivery fixtures 2026-09-20 13:56:09 +08:00
creatixchu b80722812b fix: scope shared file actions to their owning views 2026-09-20 13:55:27 +08:00
creatixchu 56d0534c30 refactor: share native file actions across delivery and review views 2026-09-20 13:53:16 +08:00
creatixchu 33782150cd fix: name the default application in opening tooltips 2026-09-20 13:42:31 +08:00
creatixchu 6e260998c9 fix: refine shared file controls and native query errors 2026-09-20 13:39:11 +08:00
creatixchu 27b7fd0e2f fix: preserve Shell reference storage during failed handoff cleanup 2026-09-20 13:26:18 +08:00
creatixchu 7943fb3917 Merge master into file application controls 2026-09-20 13:25:10 +08:00
creatixchu 6493cdac9c fix: retain the Windows Shell host until asynchronous handoff settles 2026-09-20 13:14:49 +08:00
creatixchu 39af517961 test: evaluate the Windows fixture output path as a PowerShell expression 2026-09-20 12:58:58 +08:00
creatixchu cbc51b5446 test: isolate native application identity and cold-history associations 2026-09-20 12:51:18 +08:00
creatixchu 5218958366 test: keep native association expectations strictly typed 2026-09-20 12:35:53 +08:00
creatixchu 4fb9d34275 fix: use the native test task timeout for fixture readiness 2026-09-20 12:32:05 +08:00
creatixchu b689c724d1 docs: describe cross-platform file opening and pin desktop browser fixtures 2026-09-20 12:28:41 +08:00
creatixchu b4b0c4e4c8 test: exercise native Linux file handoff and document shared adapters 2026-09-20 12:24:09 +08:00
creatixchu aac990d2d4 test: cover desktop lookup fallbacks and cancel native fixture work 2026-09-20 12:20:04 +08:00
creatixchu a8c5ca85a1 test: cover Linux associations and native Windows Shell handoff 2026-09-20 12:15:15 +08:00
creatixchu a1545a9bf5 feat: share file associations across macOS Windows and Linux 2026-09-20 12:10:54 +08:00
creatixchu 219bbe47c7 feat: reuse the opening menu in a larger preview action 2026-09-20 12:00:03 +08:00
creatixchu 71b7bbeb88 fix: wait for file associations before enabling the default action 2026-09-20 11:55:48 +08:00
creatixchu 6111f879fd test: verify shared opener menu toggling and SSH visibility 2026-09-20 11:50:40 +08:00
creatixchu 5c409c39bc fix: type shared opening fixtures and document default actions 2026-09-20 11:48:58 +08:00
creatixchu e969aaff58 refactor: share compact opening controls for files and directories 2026-09-20 11:46:50 +08:00
creatixchu c6c9da3eba chore: retire the removed path-action unknown-cast baseline 2026-09-20 11:03:54 +08:00
creatixchu dd39d56af5 test: remove legacy unknown assertion from path-action fixture 2026-09-20 11:02:45 +08:00
creatixchu 79798d8c5a fix: satisfy package publication and file-action coverage gates 2026-09-20 11:00:05 +08:00
creatixchu 0c3045d488 fix: validate native metadata and refresh generated source references 2026-09-20 10:45:21 +08:00
creatixchu 5325babc7b test: cover default native command adapter selection 2026-09-20 10:43:06 +08:00
creatixchu e435340eff test: exercise application selection through the recorded Web session 2026-09-20 10:41:48 +08:00
creatixchu 0ae1b2f91c docs: describe native file application selection and platform scope 2026-09-20 10:39:42 +08:00
creatixchu 0839011204 fix: include native association types in client compilation 2026-09-20 10:37:11 +08:00
creatixchu 03d44191b3 fix: expose browser-safe file association metadata to Remote generation 2026-09-20 10:35:56 +08:00
creatixchu 97877bd8b4 test: cover file handler selection and shared path authorization 2026-09-20 10:34:24 +08:00
creatixchu d6d9d47c49 fix: constrain application icon pixels before transport 2026-09-20 10:32:57 +08:00
creatixchu 39bde1a5c9 feat: query file applications for sidebar opening (#4562) 2026-09-20 10:31:32 +08:00
creatixchu 6453db05ca Merge remote-tracking branch 'origin/master' into worktree/present-changes-dedup
# Conflicts:
#	packages/client/ui-deliverables/README.i18n.yaml
#	packages/client/ui-deliverables/README.md
#	packages/client/ui-deliverables/README.zh.md
2026-09-18 17:25:53 +08:00
creatixchu ac0a042f08 Merge remote-tracking branch 'origin/master' into worktree/present-changes-dedup 2026-09-18 17:16:34 +08:00
creatixchu ba98bcbf08 test: refresh presentation guidance after review 2026-09-18 17:12:03 +08:00
creatixchu 223385954d fix: recommend at most four files per presentation 2026-09-18 17:10:38 +08:00
creatixchu 63c1e04b93 fix: keep file access available across presentation clients 2026-09-18 17:09:02 +08:00
creatixchu 13692e9179 test: refresh selective presentation prompt snapshots 2026-09-18 16:35:51 +08:00
creatixchu 2e55564e02 fix: specify absolute paths for inline image rendering 2026-09-18 16:32:56 +08:00
creatixchu 28fbe7433d fix: guide selective file presentation through prompts 2026-09-18 16:31:13 +08:00
creatixchu c19d1f12fb Merge remote-tracking branch 'origin/master' into worktree/present-changes-dedup 2026-09-18 16:26:45 +08:00
creatixchu e22005ae10 Sync session controller configuration catalog translation 2026-09-18 15:51:49 +08:00
creatixchu 1902842b6c Merge remote-tracking branch 'origin/master' into worktree/sidebar-open-in-default-app 2026-09-18 15:50:51 +08:00
creatixchu 363343fb83 Refresh config locations and satisfy typed fixture lint 2026-09-18 15:36:56 +08:00
creatixchu dd8c4b817b Keep fixture slot adapters explicitly typed 2026-09-18 15:33:47 +08:00
creatixchu ed4d95482b Assert the retained file action path in toolbar coverage 2026-09-18 15:32:55 +08:00
creatixchu 04d0235673 Verify local file opening and address sidebar review findings 2026-09-18 15:31:50 +08:00
creatixchu 8f2a183514 fix(web): document paired column ref lifetime 2026-09-18 15:26:22 +08:00
creatixchu 12c0cbb56d Use document preview client config and shorten README summary 2026-09-18 15:24:51 +08:00
creatixchu 2cea45edc6 Remove duplicate guard from custom renderer fixture 2026-09-18 15:24:00 +08:00
creatixchu c538c4ec8f Adapt Office renderer fixture to file action slots 2026-09-18 15:23:13 +08:00
creatixchu 419d7c57c7 fix(web): make scroll frame callback return explicit 2026-09-18 15:23:00 +08:00
creatixchu 9e1635b6b6 Merge master and refresh sidebar file-opening integrations 2026-09-18 15:21:47 +08:00
creatixchu cc9caed57b fix(web): type browser regression style cleanup as Node 2026-09-18 15:19:50 +08:00
creatixchu b5cbcad854 fix(web): preserve split diff scroll offsets across clamped peers 2026-09-18 15:17:13 +08:00
creatixchu 79677e4824 Merge remote-tracking branch 'origin/master' into worktree/issue-4370-code-diff-sidebar 2026-09-18 15:15:11 +08:00
creatixchu 6b1808f432 release(dsh): 0.1.6-alpha.2 2026-09-17 21:11:19 +08:00
creatixchu dcf2b67896 feat(web): open Sidebar-previewed files in the default application
The document preview declares two child slots handing the previewed file
and its Host path to other plugins: the header actions after its own
controls, and the empty state of a file it cannot render, where Retry stood.
Empty-state read failures now name their recourse: not-text and too-large
offer the handoff, not-found and non-regular paths offer nothing, and the
rest keep Retry. The unsupported-suffix empty state offers the same seat.

ui-open-in-app fills both seats with an "Open" split button (default
application, or the file manager reveal from its menu) and an empty-state
"Open in default app" button. Both call the Session Remote the Host already
publishes: canOpenWorkspacePath once per page decides whether they render,
openWorkspacePath runs each gesture. Only the pressed control disables while
its gesture settles; a failure announces once through a transient toast.

The delivery cards keep their own opener this iteration. The design, slot
pair, failure classification, and toast rule come from Yifffan's PR #4120.
2026-09-16 21:00:57 +08:00
creatixchu a4493ceb39 fix(deliverables): scroll the split review columns together on both axes
Each unwrapped split column is its own scroll container, and only the
horizontal offset was mirrored onto the other side, so wheel-scrolling one
column left the other behind and the paired rows drifted apart. Mirror the
vertical offset the same way.
2026-09-16 20:15:40 +08:00
creatixchu f92f984d3d docs(notes): propose one card per delivered changed file 2026-09-16 19:48:48 +08:00
creatixchu c1f9d19658 test(web): refresh the present-svg golden for the review-opening card 2026-09-16 19:34:27 +08:00
creatixchu 974d0271c0 fix(deliverables): satisfy the static gates and Windows tests
Regenerate the client and persistence catalogs, document the review address builder with a plain parameter, share the changed-file coordinate parsing between the comparison and native-open routes, and fold the summary and comparison stores onto one Host read store. A path with no existing ancestor but the filesystem root keeps its spelling on every platform, and the temp-root test redirects TMP and TEMP as well as TMPDIR while counting only the recorder's own directories.
2026-09-16 19:32:25 +08:00
creatixchu 2875e28a0e Merge remote-tracking branch 'origin/worktree/code-diff-card' into worktree/changes-diff-preview 2026-09-16 19:26:39 +08:00
creatixchu 5991ea36ae Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-16 19:22:17 +08:00
creatixchu c63da07322 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-16 19:19:58 +08:00
creatixchu 26e2196a86 fix(deliverables): scroll the split review columns sideways together 2026-09-16 16:53:44 +08:00
creatixchu 142ca8b956 Merge remote-tracking branch 'origin/worktree/code-diff-card' into worktree/changes-diff-preview 2026-09-16 16:49:48 +08:00
creatixchu 91d9346aa1 fix(deliverables): open the review from the card header and scroll unwrapped split columns separately
The card header opens the turn's review on its first file instead of the common folder, so the folder route and its Host lookup go away and the native open lives only in the review tab. The split view without wrapping draws each side as its own column that scrolls sideways, so a long line no longer runs under the other side; with wrapping both sides still share one row per pair.
2026-09-16 16:44:52 +08:00
creatixchu 9a74f173d3 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-16 16:31:23 +08:00
creatixchu fc10bc18e0 feat(deliverables): review one turn's changed files in a single tab
The per-file comparison tab becomes a `changes-review` tab per turn: a file selector in the header lists every recorded file, a card row opens the tab on its file through a navigation parameter, and the header's tools switch between the unified and a side-by-side view, switch line wrapping, open the whole file in the Sidebar, and open it in the default application when a desktop exists. View and wrap choices are kept per tab in an exclusive store.
2026-09-16 15:07:34 +08:00
creatixchu a1ac8371de test(acp): refresh the fs-same-mode fixture for the write operation metadata 2026-09-16 14:47:52 +08:00
creatixchu 7b93d1bd83 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-16 14:37:28 +08:00
creatixchu fac80a84fb Merge remote-tracking branch 'origin/worktree/code-diff-card' into worktree/changes-diff-preview 2026-09-16 13:39:21 +08:00
creatixchu 2440937459 fix(workspace-changes): list oversized pairs, bound capture reads, and resolve paths through symlinked ancestors
Two oversized captures are no longer treated as unchanged, so the file is listed as oversized instead of vanishing; an oversized side outranks a binary one in the card and the tab alike. Captures read at most maxFileBytes + 1 bytes through a file handle, a missing file resolves through its nearest existing ancestor so a path created through a directory symlink keeps one canonical spelling, and ls-tree matches paths literally. The comparison tab draws at most 5,000 lines. Docs record that comparisons serve whole file text beyond the workspace root, the newline normalization, and the coarse payload bound; the card note's row behavior is current again.
2026-09-16 13:37:22 +08:00
creatixchu 664190c6f9 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
2026-09-16 12:42:02 +08:00
creatixchu a79b97ecca feat(deliverables): compare each changed file from the card
Rows of the changed-files card open a `changes-diff` right-Sidebar tab that compares the file at turn start and turn end. The workspace-changes recorder copies every file a file tool edits into the Session's temporary directory before the first edit and again at turn end, so files git does not cover are compared without git and counted first-to-last; `maxFileBytes` caps copies and snapshot reads, and `diffTimeoutMs` degrades a slow line comparison to whole-file replacement.
2026-09-15 18:38:33 +08:00
creatixchu 9f219e48a9 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	scripts/gen-cordis-catalog.ts
2026-09-15 17:35:04 +08:00
creatixchu c8bc10440b fix(workspace-changes): review round on the served summaries
A repository whose baseline snapshot failed records nothing instead of
degrading to a file-tool summary; the write tool persists whether it
created or updated, so an unchanged overwrite outside snapshot coverage
no longer counts its content as added; hunks inside nested repositories
are dropped before check-ignore, which refused them with exit 128 and
lost the whole turn; a temporary root inside the work tree keeps the
recorder's own directory out of the snapshots; numstat keeps tabs in
file names; the summary carries line totals over the uncapped list and
the snapshot tree ids; the client's summary store abandons reads that
began before a connection reset. Docs and fixtures follow.
2026-09-15 17:28:14 +08:00
creatixchu da6e3f9edf fix(workspace-changes): count an appended line as one addition
The file tools persist both sides of a hunk without a trailing newline,
so re-diffing an append read the previous last line as rewritten and
reported +2 -1 for +1 -0. Both sides are line-terminated before the
diff, the rule the per-call diff card already applies.
2026-09-15 16:31:24 +08:00
creatixchu 8f0cdc9a98 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-15 16:05:29 +08:00
creatixchu c48f4203d9 feat(workspace-changes): summarize file-tool edits outside a git repository
A working directory outside any repository, or a Host without git, no
longer loses the card: the recorder skips the snapshots and builds the
summary from the hunks the file tools persisted, with the working
directory as the workspace, so shell edits are the only gap. The
sidebar e2e scopes its chip clicks to the prose mention now that the
card offers the same open, and the present-svg and permission-policy
scenarios gain the card their write calls earn.
2026-09-15 15:44:11 +08:00
creatixchu 2a77c59a49 test(web): refresh the changed-files golden for master's edit-card counts and desktop copy 2026-09-15 15:14:35 +08:00
creatixchu 1ea80b7b69 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	packages/client/ui-deliverables/package.json
#	snapshots/web/present-svg/ui.expected.md
2026-09-15 15:11:02 +08:00
creatixchu ea53423b60 release(dsh): 0.1.6-alpha.1 2026-09-15 09:35:57 +08:00
creatixchu 0eb87a4590 test: fix upload expectations and exited process cleanup 2026-09-14 21:34:38 +08:00
creatixchu 9532ed3b28 test(sdk): declare upload policy for existing replay compositions 2026-09-14 21:19:03 +08:00
creatixchu 31ec6bc7e3 fix(session): keep upload defaults independent of test runners 2026-09-14 21:15:42 +08:00
creatixchu ac917f4df3 docs: align Chinese session-log source reference 2026-09-14 21:04:13 +08:00
creatixchu 4885f90769 docs: refresh session-log config source reference 2026-09-14 21:02:31 +08:00
creatixchu 32b9c99560 Merge remote-tracking branch 'origin/worktree/session-log-upload-default-test-aware' into codex/pr-4183-ci 2026-09-14 21:00:20 +08:00
creatixchu b35d728d42 test(session): cover environment-aware upload defaults 2026-09-14 20:59:55 +08:00
creatixchu ebf89a8455 Merge remote-tracking branch 'origin/master' into codex/pr-4183-ci 2026-09-14 20:59:46 +08:00
creatixchu 620c52ca66 test(web): give the clickable-links gallery its own native-open overlay 2026-09-14 18:32:48 +08:00
creatixchu dde4dccbd2 feat(workspace-changes): keep change summaries on the Host for the Session's lifetime
The workspace/changes event now carries only the turn number. The
recorder keeps each announced summary in memory under the event's
sequence and serves it through the new workspaceChanges service; the
Web deliverables plugin reads it once per announcement through an
authenticated summary route and renders the card only while the Host
still serves it, so a conversation reopened after a Host restart has no
card for its earlier turns. Snapshot objects move from a shared,
size-bounded store under the Harness home to a temporary directory per
Session that disposal removes, which retires the dshHome and
objectStoreMaxBytes fields. The cold-seeded fold scenario goes with the
logged file list; the client spec covers the fold and the recorded
scenario covers the served summary.
2026-09-14 18:21:12 +08:00
creatixchu e5ac976e4b Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	pnpm-lock.yaml
2026-09-14 17:49:25 +08:00
creatixchu 722008aeeb docs(deliverables): add the subsystem page the package-group gate requires
The deliverables group README links a subsystems page that carries the
PresentedFile, WorkspaceChangedFile, and WorkspaceChangesData
declarations and names the two log-only events; the persistence catalog
links the payload types to it.
2026-09-14 14:16:59 +08:00