New docs/DSH_PLUGIN_COMPAT.md: feature-by-feature DeepSeek Harness 0.2.1-rc.2
plugin behavior versus Codewhale, with the landing commit for each verified
row (25225ef051 first-turn tools, 17ebeb5f61 sessions.flush + 409 install
conflict, fff5a476f9 userQuestions.ask), what is refused or unimplemented
(subagents, agents, systemPrompt, tools.get/restrict, rich output, plugin UI),
the WebRTC reason plugin UI stays off, and why the published code-review
plugin still cannot activate. Linked from docs/README.md.
Paths: docs/DSH_PLUGIN_COMPAT.md docs/README.md
Verified: relative links resolve (EXTENSIONS.md, INTEGRATIONS_DSH.md). Docs
only; no code or registry change.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adds docs/PET_MODE.md (and docs/zh_hans/PET_MODE.md): per-terminal whale
status, F5/inspect, multiple terminals vs the shared companion and its
source, commands, sound, fallbacks, privacy and known limitations (no
reply-ready cue; inspector agent rows refresh at turn end). Points the
pet feature row and the docs indexes at it. feature_registry was read, not run.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
One integrated slice of the 0.10.2 release work, three-way merged onto
64bb073a4. User-visible changes (details and per-item evidence in CHANGELOG.md):
- MCP: user-configured servers connect in the background at session start
(`lazy = true` opts out, `required` still blocks, plugin-contributed servers
stay on demand); a finished OAuth login reconnects that one server;
`/mcp reload` redials every non-lazy server; the reload summary reports a
not-connected count and the configured total.
- #6944: bash promotes itself to the background after 30 s with elapsed time,
last-output age and a cargo-shaped phase hint; kills say how far it got;
task_shell_start is removed in favour of one background path.
- #6931: a live shell inspector (cwd, owner, state, bounded output, stop);
Alt+V opens the newest running shell when nothing is selected; dock rows
share the formatter.
- #6470: entering Full Access asks first (session by default, per-repo opt-in
full_access_repos), chip text carries the scope, permission changes are
receipted in the transcript and as a runtime status item; a saved
full-access posture migrates to Ask once. Runtime API: PATCH into Full
Access without full_access_confirmation is a 400 (documented).
- Daytona and Sprites are gone from the engine: own-sandbox dispatch
(`--own-sandbox`, `/dispatch`, `agent runtime:"cloud"`, cloud-agent alias),
cloud_dispatch.rs, dispatch_runner.rs, cloud_proposal.rs, computer_meter and
the computer-use Sprite task-hold are deleted (archived in
codewhale-hq/codewhale-sandboxes b68803e); logout sweeps a stored legacy
sandbox token. `codewhale dispatch` is account-only, requires an actionable
or queued intent, prints the Message ID, and prompts only when stdin and
stdout are terminals. The CLI never prints a code or prose naming the VM
vendor or retired providers.
- CW-7167: a keyless first launch opens on the composer; the first send opens
the provider picker with the draft kept; the first-run picker shows the typed
filter (CW-7170). A local runtime is offered only when Ollama answers.
- QA fixes: unknown --profile and a missing explicit --config fail loudly, -C
on a missing directory errors, `codewhale web` works under a root-owned
symlinked HOME ancestor (user-controlled symlinks are still rejected),
`/exi` Enter fills instead of running destructive commands, Shift+Tab hint
stays in Auto/Full Access, a crashed session shows an interrupted marker,
help/exit-code fixes, README exec examples, zh docs. #6728: the pet owner
stops building frames while nobody views.
- Credit: @xiaoray-blip (0.9.8) and @xyzs996 (0.9.11) added to AUTHOR_MAP,
CONTRIBUTORS and the CHANGELOG; 0.9.9 placement for @Lstarsky0 and
@SparkofSpike.
Evidence (2026-10-10, local only, on this exact tree):
- cargo clippy --workspace --all-targets --all-features --locked with CI's
flags: exit 0.
- cargo nextest run --workspace --locked: 18981 tests, 18978 passed, 3 failed;
the three are tools::test_runner::tests::* (environment-only: nested cargo
inherits this machine's build-dir wrapper; they pass in CI).
- scripts/check-dead-code-budget.py PASS 221; check-blocking-calls-budget.py
within budget (537 sites; private_directory.rs records one canonicalize and
one std_fs: sync startup path resolution, not on the async runtime);
check-command-crate-boundaries.py PASS; module_graph.py --check PASS;
check-contributor-credit.py v0.10.1 clean; check-versions.sh OK (0.10.2).
- cargo fmt --all -- --check clean. Conformance goldens regenerated for the
tool-catalog change (task_shell_start removed, bash description).
Not verified: hosted CI on this commit, a real-TTY run of composer-first
launch, MCP default connect, the shell inspector and the Full Access modal,
bwrap on Linux, a real provider turn, the live ChatGPT sign-in (#6925), a real
dispatch against the account service, and re-measuring
runtime-contract-budget on Linux.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Slice 1 of the feature registry design: one hand-edited registry of user
features, cross-checked against the code. No generated docs yet.
- docs/features.toml: 52 rows (id, name, summary, status, surfaces, since,
flag, docs, owner), each owner/docs path checked against the tree. All 10
[features] flags have exactly one row. `since` is filled only where
verified (flag rows by the first git tag carrying the key; receipts and
extension_host from the 0.10.1 release commit); the rest stay unset until
backfilled. Desktop rows/surfaces and planned app/ops items are left out
because codewhale-app is private.
- crates/tui/tests/feature_registry.rs: flag parity (every FEATURES key owned
by exactly one row), status derived from stage/default, docs/owner paths
exist, since is "unreleased" or a CHANGELOG heading, id/summary/surface
vocabulary; plus a negative fixture proving each check fires.
- Drift fixed: CONFIGURATION.md [features] now lists verify_tool,
vision_model and extension_host (+ an extension_host paragraph);
config.example.toml lists code_mode; EXTENSIONS.md linked from
docs/README.md and the web docs map (plugins topic); public-surface-facts
no longer says "released v0.9.11 providers"; PR template and AGENTS.md
point at the registry.
Evidence:
- cargo test -p codewhale-tui --test feature_registry: 6 passed, 0 failed
(2 registry tests + 4 features.rs unit tests included via #[path])
- rustfmt --edition 2024 --check crates/tui/tests/feature_registry.rs: clean
- web: node scripts/check-docs.mjs PASS; vitest docs-ia, docs-navigation,
llms-txt, search-utils, docs-tasks, public-surface-contract: 69 passed
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_014ZwqatxgVFxHvovngywnks
- README.md + 18 localized READMEs: drop the private-repo reference (and its
"codehwhale-gpui" typo) and the superseded "web app sunsets" wording; the
hosted web app is rebuilt in the desktop app's image (2026-09-18 amendment).
"All documentation" now links docs/README.md. Source stamps refreshed.
- docs/README.md: new index covering every top-level doc.
- /constitution is canonical: /docs/constitution permanently redirects there,
drops out of the sitemap, and the docs-map topic resolves via sitePath.
The constitution page no longer links to the redirecting docs URL.
- docs-computers (en): resolve "provider brands stay internal" contradicting
the Daytona naming on the same page.
Checks run:
- python3 scripts/check-readme-translations.py: OK, 18 translations in sync
- scripts/check-readme-locales.sh: PASS
- npm run check:docs: PASS (23 topics)
- npx vitest run docs-ia: 1 file, 18 passed, 0 failed
- npx vitest run public-copy dictionaries llms-txt: 3 files, 33 passed, 0 failed
- npx tsc --noEmit: 0 errors
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>