Commit Graph
6028 Commits
Author SHA1 Message Date
Tianyi Cui 0290a3e1c0 Merge latest origin/master into feat/tui-package
Master advanced with PR #375's documentation-only simplification RFCs while the TUI merge was validating. Incorporate that exact head as a merge commit so PR #363 retains current-base ancestry without rewriting its reviewed history; no TUI behavior or generated terminal artifact changes are involved.
2026-07-19 11:41:55 +08:00
Tianyi Cui 39c1c3df4f Merge remote-tracking branch 'origin/master' into codex/pr335-merge-master-20260719
# Conflicts:
#	packages/support/acp-snapshot/README.md
#	packages/support/acp-snapshot/src/harness.ts
#	packages/support/acp-snapshot/src/suite.ts
#	packages/support/acp-snapshot/tests/harness.spec.ts
#	packages/support/acp-snapshot/tests/suite.spec.ts
2026-07-19 11:41:10 +08:00
Tianyi Cui 85fc58943e docs(session-persistence): tighten SQLite permission prose 2026-07-19 11:37:41 +08:00
Tianyi Cui c06e6bea0b Merge origin/master into feat/tui-package
Master unifies every live agent with its exact SessionId and moves declarative startup failures to agent-loop/config-start-failed. Keeping the branch’s AgentId label binding would let the TUI target the wrong lifecycle after reload and would miss asynchronous resume failures.

Resolve that contract migration by giving the selected terminal front door the same generated or resumed SessionId as agent-core, mounting the front door first, and entering fullscreen only after the matching root appears. Refresh the source-derived catalogs and keyless terminal goldens so Code Mode, workflow, Cordis-tool, and transient UI scenarios all exercise the merged identity model.
2026-07-19 11:37:14 +08:00
Tianyi Cui 765dfb2174 refactor(session): use one surface manager 2026-07-19 11:36:07 +08:00
Tianyi Cui 7ba5b95d8e Merge remote-tracking branch 'origin/master' into worktree/fix-sqlite-file-permissions 2026-07-19 11:32:58 +08:00
NI0317 96076606df polish(ui): apply ui-skills audit across a11y, motion cost, and numerics
fixing-accessibility: expandable rows expose aria-expanded/controls, user
messages become keyboard-operable buttons, pane dividers and the composer
gain accessible names, the live status row announces politely, the busy
form sets aria-busy, feedback failures render inline next to the form,
and the muted/faint text tiers rise to AA-viable contrast.

fixing-motion-performance: composer autosize moves to CSS field-sizing
(dropping the per-keystroke measure/write cycle) and streaming scroll
writes coalesce per frame while direct user actions stay synchronous.

baseline-ui: data columns use tabular numerals, headings balance and
prose wraps pretty, and z-index joins the token scale.

improve-ui: straggler radii and control heights land on the declared
size scale (radius-xs joins the ramp).

fixing-metadata: the document language follows the active locale.
2026-07-19 11:32:07 +08:00
NI0317 74390bca0a fix(ui): never reuse a stale live-turn skeleton and poll lagging traces
A finished turn whose persisted JSONL had not flushed yet left the live
turn on screen; the next prompt then patched its content into the stale
skeleton, so the new message rendered under the previous user bubble.
Key each live turn and rebuild the skeleton on mismatch, and poll the
persisted trace after a lagging read so the conversation converges
without waiting for a user action. Module nav rows also collapse to one
line at the primary-action control height.
2026-07-19 11:22:48 +08:00
Tianyi Cui 383a305bd4 Merge pull request #375 from deepseek-harness/codex/simplification-rfc-followups
docs: propose follow-up simplification RFCs
2026-07-19 11:22:22 +08:00
Tianyi Cui bca7401513 docs: retain rejected compaction RFC 2026-07-19 11:12:26 +08:00
NI0317 de9190accc fix(ui): render the empty-state guide on first boot with no sessions 2026-07-19 11:10:21 +08:00
Tianyi Cui 8941600273 docs: expand simplification RFC implementation plans 2026-07-19 10:59:23 +08:00
Tianyi Cui 76db4efe49 Merge remote-tracking branch 'origin/master' into codex/simplification-rfc-followups 2026-07-19 10:53:23 +08:00
Tianyi Cui 9c6eb2b6b2 Merge pull request #301 from deepseek-harness/codex/simp-name-front-door-defaults
refactor: name front-door defaults
2026-07-19 10:51:54 +08:00
Tianyi Cui e8ea0c3b7e test(tui): make cwd coverage location-independent
formatCwd has distinct branches for the home directory itself, a descendant of home, an unset cwd, and a path outside home. The descendant branch was exercised only indirectly because the test harness defaulted to process.cwd(), so the per-file coverage gate changed with the checkout location and failed in detached worktrees under /private/tmp even though every behavior assertion passed.

