Commit Graph

2611 Commits

Author SHA1 Message Date
Turtle 2f92cb7b3c Merge remote-tracking branch 'origin/master' into feature/installer-adopt-checkout
# Conflicts:
#	README.i18n.yaml
2026-07-31 23:52:11 +08:00
Turtle c435350561 docs(install): the path bug is symlinks, not /var
The comments and Agent Note blamed macOS resolving /var through
private/var. That is only how the mismatch surfaced in temp fixtures, since
mktemp hands back a /var path there.

The real condition is broader: Git always reports resolved paths, so
comparing one against an unresolved path disagrees whenever a symlink sits
anywhere above the checkout. A symlinked home directory alone triggers it —
reproduced with no /var involved — which is common wherever homes live
behind a symlink or on a network mount.

Naming the cause correctly keeps a reader from dismissing resolve_dir as
macOS-only defensiveness.
2026-07-31 23:47:58 +08:00
Turtle db432c1e74 fix(install): correct a false claim about shell assignment semantics
Review flagged the resolve_dir comment: it claimed `x=$(cmd) || fallback`
never fires "because the assignment succeeds even when the substitution
fails." That is wrong — command substitution propagates exit status and the
fallback does fire, confirmed in sh, bash, dash, and zsh.

Reproducing the original code shows the fallback also worked, so the second
"recurrence" the Agent Note described never existed. Both real defects were
the same one: comparing a resolved path against an unresolved one. The note
now says that instead of inventing a mechanism.

resolve_dir keeps its `|| printf` because it makes every caller a plain
assignment, so no site can compare against an empty path by forgetting its
own fallback — the reason is now stated accurately.

Also from review: REPO_COMMON is now resolved on both branches, matching
REPO_ROOT, and _repo_root notes why it is already physical without its own
resolve_dir call.
2026-07-31 23:40:40 +08:00
Turtle f3a1ff41b7 cleanup(install): drop the master.path record
Nothing read it. The launcher, dsh-upgrade, and the installer's own re-run
all ignored the file, and the diagnostic it was meant to feed was never
built, so it was write-only state.

Git already owns the fact it recorded: a staging worktree's .git file names
the repository path, and `git worktree list` in that clone enumerates every
worktree depending on it. An installer-written copy only adds state that can
go stale while nothing validates it.

The containment caveat it documented is real and stays in the script header
and the Agent Note, now pointing at git's own records.
2026-07-31 21:17:28 +08:00
kingwl 32a0e871b7 fix(web): preserve queue on stop 2026-07-31 20:51:05 +08:00
Turtle 00c5f2abd1 refactor(install): always adopt, dropping the link-in-place path
Retaining link-in-place behind a prompt and DSH_ADOPT kept the divergent
install shape that this change exists to remove, and cost a flag, a prompt,
a dirty-tree warning, a no-commit fallback, and a second linking path.

In-repo mode now adopts unconditionally. A dirty tree adopts silently:
`worktree add` from HEAD cannot carry uncommitted work, so a prompt only
adds a decision the user cannot act on differently.

The original reason for link-in-place — keeping the script testable against
local source — survives adoption, since the staging worktree branches from
the checkout's HEAD and runs the same code. DSH_SOURCE remains the escape
hatch for installing a separate tree.

Net 47 fewer lines in the installer.
2026-07-31 20:31:30 +08:00
Turtle 631510f54e feat(install): adopt an existing checkout into the managed layout
Running scripts/install.sh from a checkout linked `dsh` straight at that
checkout, producing an install that `dsh-upgrade` cannot upgrade (there is
no `current` to repoint), that dangles if the checkout moves, and whose
launcher resolves to an arbitrary working branch.

In-repo mode still never clones and never touches the working tree, but it
now offers to adopt the checkout, and adoption is the default. The container
owns staging worktrees and `current`; the repository is discovered via
`git rev-parse --git-common-dir` rather than owned, so a clone anywhere on
disk converges on the same upgradable layout as a curl install and both
share one worktree/exclude/lock/link sequence.

