Commit Graph
416 Commits
Author SHA1 Message Date
Dudu-0223 e848b6226f Merge remote-tracking branch 'origin/master' into codex/fix-migration 2026-09-20 15:45:12 +08:00
lsdsjy 1b83e0ff13 Merge pull request #4665 from deepseek-harness/fix/developer-tools-preferences
fix(web): preserve plugin tabs and enable developer tools by default
2026-09-20 15:34:51 +08:00
lsdsjy 4f0ee6b105 fix(settings): defer developer features until host preference resolves 2026-09-20 14:45:24 +08:00
liukx0205 e3f0d3fb6e fix(web): preserve session engagement across blank list refreshes 2026-09-20 14:43:46 +08:00
Dudu-0223 f44b78a622 fix(session): complete parent catalogs while isolating child failures 2026-09-20 12:09:57 +08:00
Dudu-0223 c08ead6900 Merge remote-tracking branch 'origin/master' into fix/lazy-subagent-migration
# Conflicts:
#	packages/client/ui-plugin-manager/tests/components.client.spec.tsx
#	packages/client/ui-workspace/README.i18n.yaml
#	packages/client/ui-workspace/README.md
#	packages/client/ui-workspace/README.zh.md
2026-09-20 11:58:21 +08:00
imccyu 8771607f8b test: cover sidebar fork and persistent shell cancellation regressions 2026-09-19 23:05:40 +08:00
Dudu-0223 a9985b49ae fix(session): migrate historical subagents only when opened 2026-09-19 22:47:01 +08:00
Tianyi Cui 8b0b2dc1d8 Merge master b86916de into release/session-log-v4
Integrate the master tip observed for the final V4 landing preparation on
top of the already merged migration stack. Preserve the V4 writer, flat
message migration, extension policy, catalog validation and historical
recordings while bringing in upstream profile resolution and desktop/UI
changes.

Resolve four generated translation-pairing records from the combined
English/Chinese text. Keep this master checkpoint separate from any
integration fixes and retain all reviewed parent history. Follow-up
validation covers the affected launch/UI paths and migration replay.
2026-09-19 18:00:36 +08:00
Yif 9c48e74409 test(web): capture sidebar snapshots after the track-easing gate settles
The columnTransition probe raced data-animating's transitionend/600ms
settle: checkpoints recorded whichever side of the window the capture
landed on. Waiting for the attribute to drop pins the steady state —
no declared transition (computed 'all') — deterministically.
2026-09-19 16:39:47 +08:00
Tianyi Cui 1613a10c03 merge: integrate pinned master into session-log-v4
Merge master 7e2b049d8e2523127a3b4fba38cab4748ef0c72f, observed on
2026-09-19 at 07:38:37 UTC, into release/session-log-v4 at
c4663e8671e33bc2cfdbc868b0b18d979508d39b. Keep this base integration
separate from the five persistence repair PRs so their review diffs
remain focused and can be rebased without moving their fixes here.

Combine master's pin ordering and archived-session filter with V4's
parent-owned direct child catalog. Both grouped and flat sidebar rows
must pass the Session list to the V4 activity calculation; restoring
master's summary-lineage traversal would reintroduce the removed
subagent ownership and count unrelated descendants.

Keep master's removal of the archived-session settings page. Its only
release-side test change renamed a Session list fixture field, so no
runtime behavior is lost by deleting that obsolete test. Adapt the
release-side direct-child-status regression to the new row/filter
arguments and preserve its assertions.

Retain master's workspace ordering and row-motion documentation while
keeping the V4 child-catalog wording. Reconcile the generated bilingual
records against the merged documents. Frozen V0-V3 codecs, recorded
Session JSONL inputs, and the current V4 persistence schema are unchanged.