Derive the home-root case from homedir() and add an explicit synthetic child with platform-aware path joins. Keep the unset and outside-home cases unchanged. The suite now drives every formatting branch regardless of where the repository is checked out, and the expected child form follows the host path separator on macOS, Linux, and Windows.
2026-07-19 10:51:20 +08:00
Tianyi Cui b5e8e4e9c1 fix(tui): neutralize terminal controls at display boundary
Model responses, replayed session data, tool presenter output, question metadata, configuration, and diagnostics all cross into ANSI-aware pi-tui renderers. Passing their C0 or C1 controls through unchanged lets an otherwise ordinary transcript emit OSC, CSI, cursor, or title operations in the user terminal.

Introduce one displayText boundary that preserves line-feed layout but renders every other C0/C1 control as visible \\xNN text before application styling is applied. Route transcript blocks, streaming output, tool cards, diffs, plans, dialogs, headers, cwd/title data, notices, errors, and pre-mount startup failures through that boundary while leaving pi-tui and the theme responsible for legitimate terminal control sequences.

Pin the contract at three levels: a settled headless-terminal golden spans the main untrusted display sources, unit coverage checks the pre-fullscreen failure path, and the real Loader/PTY conversation streams hostile OSC, cursor, and C1 probes and proves only their inert textual forms reach the terminal stream.
2026-07-19 10:50:19 +08:00
Tianyi Cui 0c911172e9 docs: drop rejected compaction RFC 2026-07-19 10:45:04 +08:00
Tianyi Cui 706dbe5a11 Merge remote-tracking branch 'origin/codex/simp-name-front-door-defaults' into codex/simplification-rfc-followups 2026-07-19 10:43:34 +08:00
Tianyi Cui 202da55bf2 Merge remote-tracking branch 'origin/master' into codex/simp-name-front-door-defaults 2026-07-19 10:41:41 +08:00
Tianyi Cui 7720ab27a7 Merge pull request #288 from deepseek-harness/codex/simp-hide-subagent-internals
refactor: hide subagent implementation helpers
2026-07-19 10:41:07 +08:00
Tianyi Cui 29f7668e18 Merge remote-tracking branch 'origin/master' into codex/simp-hide-subagent-internals 2026-07-19 10:36:48 +08:00
Tianyi Cui 2a0a82580c Merge pull request #287 from deepseek-harness/codex/simp-hide-concrete-agent-loop
refactor: hide the concrete agent loop
2026-07-19 10:36:23 +08:00
Tianyi Cui 6c5b276b95 Merge remote-tracking branch 'origin/master' into codex/simp-hide-concrete-agent-loop 2026-07-19 10:30:49 +08:00
Tianyi Cui 826da2d0aa Merge pull request #286 from deepseek-harness/codex/simp-ui-identity-residue
refactor: simplify UI identity routing with explicit subagent provenance
2026-07-19 10:29:35 +08:00
ZiyaZhang ed6678f51e fix(desktop): compact artifact rows + auto-group 2026-07-18 14:01:11 -07:00
ZiyaZhang 69687895fa docs(desktop): land final walkthrough recording
Adds the 3.6 MB take-3 walkthrough mp4 that README already references
via a poster image, and replaces the "coming in a follow-up commit"
placeholder line with a real link (poster now click-through to the
video, caption points at the same file).

Path: examples/desktop/docs/demo-shots/showcase-2026-07-18/
demo-walkthrough.mp4

No source or config changes; the shell tree from a3ca492a is byte-
identical to what it was, this commit just fills in the recording
slot the previous docs commit deferred.
2026-07-18 13:12:00 -07:00
ZiyaZhang 03827a2156 docs(desktop): pages & features guide + Quick Start
Expanded README landing page for first-time cloners: Pages & Features
guide walks through each of the 14 UI surfaces (chat, trace timeline,
subagent panel, context surface, rubrics, plugins, compaction, budget,
etc.) with 2-4 sentences on what each page shows and why it exists.
Feature highlights section lists 10 concrete affordances a plugin
author or researcher would want to know are there.

Quick Start rewritten for the cold-clone path:
- two-step pnpm install (repo root for tsx, then examples/desktop for
  Electron) — resolves the P0-5 install failure a fresh clone hits
- HARNESS_DEV layouts documented: in-repo (default when cloning
  deepseek-harness), sibling deepseek-harness-dev/ (original dev
  workflow), DSH_DEV_ROOT env (custom layouts)
- .env locations described relative to the runtime root rather than
  hardcoded paths
- Profiles table reordered with stdio-echo first (keyless, works on
  master); daemon-echo and daemon-vibe-echo marked 'Not yet available
  on master' with a note pointing at the integration worktree

