Release docs for **paperclip v2026.722.0** (window `v2026.720.0 → v2026.722.0`; 256 changed parent files, 60 commits, diff window clean — 0 truncated leaves). Nothing here goes live until this PR is merged to `main`. ## Surfaces authored this run | Surface | Docs | Parent PR | |---|---|---| | **Run-bound agent secret access** — `access.`-prefixed / `api` delivery mode; `GET /api/agents/me/secrets`, `POST /api/agents/me/secrets/:key/value` (`Cache-Control: no-store`) | `api/secrets.md`, `api/agents.md` | #9921 | | **Local agents run natively on Windows** (ACPX, no Bash wrapper; env via session options; `.cmd` shim; symlink→copy on EPERM) | `adapters/acpx-local.md` | #9980 | | **`PAPERCLIP_*` bindings flow through**; only `PAPERCLIP_API_KEY` rejected (override removed); `DO_NOT_TRACK` / `PAPERCLIP_TELEMETRY_DISABLED` opt-out | `deploy/environment-variables.md` | #9974, #9946, #9906 | | **Safer `CODEX_HOME` sandbox sync** — explicit allowlist, not whole home | `adapters/codex.md` | #9972 | | **Plugin SDK** environment-sync exports + `onEnvironmentSyncIn/Out` hooks | `reference/plugins/sdk.md` | — | | **CLI `company export --force`** | `reference/cli/company.md` | — | | **Connections v3 (Apps)** experimental foundation — `remote_http`→`mcp_remote`, `connection_grants`, AppDefinition catalog | `experimental/connections-apps.md` (new) | #9958, #9981, #9982 | Riding along from earlier nightly drafts (part of this release): secret folders (`administration/secret-folders.md`), searchable agent picker, cloud-managed bootstrap gate (`api/instance-admin.md`). ## Verification All authored claims verified against parent code at tag `v2026.722.0` (`verify-edit`): **0 high-confidence unverified**. `docs:build`, `sync:lint-links`, and `sync:verify-nav` all pass. Frontmatter stamped `paperclip_version: v2026.722.0`. The 2 nav orphans (`cli/commands.md`, `cli/control-plane-commands.md`) are the intentional redirect anchors. ### ⚠ Drift (all resolved as false positives — no action) `sync:check-drift` flagged 4 `rest-route-missing` candidates: - `GET /api/agents/me/secrets` and `POST /api/agents/me/secrets/{key}/value` (in `api/agents.md` and `api/secrets.md`). These are the **new** routes this PR documents. The flags fire because the drift checker searched a stale `last_seen` sha and REST-route matching is medium-confidence (router-prefix registration hides the literal). Both routes were verified verbatim against `server/src/routes/secrets.ts` at tag `v2026.722.0`. No change needed. One `verify-edit` env-var flag (`PAPERCLIP_CLOUD_PROD_PROVIDER_RAILWAY_TOKEN`) is the release-note **illustrative example** of a user-chosen name, framed in prose as "for example a secret called …" — not a real product variable. No change needed. ### ↻ Renames detected None. ### ⚠ Reconcile None. ## Screenshots See `SCREENSHOTS_PENDING.md`. 13 unique captures (×2 light/dark) are genuinely stale — mainly agent-config surfaces (`AgentConfigForm.tsx` gained the Secret access editor) and secrets. Net-zero `+0/-0` UI touches were filtered out. Not auto-captured — recapture via `npm run screenshots:refresh` goes to a separate review PR. The new `secret-folders.md` and `connections-apps.md` pages have no captures yet. ## Post-merge (squash-only repo) After squash-merging, run `node scripts/sync/realign-nightly.mjs release/v2026.722.0 --push` and bump `.sync-state.json` `base_release_tag` to `v2026.722.0`. Skipping the realign arms the add/add-conflict trap at the next nightly run. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: DevRel Gemini <[email protected]> Co-authored-by: Paperclip <[email protected]>
2.9 KiB
Screenshots pending recapture
Regenerated by /sync-docs release run. Window: parent v2026.720.0 → v2026.722.0.
Captured PNGs go to a PR for human review — they are never auto-pushed. For a targeted refresh:
npm run screenshots:refresh
Staleness below is filtered to depends_on paths that changed with real line edits in this window; net-zero +0/-0 UI touches (a large batch of Inbox.tsx / IssueDetail.tsx / design-system files) are excluded as false positives.
Stale entries
agents + agent-config surfaces (12 shots, light + dark)
ui/src/components/AgentConfigForm.tsx changed with real edits — this window adds the Secret access editor for run-bound agent secret grants (PR #9921), so agent-config captures may now show new UI. Recapture:
agents/adapter-type-dropdown.pngagents/budget-and-heartbeat-fields.pngagents/claude-local-config-filled.pngagents/codex-local-config.pngagents/heartbeat-toggle-disabled.pngagents/heartbeat-toggle-enabled.pngagents/http-adapter-config.pngagents/test-environment-fail.pngagents/test-environment-success.pngcompany/company-budget-setting.pngonboarding/budget-field.pngorg/reassign.png
secrets
secrets/dispatch-check.png(light + dark) —server/src/services/secrets.ts(+338 this window)secrets/user-secret-definition.png(light + dark) —ui/src/pages/Secrets.tsxwas reworked by PR #9913 (folder view): a Folders/Flat toggle, breadcrumb row, and folder rows. These captures are of that screen.secrets/per-user-value-entry.png(light + dark) —ui/src/pages/Secrets.tsx,ui/src/pages/secrets/MyUserSecretsTab.tsx.MyUserSecretsTab.tsxnow renders names throughSecretPathName(muted directory, bold leaf), so slash-named secrets look different.
📸 New pages with no screenshots yet
docs/administration/secret-folders.md(drafted on nightly, ships in this release) has no image references — no capture exists for the folder view. Worth adding: the folder view (breadcrumbs, "Up to …" row, folder rows withN secrets · N folderscounts, Folders/Flat toggle) and the create-secret dialog opened inside a folder (folder-path prefix chip on the Name field). Needs new registry entries withdepends_on: ["ui/src/pages/Secrets.tsx", "ui/src/pages/secrets/secret-path.ts"].docs/experimental/connections-apps.md(new this release) has no screenshots — the Apps surfaces are experimental and still moving, so hold captures until the UX settles.
⚠️ Registry hygiene (carried over)
38 entries have no captured_sha at all, so they can never be evaluated for staleness — invisible to this check every run. Areas: company, dashboard, export-import, org, skills, tasks, work-modes (light + dark). Recapturing them once would stamp a SHA and bring them back into the staleness system.