Refs #2692, #3273
2026-09-19 15:42:11 +08:00
Yif a80f5186a6 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine 2026-09-19 14:05:21 +08:00
Yichen Jiang ff3d162401 Merge pull request #4600 from deepseek-harness/worktree/fix-markdown-preview-images
fix(web): render local images in Markdown previews
2026-09-19 13:31:42 +08:00
Yif c8e3cb2b87 test(web): track breadcrumb text crumb and shell.leading seat in e2e and goldens 2026-09-19 13:31:41 +08:00
Yif 8f2f13bc48 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine 2026-09-19 13:26:16 +08:00
Yichen Jiang 7951cee0d5 fix(web): render local images in Markdown previews 2026-09-19 13:21:37 +08:00
imccyu 7e4045c4c0 test(client): align sidebar interactions and browser snapshots 2026-09-19 12:54:14 +08:00
Tianyi Cui 87f0df0550 Merge pinned master 5ec3ffe337 into session-log-v4
Keep the master refresh separate from the V3-to-V4 lossless-conversion and
checkpoint JSON fixes so the release baseline and each feature change remain
independently reviewable. This checkpoint extends the already-published
4435f6f519 merge before the #4583 child is rebased.

Integrate exactly master 5ec3ffe337062ab5bb4955933008afe8d0a0b915. Its #4156
changes add watched file/document refresh, filesystem watch readiness,
directory expansion restoration, and chat bottom-follow fixes. They update
shared filesystem and Client consumers without changing Session format or
snapshot generation.

The merge has no conflicts. Its 114-file scope and line counts match upstream;
code and prose additions/removals are unchanged. Only the two translation
pairing records incorporate the release branch's retained V4 documentation.

Validation: 762 owner tests passed (1 platform skip), 11 focused Web tests
passed, full build passed, and all 41 doc-sync checks passed. Runtime closure
and Client package checks passed; fs-local publint completed with the existing
source-wildcard export warning.
2026-09-19 02:39:04 +08:00
imccyu 9493ed6f61 test(sidebar): cover automatic refresh and watch lifecycle 2026-09-18 23:27:29 +08:00
Yif 1cfb776604 fix(ci): re-record slots pairing, refresh breadcrumb golden, cover null-panel nudge branch
The master merge invalidated docs/subsystems/slots.md's recorded pairing hashes; the minimal-preset UI golden still expected the breadcrumb as a disabled button, which darwin drag-band avoidance intentionally turned into plain text; and the app-region nudge effect's unattached-ref return had no darwin first-render test.
2026-09-18 23:05:24 +08:00
imccyu 50460879db Revert "feat(web): add work details presentation modes" 2026-09-18 22:11:53 +08:00
Yif 5467209f8e fix(client): settle tooltip pointer flag, harden drag gate, scope shared-curve doc
Clear pointerFocus on pointerup/pointercancel so a press that never moves
focus cannot swallow the next keyboard focus; match prefixed/unprefixed
app-region with !important tolerance and prove the allowlist path rejects
an offender; scope the ui-layout shared-curve limitation to data-animating.
2026-09-18 21:23:11 +08:00
lsdsjy 6ad7c991bf test(ui-chat,web): align browser coverage with work details folding 2026-09-18 20:23:46 +08:00
lsdsjy 50b7dd21a2 fix(ui-chat,web): isolate process updates and restore lifecycle details 2026-09-18 20:02:15 +08:00
lsdsjy cb561cbe4e fix(ui-chat,web): align work detail labels and Bash snapshot 2026-09-18 19:22:24 +08:00
lsdsjy 6a9febf6fe Merge remote-tracking branch 'origin/master' into fix/pr4565-ci 2026-09-18 19:18:11 +08:00
_KermanandTianyi Cui fb79a944f5 refactor(llm): separate durable producer sources from request inputs
Give durable user context its producer-owned source kind instead of a generic plugin wrapper. The V3-to-V4 conversion preserves the frozen rename and collision rules, all own JSON metadata, event coordinates, and historical request-only kinds. Native catalog and JSONL admission retain source validation so unknown attribution can survive without its producer while malformed owned sources are refused.

Use an explicit user-only RequestUserInput for auxiliary LLM prompts that do not own durable message identity. Auto Review and compaction remove their request-only source registrations while retaining prompt content and freezing; provider serializers and projections keep the same wire data, assistant replay isolation, image ordering, and tool correlation. Session writes, Agent delivery, and recorded title requests continue to require identified durable messages.

Bind the saved compatibility policy only to user sources and qualify tmux location attribution without weakening fixed system, model, or tool semantics. Rebuild the current inventory and unpublished V4 acknowledgement on the actual tool-role parent, preserving its rationale and all accepted historical records. The catalog format version records tooling metadata; Session remains V4. Developer-role policy and activation belong to their own feature.

