Commit Graph
1702 Commits
Author SHA1 Message Date
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
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
Tianyi Cui 1f8dd72bd9 Merge latest master into manual compaction 2026-07-31 18:28:21 +08: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 20cb7e7360 Merge latest master into manual compaction 2026-07-31 17:58:30 +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 2692d2fef7 Merge commit 'refs/codex/pr948/master-current' into worktree/retarget-pr948-current-20260731
# Conflicts:
#	README.i18n.yaml
#	scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-07-31 17:44:13 +08:00
Tianyi Cui 5210afb8f0 Merge pull request #1055 from deepseek-harness/feature/gui-welcome-copy-v2
feat(web): update the versioned internal testing notice
2026-07-31 17:30:44 +08:00
Tianyi Cui 26c5e18b14 fix(notices): validate SPDX expressions strictly 2026-07-31 17:16:37 +08:00
Tianyi Cui c7a04a10f9 fix(notices): derive first-party Python projects 2026-07-31 17:16:37 +08:00
Tianyi Cui 76e9bcbba0 fix(notices): parse Python manifests as TOML 2026-07-31 17:16:37 +08:00
NI0317 9f1d9196eb Merge remote-tracking branch 'origin/master' into feature/gui-welcome-copy-v2 2026-07-31 17:11:41 +08:00
NI0317 978f61f9e7 docs(onboarding): document telemetry opt-out 2026-07-31 17:05:30 +08:00
ZiyaZhang 7e929d3d50 feat(examples): add generic memory MCP overlays 2026-07-31 02:00:14 -07:00
Hypatia May a23a6bdd15 Merge origin/master into codex/status-bar-token-metrics
Resolve the agent-loop import conflict by retaining both durable request context and runtime policy context. Refresh the combined session fixtures and regenerate documentation catalogs. Mark PDF artifacts as binary so staged whitespace checks do not parse PDF bytes as text.
2026-07-31 16:53:03 +08:00
Tianyi Cui 7906c1032f Merge pinned master into status bar token metrics 2026-07-31 15:41:52 +08:00
Hypatia May 1114a80a45 Merge branch 'fix/web-transcript-projection' into feat/manual-compact-single-lock
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-07-31 15:36:49 +08:00
Hypatia May d67de808b0 Merge remote-tracking branch 'origin/master' into fix/web-transcript-projection
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 15:32:36 +08:00
NI0317 b9863e4c3a Merge remote-tracking branch 'origin/master' into feature/gui-welcome-copy-v2 2026-07-31 15:12:02 +08:00
NI0317 469dc8ffce Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 15:05:37 +08:00
NI0317 d3ff2c3653 docs(onboarding): update internal testing notice 2026-07-31 15:04:24 +08:00
NI0317 1b2f05d438 Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 15:04:11 +08:00
Turtle e8626a2baa Merge pull request #1044 from deepseek-harness/codex/fix-persistence-catalog-toc
fix(docs): index persistence events in page outline
2026-07-31 15:03:26 +08:00
ZiyaZhang 82c1788c25 docs: re-record the README pair and translation snapshot after the master merge 2026-07-30 23:07:02 -07:00
NI0317 8e7a36db01 test(web): publish welcome acknowledgement before browser boot 2026-07-31 13:59:29 +08:00
Ziya bdf59193d5 Merge branch 'master' into docs/third-party-notices 2026-07-31 01:59:04 -04:00
Turtle d4a93cbc1a fix(docs): index the full persistence outline 2026-07-31 13:47:51 +08:00
Turtle 50b98383de Merge remote-tracking branch 'origin/master' into codex/fix-persistence-catalog-toc 2026-07-31 13:43:11 +08:00
Turtle db1765c90e fix(docs): index persistence events in page outline 2026-07-31 13:43:03 +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
Tianyi Cui bb3d6a0de8 Merge latest master into Web transcript
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/src/client/index.ts
#	packages/client/runtime/src/client/sessions/conversation.ts
#	packages/client/runtime/src/client/sessions/session.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/MessageItem.module.css
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/src/client/chat/chat-flow.ts
#	packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx
2026-07-31 13:12:37 +08:00
Tianyi Cui fbf28700af Merge master into codex/sandbox-policy-context
# Conflicts:
#	apps/web/tests/snapshots/live-interactions/retry.expected.md
#	apps/web/tsconfig.json
#	tsconfig.host.json
2026-07-31 13:04:21 +08:00
imccyu 5afdb5c235 Merge remote-tracking branch 'origin/master' into mergebot/pr998
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 12:23:03 +08:00
ZiyaZhang 45e5317ecd fix(ci): stabilize merged coverage gates 2026-07-30 20:52:35 -07:00
ZiyaZhang 9095d3874a test: file the committed-manifest case under the parser it exercises 2026-07-30 20:45:12 -07:00
Tianyi Cui ef722cc14a Merge latest master into Web transcript 2026-07-31 11:39:49 +08:00
NI0317 e9cbfa153a docs: address README review 2026-07-31 11:18:49 +08:00
ZiyaZhang 45627bd93b fix(ci): tolerate initializing Lefthook lock 2026-07-30 20:17:04 -07:00
NI0317 05c4b916cb Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 11:05:02 +08:00
NI0317 4e1ccebfff Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context
# Conflicts:
#	examples/acp-agent/tests/goal-snapshots/goal-session/session.expected.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
#	examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
#	examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
#	examples/acp-agent/tests/snapshots/bash-tool-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
#	examples/acp-agent/tests/snapshots/cancel/session.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	examples/acp-agent/tests/snapshots/empty-response-retry/session.jsonl
#	examples/acp-agent/tests/snapshots/error-finish/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-edit/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-policy-reject/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-read-window/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-read/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-write-overwrite/session.jsonl
#	examples/acp-agent/tests/snapshots/fs-write/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-invalid-matcher/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-block/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-posttool-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-cc-stop-continue/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-invalid-matcher/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-block/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-posttool-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-pretool-block/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/session.jsonl
#	examples/acp-agent/tests/snapshots/hook-codex-stop-continue/session.jsonl
#	examples/acp-agent/tests/snapshots/lsp-definition/session.jsonl
#	examples/acp-agent/tests/snapshots/multi-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/packed-chunks/session.jsonl
#	examples/acp-agent/tests/snapshots/parallel-tool-calls/session.jsonl
#	examples/acp-agent/tests/snapshots/pty-tools/session.jsonl
#	examples/acp-agent/tests/snapshots/repeat-tool-guard/session.jsonl
#	examples/acp-agent/tests/snapshots/session-query-spill/session.jsonl
#	examples/acp-agent/tests/snapshots/session-sandbox-root/session.jsonl
#	examples/acp-agent/tests/snapshots/session-title-after-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/skill-load/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
#	examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-fork/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
#	examples/acp-agent/tests/snapshots/subagent-mixed/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
#	examples/acp-agent/tests/snapshots/subagent-multi/session.jsonl
#	examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
#	examples/acp-agent/tests/snapshots/subagent-spawn/session.jsonl
#	examples/acp-agent/tests/snapshots/text-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/todo-write/session.jsonl
#	examples/acp-agent/tests/snapshots/tool-call-turn/session.jsonl
#	examples/acp-agent/tests/snapshots/web-fetch/session.jsonl
#	examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
#	examples/acp-agent/tests/snapshots/workflow-run/session.jsonl
#	examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
#	examples/acp-agent/tests/snapshots/workspace-edit/session.jsonl
#	examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
#	examples/headless-agent/tests/snapshots/pty-tools/stream-json.expected.jsonl
#	examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
#	examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
#	examples/jsonrpc-agent/tests/snapshots/persistent-tools/notifications.expected.jsonl
#	examples/jsonrpc-agent/tests/snapshots/persistent-tools/session.jsonl
#	packages/core/agent-loop/src/agent.ts
2026-07-31 11:02:45 +08:00
NI0317 46515aec6c Merge remote-tracking branch 'origin/master' into feature/readme-current-capabilities 2026-07-31 11:00:05 +08:00
ZiyaZhang f13cef0148 test: re-record the translation prompt snapshot for the development.md edit 2026-07-30 19:59:02 -07:00
Hypatia May 3a99cf7446 Merge current master into status bar projection 2026-07-31 10:56:34 +08:00
ZiyaZhang 421594472a docs: evaluate SPDX conjunctions and read every Python manifest
Reject a copyleft conjunct in an expression like '(MIT OR Apache-2.0)
AND GPL-3.0-only', which a permissive-alternative search accepted.
Discover python/*/pyproject.toml by glob, accept single-quoted TOML
literals, and fail on a requirement whose name cannot be read. Say that
the development tier records who declares a package rather than what a
build bundles, since a runtime dependency can pull one in transitively,
and sync the contributor guide's pre-commit list.
2026-07-30 19:54:27 -07:00
ZiyaZhang 7b8fa8c510 Merge branch 'master' into docs/third-party-notices 2026-07-30 19:46:01 -07:00
Hypatia May 669acedcad fix(test): preserve invariant config failures 2026-07-31 10:41:44 +08:00
imccyu f850676785 Merge pull request #711 from deepseek-harness/codex/basic-session-search
Add basic past-session search
2026-07-31 10:33:53 +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