Declining, or DSH_ADOPT=0, keeps the previous link-in-place behavior with a
warning naming what it costs, preserving the path that makes this script
testable against local source.

All path comparisons run on physical paths: macOS resolves /var through a
symlink to /private/var, and comparing a resolved path against an unresolved
one misclassified an existing managed install as a foreign clone.

Verified manually (no install.spec.ts, per request) with a harness driving
the real script under a stubbed pnpm across 33 assertions, plus both
interactive outcomes under tmux.
2026-07-31 20:22:40 +08:00
Turtle dc88440dad Merge remote-tracking branch 'origin/master' into codex/experimental-cli-command-names
# Conflicts:
#	apps/cli/README.i18n.yaml
#	packages/ui/tui/README.i18n.yaml
2026-07-31 20:18:15 +08:00
Turtle 60a0bcd358 feat(cli): mark meta and upgrade commands experimental 2026-07-31 20:16:19 +08:00
Tianyi Cui e1eb581f2b Merge pull request #1018 from deepseek-harness/feature/tui-first-run-welcome
feat(tui): add versioned first-run welcome
2026-07-31 20:08:56 +08:00
Tianyi Cui 76f3b402e1 Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731 2026-07-31 19:48:14 +08:00
imccyu 23ee31efc0 Merge branch 'master' into fix/remove-badge 2026-07-31 19:47:55 +08:00
Tianyi Cui d64b032311 Merge pull request #1082 from deepseek-harness/worktree/fix-web-duplicate-folder-names-20260731
fix(workspace): allow same-basename folders in Web
2026-07-31 19:37:38 +08:00
07akioni 410a837e02 Merge remote-tracking branch 'origin/master' into fix/remove-badge 2026-07-31 19:33:01 +08:00
Tianyi Cui e0cedd16b8 Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731 2026-07-31 19:25:27 +08:00
Tianyi Cui 7d04e4654a Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731
# Conflicts:
#	apps/cli/README.i18n.yaml
#	packages/ui/tui/README.i18n.yaml
2026-07-31 19:23:34 +08:00
Ziya 9b1486f90f Merge pull request #1078 from deepseek-harness/fix/web-turn-error-surface
fix(web): surface terminal turn failures
2026-07-31 07:23:09 -04:00
Tianyi Cui 2abf643326 Merge pull request #1040 from deepseek-harness/feat/recommended-deployment-presets
feat(cli): even out the shipped tool rosters across both surfaces
2026-07-31 19:21:18 +08:00
07akioni 94a600eddd Merge branch 'master' into fix/remove-badge 2026-07-31 19:19:55 +08:00
Tianyi Cui 3aa98ba609 Merge remote-tracking branch 'origin/master' into worktree/pr1018-todo-retarget-20260731
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
2026-07-31 19:17:50 +08:00
hypatiamay dcc9e50f84 Merge pull request #1026 from deepseek-harness/feat/compaction-progress-visibility
feat(tui): show live compaction progress
2026-07-31 19:17:43 +08:00
Tianyi Cui c16e33d8db Merge latest master into feat/recommended-deployment-presets
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/web/tsconfig.json
#	tsconfig.host.json
2026-07-31 19:16:05 +08:00
07akioni 1766461947 Merge remote-tracking branch 'origin/master' into fix/remove-badge 2026-07-31 19:13:22 +08:00
Ziya 9473951c79 Merge branch 'master' into fix/web-turn-error-surface 2026-07-31 07:13:02 -04:00
07akioni f9dc4aa702 feat: remove "插话" badge displayed in user message 2026-07-31 19:12:16 +08:00
hypatiamay 57761539b4 Merge pull request #989 from deepseek-harness/feat/manual-compact-single-lock
feat(compact): add queued manual /compact
2026-07-31 19:10:48 +08:00
Ziya 4f13ce7b7f Merge branch 'master' into fix/web-turn-error-surface 2026-07-31 07:07:05 -04:00
creatixchu 404c58717a Merge remote-tracking branch 'origin/worktree/hero-blank-session-settling' into worktree/hero-blank-session-settling 2026-07-31 18:43:37 +08:00
Tianyi Cui ce04a85d80 Merge origin/master into same-basename workspace fix
# Conflicts:
#	packages/client/ui-workspace/README.i18n.yaml
2026-07-31 18:42:20 +08:00
CreatixChu e18efd3375 Merge branch 'master' into worktree/hero-blank-session-settling 2026-07-31 18:39:38 +08:00
Tianyi Cui 678ad97f9a Allow same-basename Workspace paths 2026-07-31 18:37:34 +08:00
creatixchu a4d88a98ee doc(agent-notes): widen the settling-exemption note to the shipped condition 2026-07-31 18:37:08 +08:00
Tianyi Cui 1c1a65f208 Merge origin/master into feat/recommended-deployment-presets
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/package.json
#	pnpm-lock.yaml
2026-07-31 18:32:24 +08:00
Tianyi Cui 1f8dd72bd9 Merge latest master into manual compaction 2026-07-31 18:28:21 +08:00
Tianyi Cui 54242bef1c Merge latest master into manual compaction 2026-07-31 18:26:40 +08:00
Tianyi Cui e9c040894f fix(cli): align shipped composition contracts 2026-07-31 18:25:03 +08:00
Ziya 05608d9098 Merge branch 'master' into fix/web-turn-error-surface 2026-07-31 06:19:46 -04:00
Tianyi Cui ba43750e68 Merge pull request #1070 from deepseek-harness/agent/memory-mcp-examples
feat(examples): add generic MCP memory examples
2026-07-31 18:18:21 +08:00
Tianyi Cui 5d87f8b291 Merge latest master into manual compaction 2026-07-31 18:11:53 +08:00
ZiyaZhang 215bf15f78 fix(web): surface terminal turn failures 2026-07-31 03:10:48 -07:00
Tianyi Cui 21163711ea Merge origin/master into worktree/core-web-minimal-profile 2026-07-31 18:10:48 +08:00
creatixchu 42ca5cd31c Merge remote-tracking branch 'origin/master' into worktree-session-hover-menu-fix
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.zh.md
2026-07-31 18:00:02 +08:00
Tianyi Cui 20cb7e7360 Merge latest master into manual compaction 2026-07-31 17:58:30 +08:00
creatixchu be7bf9d426 doc(agent-notes): record the blank-session settling exemption 2026-07-31 17:57:13 +08:00
Tianyi Cui 6e26f9fd83 Merge latest master into manual compaction
# Conflicts:
#	apps/cli/README.i18n.yaml
#	docs/architecture.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/compact/compact-basic/README.i18n.yaml
#	packages/pty/pty-local/tests/index.spec.ts
2026-07-31 17:57:11 +08:00
Tianyi Cui 43a1c0bd8f Merge branch 'master' into worktree/core-web-minimal-profile 2026-07-31 17:57:09 +08:00
creatixchu 31e467e744 Merge remote-tracking branch 'origin/master' into worktree-session-hover-menu-fix
# Conflicts:
#	apps/web/tests/workspace-management.e2e.ts
#	packages/client/ui-workspace/README.i18n.yaml
2026-07-31 17:56:06 +08:00
Chinesezjc bcb474d13e Merge pull request #1066 from deepseek-harness/feat/web-cards-toolrow
refactor(web): collapse every card tool row through one ToolRow
2026-07-31 17:54:38 +08:00
Tianyi Cui d03927f69b Merge branch 'master' into worktree/core-web-minimal-profile 2026-07-31 17:52:08 +08:00
Ziya 4814008ca0 Merge pull request #948 from deepseek-harness/docs/third-party-notices
docs: add THIRD_PARTY_NOTICES.md disclosing third-party dependencies
2026-07-31 05:51:57 -04:00