The latest-master Messages adapter, serialization, request-input typing, EpochHeader reservation, and attribution checks pass 103 tests across five files. The retained V3 Messages input-history snapshot passes through the source profile; Host/Client typechecks and all 41 documentation gates pass. The generated comparison records four changed roots and 447 unchanged type fingerprints. Latest-master ARIA changes are retained, with producer source labels applied independently; new Messages fixtures retain their producer names as declared source kinds and use the fixed system-message helper; recorded Session generations are unchanged by this regrouping.

Co-authored-by: Tianyi Cui <[email protected]>
2026-09-18 19:07:12 +08:00
Tianyi Cui 044cd4fb49 merge: integrate pinned master into session-log-v4 base
Merge master 01d96c168a84227374e3aa741e94ddfbb498e27e, observed when
this integration started, after the published 6de3db41 checkpoint. Keep
master's author history and preserve the release writer, adjacent
migrations, historical Session generations, and parent-owned catalogs.

Combine blank Session writer acquisition and superseded-startup
cancellation with the release branch's projection refresh and panel
preservation. A startup acquisition may finish after a later navigation,
but must not retain a stale main Session or reveal its Conversation.
Update the existing regression's retention expectation while preserving
its panel and active-navigation assertions.

Keep the release catalog loading, known-leaf, and parent availability
behavior alongside master's completed-turn status and aligned sidebar
icons. Regenerate the config locations and pair the combined README
contracts. Preserve upstream's Linux process-state assertion repair.
2026-09-18 18:21:47 +08:00
yixiangihsiang ae1cf3106b fix(web): polish work detail interactions 2026-09-18 17:46:32 +08:00
yixiangihsiang 5f90ac119e fix(web): refine live work disclosure presentation 2026-09-18 17:28:59 +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
lsdsjy a0c71e9f00 feat(ui-chat): add work details modes and keep retry rows separate 2026-09-18 17:25:36 +08:00
lsdsjy 0ce6ab6775 feat(ui-chat): reflect turn outcomes in process disclosure titles 2026-09-18 17:24:20 +08:00
lsdsjy b2296f5916 feat(ui-chat): show expanded turn timer from turn start 2026-09-18 17:23:52 +08:00
lsdsjy 97514daa23 feat(ui-chat): refine process titles and expose retry activity 2026-09-18 17:23:51 +08:00
ihsiang 669bc2036f Merge pull request #4545 from deepseek-harness/ihsiang/refine-web-review-subagent-status
feat(web): refine review and subagent status UI
2026-09-18 17:19:52 +08:00
Turtle 5c8933fbe3 fix(session): acquire blank Session writers before reuse (#4392)
* fix(session): keep blank session discovery local to each host

* fix(session): acquire blank writers before reusing sessions

* refactor(workspace): separate saved selection restoration from blank lookup

* fix(workspace): create after the selected blank writer is held

* test(web): align blank reload snapshot with current icons
2026-09-18 17:19:40 +08:00
creatixchu ba98bcbf08 test: refresh presentation guidance after review 2026-09-18 17:12:03 +08:00
yixiangihsiang a0c7299f8b feat(web): refine review and subagent status UI 2026-09-18 17:01:04 +08:00
creatixchu 13692e9179 test: refresh selective presentation prompt snapshots 2026-09-18 16:35:51 +08:00
Tianyi Cui c3cfe83d2e merge: update the session-log-v4 integration base from master
Merge a2acc7d3eb620bb52f09f7ea3b5a3a1c23353e18 after preserving the earlier
master checkpoint and its successful CI. Carry current provider input-history
handling, UI controls, agent targeting, and runner-concurrency changes into
the integration base without changing the Session migration feature layers.

Keep durable direct-child catalog semantics alongside the upstream running /
inactive vocabulary. Resolve the snapshot description conflicts by retaining
that upstream status text and the existing descendants-only diagnostic rule;
the source and all 53 JSON tool descriptions agree. Preserve parent-session
availability handling with the upstream stale-blank and batched-history fixes.

The merged application builds, all 41 documentation gates pass, and focused
provider, tool-control, and Session Controller tests pass (98, 29, and 125).
Recorded input changes come from master: one refreshed v3 list-agents sample
and three new v3 scenarios; no migration bumps an existing snapshot generation.
2026-09-18 15:52:56 +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
lsdsjyandlsdsjy 3e216c3d64 feat(ui-chat): add performance and usage display preference (#4478)
* feat(ui-chat): add performance and usage display preference

* fix(ui-chat): address performance preference review findings

* test(ui-chat): refresh Chinese turn footer snapshots

* docs(ui-chat): clarify completed-turn timing visibility

* test(ui-chat): capture preference failure screenshots

* fix(ui-chat): align performance preference with current icons

---------

Co-authored-by: lsdsjy <[email protected]>
2026-09-18 15:35:50 +08:00
creatixchu 04d0235673 Verify local file opening and address sidebar review findings 2026-09-18 15:31:50 +08:00
creatixchu 9e1635b6b6 Merge master and refresh sidebar file-opening integrations 2026-09-18 15:21:47 +08:00
Yichen Jiang 3e206546fd Merge pull request #4351 from deepseek-harness/worktree/fix-new-session-stale-blank
fix(web): reconcile stale blank session hints from projections
2026-09-18 15:17:11 +08:00
Yichen Jiang 27eec0a247 Merge remote-tracking branch 'origin/master' into worktree/fix-new-session-stale-blank
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/api/session-controller/src/client/sessions/manager.ts
#	packages/api/session-controller/tests/manager.client.spec.ts
2026-09-18 15:05:52 +08:00
Turtle 2099andTurtle f83800530c fix(web): recolor the plan chip and align it with the control row (#4399)
* fix(web): make the plan chip a business-accent control at row height

The chip borrowed the warn-state pair for a plain mode flag, so it read as
a warning, and its 2px vertical padding left it 4px shorter than the + and
select controls beside it. It now uses the business accent pair, takes the
row's 28px height, and carries Chinese copy; the unused chip.off.*
dictionary entries had no surface and are dropped.

* docs(web): re-record the plan chip README pair

* docs(web): state the plan chip's close glyph and drop stale copy claims

The READMEs described the chip without the × the component renders, and the
zh side still quoted the English accessibility string after this branch gave
the namespace its own Chinese one.

* test(web): pin the plan chip's accent tokens, height, and Chinese copy

The lifecycle-chrome lane asserted the chip's warn pair; it now asserts the
business pair plus the 28px row height, and a zh plan-active golden records
the 「计划」 label the chip shows under the Chinese locale.

* fix(web): color claimed command tokens with the business accent

The draft's claimed token still used the warn label color while the plan chip
moved to the business pair, so a claimed /计划 read orange above a blue chip.
The claim decoration and the tests asserting its inline style now use
state-business-primary.

* fix(web): keep the composer control row on one line at narrow widths

The fixed-width mode chips and send circle left the row's 12px gaps deciding
between a slack first line and a wrapped trailing group: beside the plan chip,
a long model name moved the model trigger and send circle to a second line
while the first line still had room. Narrow rows now use 8px gaps, which holds
the row together down to the icon-only model trigger.

* fix(web): drop the context ring in the narrow composer row

With plan mode on and a long model name, the 28px occupancy ring plus its gap
was what pushed the trailing group onto a second line. The ring yields at the
same row width that already hides the access-mode label, so the fixed controls
keep one line; the reading stays reachable from a wider window.

---------

Co-authored-by: Turtle <[email protected]>
2026-09-18 15:04:54 +08:00
_Kerman 8fe06cfb24 Merge pull request #3956 from deepseek-harness/xtr/tool-card-details
feat(web): render compact details for recorded tool results
2026-09-18 14:42:13 +08:00
Dudu-0223 cda99db4c0 docs: align remaining agent availability prose with the shipped vocabulary
Sync the pinned schedule-catalog tool-schema sidecar with the refreshed
list_agents, send_message, subagent, and subagent_fork descriptions; the
catalog e2e does not compare it, so the refresh missed it. Rewrite the
Agent Teams note's Steer sentence and the ownership-release limitation so
`idle` no longer appears where the roster vocabulary is running/inactive,
and fix the two-clause comma splice and a zh full-width spacing slip.
2026-09-18 14:29:35 +08:00