Facts-only tone; the only referenced assets are 01-overview.png,
03-chat.png, and video-poster.png in docs/readme-shots/ — all present
in the release tree.
2026-07-18 12:59:50 -07:00
ZiyaZhang e8f5c0b51b feat(desktop): DSH Electron desktop shell — harness internals visualized
Minimal Electron shell over the DSH JSON-RPC runtime — a first-look at
what a ChatGPT.app-style host on top of the DeepSeek Harness looks
like, with the harness's normally-invisible internals (trace timeline,
context surface, subagent tree, compaction, plugin registry, rubrics)
brought forward as first-class UI surfaces so plugin authors and
researchers can see what the agent is actually doing.

Runs against three keyless-to-live profiles (stdio-echo works on
master out of the box; daemon-echo / daemon-vibe-echo activate once
the daemon-demo lands; stdio-deepseek and daemon-vibe hit the real
DeepSeek API when you supply a key). HARNESS_DEV auto-resolves to the
in-repo runtime when this shell ships under examples/desktop/, so a
fresh clone launches without config; env DSH_DEV_ROOT overrides for
custom layouts, and a sibling deepseek-harness-dev/ checkout is the
original dev workflow.

Cold-clone gate (P0 fixes for first-time-clone usability):
- HARNESS_DEV: 3-candidate resolver (env → walk-up in-repo marker →
  sibling), unit-tested via mock fs so ordering is locked without
  needing either real layout on disk.
- config yml leaves rewritten at assemble time so the sibling-clone
  paths (../../deepseek-harness-dev/examples/echo-agent/…) become
  the in-repo paths (../../echo-agent/…) in the released tree —
  source yml stays usable for local dev, released tree ships a
  working shape.
- pnpm-workspace.yaml allowBuilds.electron = true (was placeholder).
- missing-key card in stdio-deepseek offers a one-click switch to
  stdio-echo (the keyless profile that works on master) rather than
  daemon-echo (blocked on the not-yet-shipped daemon-demo).
- assemble-oss-release.sh rewrites the source-side breadcrumb name
  'dsh-desktop-demo' → 'dsh-desktop' for the released package.json.

FOUC guard on the onboarding gate (41fc5df carried) keeps the
first-launch splash from flashing before the runtime probe finishes.

Test suite (1634 tests in source, 3990 in the runtime repo) covers
resolver ordering, renderer classifiers, trace timeline shape,
compaction diff rendering, rubric parity, and the missing-key
onboarding paths.
2026-07-18 12:59:34 -07:00
Tianyi Cui 4851d95704 docs: propose follow-up simplification RFCs 2026-07-19 03:49:18 +08:00
Tianyi Cui 83d041568d Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 03:18:04 +08:00
Tianyi Cui 8afe11e1ff Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 03:18:04 +08:00
Tianyi Cui c306f4e25d Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 03:18:04 +08:00
Tianyi Cui 57b81e52f9 Merge remote-tracking branch 'origin/master' into codex/simp-ui-identity-residue 2026-07-19 03:17:45 +08:00
Tianyi Cui 67053d1cf6 Merge pull request #285 from deepseek-harness/codex/simp-unify-agent-session-id
refactor: unify agent and session identity
2026-07-19 03:17:13 +08:00
Tianyi Cui f72c8f7b50 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 03:13:35 +08:00
Tianyi Cui b40c30501e Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 03:13:35 +08:00
Tianyi Cui 363e46ca6a Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 03:13:35 +08:00
Tianyi Cui 78f5d181ab Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-19 03:13:35 +08:00
Tianyi Cui b1f453afa8 Merge remote-tracking branch 'origin/master' into codex/simp-unify-agent-session-id 2026-07-19 03:11:49 +08:00
Tianyi Cui 01ec1a5e5f Merge pull request #284 from deepseek-harness/codex/simp-agent-entry-state
refactor: remove agent entry mirror
2026-07-19 03:11:25 +08:00
Tianyi Cui 969f58ee5d Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 03:04:20 +08:00
Tianyi Cui 438e67225f Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 03:04:20 +08:00
Tianyi Cui c1f7b8bd0f Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 03:04:20 +08:00
Tianyi Cui 896ac6219b Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-19 03:04:19 +08:00
Tianyi Cui 5767a8d467 Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-19 03:04:19 +08:00
Tianyi Cui 1e4de0deaa fix(sdk): pin generated project build tool 2026-07-19 03:02:42 +08:00
Tianyi Cui 2288a9f264 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 02:55:05 +08:00
Tianyi Cui 90e8ef1e9a Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 02:55:05 +08:00
Tianyi Cui 9d3f9b5274 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 02:55:05 +08:00
Tianyi Cui b84a7b2bd8 Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-19 02:55:05 +08:00