Commit Graph
176 Commits
Author SHA1 Message Date
Aron PrinsandClaude Opus 4.8 b243dfe70d Release docs for paperclip v2026.609.0
Publish accumulated nightly drafts to main and document the new surfaces
shipped between v2026.529.0 and v2026.609.0 (130 parent commits).

New pages (gaps not covered by nightly drafts):
- docs/reference/cli/token.md — `token agent` / `token board` API-key commands
- docs/reference/cli/connect.md — interactive `connect` setup wizard
- docs/reference/api/teams-catalog.md — teams catalog REST API

Also:
- Stamp paperclip_version: v2026.609.0 on 49 release doc pages
- Register the 3 new pages in site/content.json nav
- Bump .sync-state.json base_release_tag to v2026.609.0

Verification: 49 pages checked against v2026.609.0; 11 verifier flags,
all confirmed false-positives (flagged flags/env-vars exist in parent).
Drift: 0. Reconciliation: 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-10 12:08:31 +02:00
Aron Prins 0d50f1424e Merge pull request #24 from paperclipai/nightly-draft/76c88e5-adapters-docker
nightly: Gemini Docker bundling + external adapter overrides (paperclip 76c88e5)
2026-06-09 13:30:55 +02:00
Aron PrinsandClaude Opus 4.8 e1568186d9 nightly: update sync state (parent 0a2230b)
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-09 12:00:29 +02:00
Aron PrinsandClaude Opus 4.8 a665c76e99 nightly: Gemini Docker bundling + external adapter overrides (paperclip 76c88e5)
- docker.md / gemini-local.md: Gemini CLI now bundled in the official
  image (GEMINI_SANDBOX=false); backfill opencode_local in bundled list
  (paperclip #7693)
- external-adapters.md: external adapters can override built-in types;
  document override + fallback lifecycle, correct stale 'cannot be
  overwritten' note (paperclip #7394)
- regenerate PENDING.md / SCREENSHOTS_PENDING.md (18 settings/adapter
  screenshots stale after instance-settings IA move, paperclip #7680)

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-09 12:00:29 +02:00
Aron PrinsandClaude Opus 4.8 cec1fda2d0 docs(cli): document company current command
`company current` exists in the CLI source
(cli/src/commands/client/company.ts) but was missing from the company
reference page. Add it to the Read Commands code block and table with a
note on how it resolves the scoped company (--company-id, context,
PAPERCLIP_COMPANY_ID, or agent credential) and that it returns the same
full record as `company get <companyId>`.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-09 11:37:49 +02:00
Aron Prins 218066834c Merge pull request #23 from paperclipai/nightly-draft/a800140-catalog-artifacts-trust
nightly: Teams Catalog, Company Artifacts, low-trust review presets (paperclip a800140)
2026-06-07 13:31:14 +02:00
Aron PrinsandClaude Opus 4.8 3b58fb017c nightly: Teams Catalog, Company Artifacts, low-trust review presets (paperclip a800140)
Three settled surfaces aged past the 24h quarantine since the last run:

- Teams Catalog (#7550): new `teams` CLI page + Team Catalog guide for the
  installable bundled/optional starter teams.
- Company Artifacts (#7621): new Artifacts guide + `GET /api/companies/{id}/artifacts`
  API section under Companies.
- Low-trust review containment / trust presets (#7530): new Administration page
  covering the `standard` / `low_trust_review` presets and quarantine-then-promote
  review flow.

Nav merged in site/content.json. PENDING.md and SCREENSHOTS_PENDING.md regenerated
(40 screenshots stale in the settled window). Phase 5.5 verification clean; drift clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-07 13:30:21 +02:00
Aron Prins 2609a47e80 Merge pull request #22 from paperclipai/nightly-draft/e78c064-catalog-routine-archive
nightly: referenced catalog skills (last30days), routine pause-suppression, company archive cascade
2026-06-06 16:53:46 +02:00
Aron PrinsandClaude Opus 4.8 44d4c5d604 nightly: referenced catalog skills (last30days), routine pause-suppression, company archive cascade
Cumulative window v2026.529.0 → e78c064 (24h-quarantined nightly cutoff).
Three user-visible surfaces newly documented this run:

- skills: app-shipped catalog now supports *referenced* entries fetched from
  an external GitHub repo pinned to a commit (CatalogSkill.source). First one
  is the research-category last30days skill. Documented in the Skills
  reference and the org Skills guide.
- routines: scheduled ticks are suppressed (recorded as skipped, no backfill)
  while the routine's project is paused.
- companies: archiving runs a cascade that pauses active agents
  (pauseReason company_archived) and cancels queued wake-ups.

All claims verified against parent code (Phase 5.5 clean). Build + link/nav
checks pass; no drift. Teams Catalog, company-artifacts page, and low-trust
review containment are quarantined (<24h) and deferred to the next run.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-06 15:56:57 +02:00
Aron Prins f78e67f361 Merge pull request #21 from paperclipai/nightly-draft/03e1e3ab-cli-handbook
nightly: full CLI reference handbook + wireframe skill + OpenAPI endpoint
2026-06-04 21:39:58 +02:00
Aron PrinsandClaude Opus 4.8 70ed497e12 nightly: full CLI reference handbook + wireframe skill + OpenAPI endpoint
CLI API-parity coverage (paperclip #6626, parent 03e1e3ab) cleared 24h
quarantine and is now eligible. Adopt the comprehensive per-command CLI
reference under Reference → CLI, replacing the single-page commands.md
monolith. Guide/runbook track deferred to a later expansion.

- Reference → CLI rebuilt to 28 per-command pages (overview, installation,
  common-options, output-and-scripting, setup, dev-environments,
  authentication, company, project, goal, issue, agent, prompt, run,
  routine, adapter, approval, activity, dashboard, cost, workspace, access,
  skills, secrets, cloud, plugin, asset, feedback).
- Retire commands.md + control-plane-commands.md → "moved" tombstones plus
  route redirects in site/redirects.json. Repoint inbound links
  (reference/skills.md, how-to/sync-to-cloud-upstream.md).
- Rewrite deferred-guide links to existing equivalents; smooth an
  installation.md example that tripped a drift false-positive.
- Document the bundled `wireframe` catalog skill (reference/skills.md,
  guides/org/skills.md).
- Add the GET /api/openapi.json endpoint to the API overview
  (server/src/routes/openapi.ts).

Verified: docs:build OK, sync:check OK (links clean, drift 0, screenshots
indexed; 2 intended tombstone orphans). Regenerated PENDING.md +
SCREENSHOTS_PENDING.md; updated .sync-state.json.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-04 21:26:13 +02:00
Aron Prins d9d749d2a2 Merge pull request #20 from paperclipai/nightly-draft/edeab22c-issue-artifacts
nightly: issue artifacts — output playback, attachment streaming, skill upload
2026-06-03 10:46:40 +02:00
Aron PrinsandClaude Opus 4.8 1a28b59fbf anchor-map: add skills-catalog watcher
Closes the gap this run surfaced: packages/skills-catalog/** was unwatched, so
new bundled catalog skills (e.g. the wireframe product skill) weren't auto-detected.

Watches catalog/**/SKILL.md + generated/catalog.json, routes to docs/reference/skills.md
and docs/guides/org/skills.md (PR tier), distinct from the agent-skills watcher which
covers the server-forced bundled skills under skills/**.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-03 10:42:23 +02:00
Aron PrinsandClaude Opus 4.8 4a7c4e64aa sync-state: nightly run through edeab22c (issue artifacts)
base_release_tag unchanged (nightly invariant). last_seen_parent_sha = master HEAD
70b1a91 (informational); applied window cutoff edeab22c after 24h quarantine.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-03 10:04:02 +02:00
Aron PrinsandClaude Opus 4.8 5f08200d05 nightly: issue artifacts — output playback, attachment streaming, skill upload
Cumulative window v2026.529.0 → parent master edeab22c (24h quarantine).
One feature cluster: agent-produced issue artifacts (video/file deliverables)
that reviewers — including cloud reviewers without workspace access — can view
and play back on the board.

- docs/reference/api/issues.md — attachment openPath/downloadPath, ?download=1
  disposition, HTTP Range (206) streaming, video/zip allowed types + inference.
- docs/reference/skills.md — bundled paperclip skill artifact-upload helper.
- docs/guides/day-to-day/issues.md — Output section + inline video / open-vs-download.

All 3 PR-tier edits verified against parent (verify-edit: 39/39 on api/issues,
0 unverified across all). docs:build + sync:check green. Drift: none.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-03 10:03:49 +02:00
Aron PrinsandClaude Opus 4.8 9e7a098e6c sync-state: bump base release to v2026.529.0 after release merge
Released v2026.529.0 docs to main (PR #19). Advance the cumulative-diff
base so the next nightly run diffs from this release, not v2026.525.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 19:28:03 +02:00
Aron Prins 7e14aeed6d Merge pull request #19 from paperclipai/release/v2026.529.0
Release docs for paperclip v2026.529.0
2026-05-30 19:27:21 +02:00
Aron PrinsandClaude Opus 4.8 96b0ba8a53 Refresh screenshots for v2026.529.0 and fix workspace env precedence
Recapture the 82 stale screenshots (light + dark, 1440×900 @2x) against
a release-code instance booted at v2026.529.0 (911a1e8). Registry was
already stamped at that SHA, so captured_sha is unchanged.

Verification pass against the release codebase also found one authored
claim wrong: the execution-workspace environment precedence is
issue → project → agent → instance default (project policy outranks an
agent's own default), not issue → agent → project. Corrected
docs/guides/projects-workflow/workspaces.md to match
server/src/services/execution-workspace-policy.ts.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 19:20:05 +02:00
Aron PrinsandClaude Opus 4.8 9c5aae8962 Release docs for paperclip v2026.529.0
Add the two release features quarantined from nightly, and stamp
paperclip_version on every touched page.

- Claude Local: document UI-driven live model discovery (#6953) —
  /v1/models lookup via ANTHROPIC_API_KEY, 60s cache, built-in fallback,
  Bedrock IDs, and the refresh control.
- Workspaces: document reused-workspace environment consistency and
  finalize-gated dependent wakes / interaction.accept (#6969).
- Stamp paperclip_version: v2026.529.0 on all 14 touched pages.
- Regenerate SCREENSHOTS_PENDING.md: 90/276 stale for this window.

Inherits the six features already drafted on nightly: resource
memberships (#6677), document annotations (#6733), bundled plugins in
plugin manager (#6734), skills CLI + catalog (#6782), first-admin
claim (#6755).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 19:00:46 +02:00
Aron Prins 47c8308c55 merge: main into nightly after auto-screenshots 2026-05-30 18:50:45 +02:00
Aron Prins b59ab9b6ab Merge branch 'feat/auto-screenshots' 2026-05-30 18:49:27 +02:00
Aron Prins d8a031897b Avoid env-controlled registry sync cwd 2026-05-30 17:54:06 +02:00
Aron Prins 17e046db5f Harden screenshot runner environment 2026-05-30 17:52:14 +02:00
Aron PrinsandClaude Opus 4.8 32a16b20f4 Recapture screenshots on a healthy demo seed
The seeded org agents were created as `process` adapters with an empty
adapterConfig. The screenshot instance runs with no LLM provider and the
scheduler heartbeats every enabled agent, so each agent's heartbeat failed
instantly — the captured UI was dominated by red "error" states ("5 errors"
on the dashboard, "Ada failed after 1 second" on agent detail).

Give every demo agent a shared DEMO_AGENT_CONFIG: a process command that
always exits 0. Heartbeats now complete cleanly, so agents render as healthy
idle/running/paused with tidy transcripts. Recaptured all targets (light +
dark) against paperclip 911a1e8 — dashboard now reads "0 errors".

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 17:41:27 +02:00
Aron PrinsandClaude Opus 4.8 e4be96d643 Add screenshot-coverage gate to sync:check
New scripts/sync/verify-screenshots.mjs asserts that every screenshot
referenced in a guide page is (a) a CAPTURE_TARGET in routes.mjs and (b)
indexed in registry.json with a non-empty depends_on. It exits non-zero
otherwise, so a doc image added without a capture target fails loudly instead
of silently going stale. Wired into `npm run sync:check`, which the /sync-docs
skill runs every sync.

Currently: 112 referenced screenshots, all tracked and indexed.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 14:42:14 +02:00
Aron PrinsandClaude Opus 4.8 9ad25322b5 Make the screenshot registry self-indexing
Previously sync-registry only *updated* existing registry entries, so a newly
introduced screenshot target was captured but never indexed — and the
/sync-docs staleness check only flags entries it can see, so such a shot would
silently drift out of date (exactly what happened to issues/inbox-unread).

sync-registry now appends a registry entry (file, theme, viewport, route,
depends_on) for any CAPTURE_TARGET that has none, and sorts entries for stable
diffs. run.mjs runs sync-registry on every capture, so the index now stays
complete automatically. Audit: 0 target files missing from the registry, 0
without depends_on — every documented screenshot is tracked for staleness.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 14:40:58 +02:00
Aron PrinsandClaude Opus 4.8 38608f7fb7 Recapture remaining UI screenshots (paperclip 911a1e8)
Refresh the shots unlocked by the runner-agent seeding and new targets:
agent runs/transcript/status, environment test pass, approval revision box,
adapter health rows, and the onboarding goal field. registry.json stamped.

Every screenshot referenced in the docs is now captured against the current
build; the only un-refreshed files are unreferenced orphans.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 14:28:21 +02:00
Aron PrinsandClaude Opus 4.8 59b4d4a4fe Cover the last 8 shots: real process-adapter runs + doc repoint
Close the remaining gap so every screenshot referenced in the docs is current.

seed.mjs — process-adapter "runner" agents (no LLM needed; the process adapter
executes a shell command):
- "Task Runner" runs `sh -c "echo ..."` → a real completed run with a STDOUT
  transcript (run-transcript-view, test-environment-success via the config
  Test button which now passes: command sh is executable)
- "Live Task" runs `sh -c "sleep 3600"` and is woken last, so it stays
  in-flight through the whole capture phase → genuine "running" agent status
  and an in-progress run row

routes.mjs — targets for run-transcript-view, run-history-in-progress,
agent-status-running, test-environment-success (click "Test" → wait for the
Passed result), approvals/revision-request-input (the detail note box),
adapters/health (the adapter rows), and onboarding/goal-field (wizard step 1).

dashboard.md — the dashboard image pointed at a hand-annotated PNG that can't
be auto-captured; repoint it to the freshly captured dashboard-overview.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 14:28:19 +02:00
Aron PrinsandClaude Opus 4.8 b24671f98c Recapture UI screenshots with extended coverage (paperclip 911a1e8)
Full automated recapture via the extended pipeline against a richly-seeded
demo instance: 220 screenshots (110 targets x light/dark, 1440x900 @2x).

Adds coverage for dashboard, tasks, activity, org chart, routines, skills,
workspaces, approvals, budget-utilisation states, new-agent forms, and
empty-state onboarding. registry.json route/depends_on backfilled and
captured_sha stamped for all 220 entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 13:52:44 +02:00
Aron PrinsandClaude Opus 4.8 73de0bb4b6 Extend screenshot coverage: interaction engine + richer seed
Grow capture coverage from 56 to 110 targets so the docs' UI screenshots are
refreshed end to end, not just the plain-URL surfaces.

capture.mjs — interaction engine:
- `steps` per target (click / fill / waitFor / press) run after the page
  settles; each step is best-effort (logs + continues) so selector drift
  degrades to a partial capture instead of aborting
- `clip` captures a single element (e.g. a dashboard panel), falling back to
  full-page if the element isn't found
- robust locator DSL: testid / role+name / label / title / placeholder / text / css

routes.mjs — +54 targets across dashboard, tasks, issues, activity, org,
routines, skills, workspaces, settings, costs (incl. budget-bar 50/80/100%
states), new-agent forms, approvals, and empty-state onboarding. New seed-id
tokens for empty company, budget-state agents, http agent, skill, approvals.
Documents the 8 shots that are genuinely not auto-capturable offline (live-run
transcripts/status, real adapter test-pass, a nonexistent revision input, a
nonexistent adapter-health route, the hand-annotated overview, onboarding goal).

seed.mjs — extended dataset: a second empty company for empty-state shots;
three budget-utilisation agents seeded to 50/80/100% (last one paused); an
http-adapter agent; four approval items (hire / strategy / board / approved)
via REST; a resolved skill id; and the isolated-workspaces experimental flag
(PATCH /api/instance/settings/experimental).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 13:52:36 +02:00
Aron PrinsandClaude Opus 4.8 6cd9f193d5 Capture all UI screenshots against paperclip 911a1e8
Full automated capture of the docs UI screenshots (light + dark, 1440x900 @2x)
via `npm run screenshots:refresh`, run against a fresh seeded demo instance.

- 112 PNGs (56 light + 56 dark) refreshed across all covered surfaces
- registry.json: route + depends_on backfilled for the 110 captured entries,
  captured_sha/captured_against stamped to the parent commit they were taken at

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 12:55:13 +02:00
Aron PrinsandClaude Opus 4.8 95c7ab5f67 Enrich screenshot seed + harden the runner
Validated the pipeline against a live local_trusted instance and fixed what
the dry run surfaced, plus made the demo company look genuinely in-use.

seed.mjs — rich, idempotent, soft-failing demo dataset:
- brand color + monthly budget; 5-agent org (Ada/Bob/Cleo/Dax/Eve) with
  titles, icons, instructions, per-agent budgets, assigned skills
- 4 company skills, 2 goals, 2 projects + a git workspace, 8 issues with
  mixed statuses/priorities/assignees, 2 sub-issues, a 4-message chat thread
- routine + one execution-history row, 2 invites, bundled plugins installed,
  32 cost events + 5 finance events so the Costs/Finance dashboards are non-zero
- enum/validation fixes from the live run: goal status "active" (not
  "in_progress"), workspace sourceType "git_repo", comment authorType "user"
  (a board actor cannot post as "agent")

run.mjs:
- kill the server's whole process group on teardown (was orphaning the
  server child and holding port 3197)
- pre-clean the scratch home at startup so every run gets a fresh DB and the
  one-shot seed steps (comments/invites/events) always fire

sync-registry.mjs: drop the scaffolder's _todo note once route/depends_on
are populated.

package-lock.json: pick up @playwright/test.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 12:55:04 +02:00
Aron PrinsandClaude Opus 4.8 5f00622542 Add automated screenshot capture pipeline + skill wiring
Builds an end-to-end pipeline that keeps docs screenshots in sync with the
latest Paperclip build, replacing the previously-manual capture step.

scripts/screenshots/:
- config.mjs       isolated-instance env helpers (local_trusted/loopback,
                   scratch PAPERCLIP_HOME, never touches ~/.paperclip)
- seed.mjs         idempotent demo-data seeding via REST (company/agents/
                   project/goal/issues/routine/workspace); writes .seed-ids.json
- routes.mjs       56 CAPTURE_TARGETS with real ui/src depends_on paths;
                   resolveRoute() uses the server-derived issuePrefix
- capture.mjs      Playwright capture (light+dark, 1440x900 @2x), theme seeded
                   to match ui/index.html, stamps registry captured_sha
- sync-registry.mjs back-fills route + depends_on into registry.json
- run.mjs          one-command orchestrator: onboard -> health -> seed ->
                   sync-registry -> capture -> teardown
- README.md        prerequisites, flow, overhaul mode, safety notes

Wiring:
- package.json: screenshots:{seed,capture,sync-registry,refresh,refresh:all}
  + @playwright/test devDependency
- screenshots:refresh:all is the full re-take mode for major UI/UX overhauls
- sync-docs SKILL.md Phase 6: capture is now automatable (still PR-reviewed,
  never auto-pushed); maintenance.md updated to match
- .gitignore: scripts/screenshots/.seed-ids.json

Auth is free in local_trusted mode (every request is admin), so no login flow
is needed. Capture/staleness still surface to a PR for human review.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 12:05:26 +02:00
Aron PrinsandClaude Opus 4.8 534a8b4c0d nightly: skills CLI + catalog, first-admin browser claim (paperclip 524e18b)
Cumulative nightly sync v2026.525.0 → parent master 524e18b (24h quarantine).

- Skills CLI command group (paperclipai skills …): control-plane workflow
  section + full subcommand/flag reference (#6782).
- App-shipped skills catalog (bundled/optional) + install-catalog / audit /
  install-update / reset lifecycle in the skills reference and org guide (#6782).
- Private browser first-admin claim (POST /api/bootstrap/claim) in the
  instance-admin API reference and installation guide (#6755).

Verified against parent: 0 high-confidence unverified claims. No drift, no
renames, no auto-merge/env changes. 5 commits held in quarantine.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-05-30 11:15:23 +02:00
Aron Prins b0416956ef merge: main into nightly (brand alignment + mobile top-bar fixes #17) 2026-05-28 18:08:42 +02:00
Aron PrinsandClaude Opus 4.7 515366b322 Align docs site with brand guide + mobile top-bar fixes (#17)
* style: align docs site with paperclip.ing brand guide

Bring the docs site in line with the canonical brand tokens and fix two
layout bugs found while verifying:

- Radius scale: adopt the brand ramp (xs 4 / sm 10 / md 16 / lg 24 / pill)
  and apply by role (cards 16, controls/code/tables 10, chips/code 4,
  search modal 24).
- Pill rule: reserve the pill shape for the primary Star CTA only; convert
  secondary controls (search, TOC toggle, copy-link group) to 10px rects
  and metadata/count chips to 4px.
- Color: error red -> #DC2626, complete the named status palette, align
  callout deeps and dark-mode secondary/muted text to brand exact hexes.
- Typography: enable OpenType ss01 + cv11 on body, tabular-nums on mono,
  tighten display-1 tracking to -0.04em.
- Default to dark mode (set pre-paint in <head> to avoid a light flash).
- Fix "All docs" sidebar button clipped on the left by overflow-x.
- Fix doc body width: set --content-max to 920px so content fills the
  layout and lines up with the header/footer.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* fix(nav): rework mobile top bar layout

On mobile (<=560px) the top bar is now balanced and centered:
- hamburger moved to the far left, with the search trigger beside it
- paperclip icon + wordmark + "Docs" stay dead-centered
- GitHub icon sits left of the Star button on the right
- drop the star count on mobile so the side groups balance and the
  logo centers via flex (no overlap)

Search is duplicated for the left/mobile slot and both triggers bind via
a shared .js-search-open class. Desktop layout is unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* fix(nav): prevent header overflow on very narrow phones

Hide the "Docs" logo suffix at <=360px. With the mobile search + GitHub
buttons shown, the min content width of hamburger+search | Paperclip Docs
| GitHub+Star was ~352px, overflowing viewports around 320px. "Docs"
stays visible on common phones (375px+).

Addresses Codex review P2.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* fix(a11y): raise dark muted-text contrast to WCAG AA

Dark --ash was set to the brand caption color #6E6960 (~3.4:1 on the
dark bg), but --ash is reused for normal-size text (navbar links,
counts, metadata, placeholders). Raise to #8A8579 (~5:1, AA) while
keeping it dimmer than the secondary text token.

Addresses Codex review P2.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-28 18:08:06 +02:00
Aron PrinsandClaude Opus 4.7 51b9fe35bb nightly: resource memberships, document annotations, bundled plugins (paperclip b754582)
Cumulative nightly sync from v2026.525.0 → parent master b754582:
- New API page for resource memberships (join/leave projects & agents)
- Document annotations API + guide sections on issue documents
- Bundled plugin discovery (experimental first-party plugins) in admin + API docs

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-28 12:27:12 +02:00
Aron Prins 2d698f4589 merge: main into nightly to sync update-paperclip how-to 2026-05-26 11:43:07 +02:00
Aron PrinsandClaude Opus 4.7 67a1777cae docs: add how-to guide for updating Paperclip (#15)
Adds docs/how-to/update-paperclip.md covering the three install paths
(Desktop App, npx/CLI, git clone) and wires it into the How-to Guides
sidebar.

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-26 11:42:40 +02:00
Aron Prins 81fc5a6ee8 merge: main into nightly after v2026.525.0 release
Absorbs the squash-merged release commit so nightly's base is aligned
with main. Tomorrow's nightly sync will diff against v2026.525.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

# Conflicts:
#	.sync-state.json
#	docs/reference/adapters/modal.md
#	docs/reference/plugins/sdk.md
#	docs/reference/plugins/workspace-diff.md
2026-05-25 20:37:22 +02:00
Aron PrinsandClaude Opus 4.7 ee349a369a Release docs for paperclip v2026.525.0 (#14)
* nightly: regenerate PENDING manifest (paperclip c0c5a82)

10 PR-tier candidates against v2026.517.0..master:
- modal sandbox provider plugin (new doc page)
- worktree init --force scope fix
- routine env runtime contract (migration 0086)
- workspace diff viewer plugin (new)
- plugin SDK surface + managed-resources concept
- environmentProbe RPC timeout 120s
- SecretBindingPicker in JsonSchemaForm
- inbox planning badge removed
- secret form textarea overflow fix
- new-issue autocomplete pointer fix

No drift, no reconciliation candidates. All 14 parent commits past
quarantine. Anchor-map db-migrations watcher path is stale
(packages/db/migrations -> packages/db/src/migrations) — noted for
maintenance.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* nightly: document Modal sandbox provider (paperclip 4b1e92a..e5a0f5d)

* nightly: clarify scope of worktree init --force (paperclip 242a2c2)

* nightly: document routine env + secret-ref binding picker (paperclip 705c1b8..c0c5a82)

* nightly: document workspace diff viewer plugin (paperclip 5071c4c)

* nightly: audit plugin SDK reference + add managed resources note (paperclip c0c5a82)

* nightly: nav for modal adapter and workspace-diff plugin

Merges the two NAV_ADDITION entries returned by the doc-draft subagents
in this run, in one coordinated edit so the index file stays consistent.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* nightly: workspace diff polish + manifest refresh (paperclip f2575305)

- docs/reference/plugins/workspace-diff.md: document split/unified toggle,
  working-tree vs against-ref toggle, base-ref input with defaultBaseRef
  prefill, sticky toolbar, and head → working-tree fallback when no
  base ref is set (paperclip #6383).
- PENDING.md: regenerate cumulative manifest against parent f2575305
  (20 commits in window, 13 doc-relevant entries). Adds entries for the
  provider vault secrets UX (#6381), cheap recovery model guard (#6371),
  sidebar fix (#6341), cloud tenant import exemption (#6378), and UI/dev
  QoL polish (#6384).
- .sync-state.json: bump last_seen_parent_sha to f2575305, refresh
  manifest hash, mark applied.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* docs(nightly): add troubleshooting for 401 after creating a new secret

Customer hit a 401 after adding a new secret at the company level. The
new how-to didn't flag that creating a secret doesn't auto-rewire the
agent's env-var binding — fixed by adding two troubleshooting entries
covering the unbound-secret case and the provider-side rejection path.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* nightly: manifest refresh (paperclip e3c875c, effective c91a062)

Cumulative window v2026.517.0 → c91a062 (21/29 commits; 8 quarantined).
Adds entry #14 for #6380 runtime control-plane fixes — overwhelmingly
internal correctness, surfaced as context-only with a note on the new
PORTABLE_JSON_BODY_LIMIT (64mb) constant for portable imports. All 13
prior entries still present in the cumulative diff — no reconciliation.
Drift check clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

* release: docs for paperclip v2026.525.0

Roll-up of nightly drafts plus newly-authored coverage for surfaces shipped
in v2026.525.0 that nightly hadn't reached yet:

- new: docs/how-to/sync-to-cloud-upstream.md (Cloud Upstream sync flow)
- new: docs/how-to/connect-aws-secrets-vault.md (AWS provider vault discovery)
- update: docs/reference/cli/commands.md — paperclipai cloud connect/push
- update: docs/reference/adapters/acpx-local.md — bare Claude model IDs, structured diagnostics, ~/.claude/settings.json handling
- update: docs/reference/api/agents.md — scoped permissions + authorization service, decision-reason table
- update: docs/reference/api/issues.md — retry-now endpoint
- update: docs/reference/deploy/secrets.md — Provider Vaults section
- update: docs/how-to/bring-your-own-agent.md — invite flow moved into add-agent modal

Bumped paperclip_version frontmatter to v2026.525.0 on all touched pages
(including nightly-authored Modal, workspace-diff, plugin SDK, routines,
worktree --force pages).

Updated .sync-state.json: base_release_tag v2026.517.0 -> v2026.525.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25 20:36:18 +02:00
Aron Prins 776b73e773 merge: update nightly from main 2026-05-25 13:42:14 +02:00
Aron Prins 7cbd284a16 merge: redesign paperclip docs fixes 2026-05-25 13:41:58 +02:00
Aron Prins 5625b7f496 fix: include spend approval guide in nav 2026-05-25 13:36:12 +02:00
Aron Prins 471de65da1 fix: harden docs rendering and stale references 2026-05-25 13:32:06 +02:00
Aron PrinsandClaude Opus 4.7 81c7959c0b copy(landing): rewrite hero in paperclip.ing's plain-language voice
Drop the "control plane" buzzwords. Short noun-phrase headline,
plain-language lede that echoes paperclip.ing's "people use to
manage AI agents for work" cadence.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25 13:20:20 +02:00
Aron PrinsandClaude Opus 4.7 7604cbaeee nav: split centered logo into Paperclip (→ paperclip.ing) + Docs (→ docs.paperclip.ing)
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25 13:12:06 +02:00
Aron PrinsandClaude Opus 4.7 c557392a8a ui(article): swap page-action primary to Copy Link, demote Copy Page to menu
The pill button now copies the canonical page URL (with hash); the
dropdown's first item still copies the page as Markdown.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25 13:02:44 +02:00
Aron PrinsandClaude Opus 4.7 fdec9f4e1e ui: italicize em via real Inter Tight italic, drop card left accent
- Load italic axis for Inter Tight/Inter from Google Fonts so #landing-title em renders true italic instead of synthetic slant
- Drop the dimmed graphite color on em; inherit ink to match paperclip.ing
- Remove the green left-edge ::after strip on .card (and its hover state)

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25 13:00:05 +02:00
Aron PrinsandClaude Opus 4.7 4efaf4f660 fix(nav): restore id="logo" on navbar logo to keep init() running
When the header was rewritten the id was dropped, so init()'s
document.getElementById('logo').href = ... threw and halted the
rest of the boot sequence (sidebar, landing, routing).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25 12:50:52 +02:00