Commit Graph
1008 Commits
Author SHA1 Message Date
Dotta 2977b1a102 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  docs: retain cloud attestation context failure and correction
  fix(build): retain Pi v24 attestation in Docker context
2026-10-12 18:32:44 -05:00
DottaandPaperclip 79779c5a96 docs: retain cloud attestation context failure and correction
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 18:32:41 -05:00
Dotta 579192c560 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  docs: record Claude setup and attestation repair evidence
  fix(claude): use discovered runner in guided agent setup
  fix(runner): version Pi attestation for owned settings initialization
2026-10-12 18:29:57 -05:00
DottaandPaperclip 45c325edf9 docs: record Claude setup and attestation repair evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 18:29:47 -05:00
Dotta 8f9dfa4e03 Merge branch 'codex/claude-runner-protocol' into codex/claude-runner-default
* codex/claude-runner-protocol:
  fix(runner): version Pi attestation for owned settings initialization
2026-10-12 18:29:28 -05:00
DottaandPaperclip 0ff31b2b76 fix(runner): version Pi attestation for owned settings initialization
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 18:29:22 -05:00
DottaandPaperclip dc12ffcd23 merge: retain owned configuration and resolved Legacy limits
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  fix(claude): preserve Legacy limits after automatic runner resolution
  fix(runner): initialize Claude settings under lifetime ownership
2026-10-12 18:13:17 -05:00
DottaandPaperclip 75239d8cd7 fix(claude): preserve Legacy limits after automatic runner resolution
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 18:13:12 -05:00
DottaandPaperclip 510930672c merge: retain final composition and qualification limits
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  docs(claude): record final source composition and qualification limits
2026-10-12 17:29:30 -05:00
DottaandPaperclip 913c1a6d77 docs(claude): record final source composition and qualification limits
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 17:29:28 -05:00
DottaandPaperclip 0331d248ff merge: retain the final Codex reconciliation evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  docs: record network policy and mapped acceptance evidence
2026-10-12 17:28:39 -05:00
DottaandPaperclip dd116ce429 merge: retain the final Codex reconciliation evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-protocol:
  docs: record network policy and mapped acceptance evidence
2026-10-12 17:28:37 -05:00
DottaandPaperclip a583630e1c docs: record network policy and mapped acceptance evidence
Keep the source-bound fixture regression, runner preservation proof, required map synchronization and pending full gates in the existing dated record.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 17:24:50 -05:00
DottaandPaperclip 2a5cb87ee4 merge: carry passing skills and route corrections
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  test(claude): bind skills fixtures to explicit runner behavior
  test(claude): retain experimental harness-switch policy coverage
2026-10-12 17:15:16 -05:00
DottaandPaperclip 804a38a4e1 test(claude): bind skills fixtures to explicit runner behavior
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 17:15:13 -05:00
DottaandPaperclip 0a8677d15c merge: retain mounted behavior and accounting evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  test(claude): prove mounted effort removals and record review evidence
2026-10-12 17:05:33 -05:00
DottaandPaperclip 628754f6dc test(claude): prove mounted effort removals and record review evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 17:05:20 -05:00
DottaandPaperclip e7d4eb75a2 merge: carry current import preservation into platform qualification
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  fix(claude): preserve permission selections and explicit import removals
  fix(runner): report the validated Pi profile in install evidence
  docs: record Codex configuration review and restart proof
  fix(agents): preserve requested controls and imported native settings
  fix(runner): preserve native Codex reasoning effort
2026-10-12 17:04:46 -05:00
DottaandPaperclip ec6a2aa545 merge: preserve Codex settings and intentional import removals
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 17:02:09 -05:00
DottaandPaperclip fa064d247d merge: reconcile measured sandbox qualification with Claude platforms
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 17:01:24 -05:00
DottaandPaperclip eee0534154 docs: record Codex configuration review and restart proof
Retain source-bound regression and preview evidence, current pending gates, and the independent prerequisite split.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:57:55 -05:00
Dotta 252ee23f8e Merge branch 'codex/claude-runner-protocol' into codex/claude-runner-default
* codex/claude-runner-protocol:
  docs: record final environment metadata review closure
  fix(environments): preserve measured proof atomically on metadata saves
  test(agents): distinguish measured and unknown sandbox defaults
  test(e2e): qualify managed Codex images in existing fixtures
  fix(agents): preserve legacy policy and require measured sandbox defaults
  fix(environments): bind platform facts to the effective immutable image
  fix(runner): close review gaps in setup and platform qualification

# Conflicts:
#	server/src/services/agent-runner-selection.ts
#	ui/src/pages/CompanyImport.test.tsx
2026-10-12 16:53:03 -05:00
DottaandPaperclip bc5e9f1414 fix(claude): verify all installed packs and gate Darwin SSH defaults
Try each standard preinstalled pack with the same integrity verifier. Keep Darwin SSH Auto on Legacy while preserving explicit assets and saved native execution.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:46:40 -05:00
DottaandPaperclip 5415f33d4e docs: record final environment metadata review closure
Keep source identities, real PostgreSQL race controls, runner preservation and pending current-source/cloud gates inspectable in the existing dated record.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:42:35 -05:00
DottaandPaperclip 64d0746f8a test(agents): distinguish measured and unknown sandbox defaults
Keep the discovery fixture truthful for unknown platforms and add a measured GNU2.39 ARM64 control. Record existing managed fixture, cost reporting and route qualification evidence without claiming missing live acceptance.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:30:25 -05:00
DottaandPaperclip 65700c6908 fix(agents): preserve legacy policy and require measured sandbox defaults
Keep explicit Legacy permission choices through automatic selection, import editing, draft reset and policy display. Use company-scoped measured immutable-image facts for automatic sandbox defaults without allocating resources during creation or discovery.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:19:00 -05:00
DottaandPaperclip a1bfe8f5be Merge reviewed runtime and measured-platform fixes before Codex defaults
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/runner-native-platform-prerequisites:
  fix(runner): close review gaps in setup and platform qualification
2026-10-12 16:14:48 -05:00
DottaandPaperclip 2a19f3721d fix(runner): close review gaps in setup and platform qualification
Read inert exact-source target data before selecting hosted native jobs. Bound registration teardown and retain unconfirmed recovery state. Record company-scoped sandbox platform facts only for immutable OCI images after confirmed cleanup; preserve existing connection and runner behavior.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:14:34 -05:00
Dotta e052378572 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  docs(evals): describe saved Claude onboarding defaults accurately
2026-10-12 16:12:36 -05:00
DottaandPaperclip b72ab47247 docs(evals): describe saved Claude onboarding defaults accurately
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:09:41 -05:00
Dotta bfa3a966a6 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  docs: record verified Claude Linux x64 continuity evidence
  docs: record successful Claude SSH cold continuity evidence
2026-10-12 16:01:47 -05:00
DottaandPaperclip 559644635d feat(claude): default qualified macOS and Linux targets to Runner
Enable Intel Mac, Linux x64, and Linux ARM64 after passing package consumers and the bounded API task/continuity pairs. Keep unsupported targets, overrides, and explicit Legacy choices intact.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 16:01:22 -05:00
DottaandPaperclip d761bdefca docs: record verified Claude Linux x64 continuity evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 15:58:59 -05:00
DottaandPaperclip 85b32fb6c9 docs: record successful Claude SSH cold continuity evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 15:53:17 -05:00
Dotta 86ccfe5005 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  docs: record Claude qualification and runner access contracts

# Conflicts:
#	doc/plans/2026-10-12-claude-runner-default.md
2026-10-12 15:33:38 -05:00
DottaandPaperclip 6dda0ec387 docs: record Claude qualification and runner access contracts
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 15:33:06 -05:00
Dotta 02ad4267d4 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  fix(adapter-utils): preserve SSH command positional arguments
  feat(runner): qualify native Codex platforms and cache hosted builds
  docs: establish paired feature and agent access maps (#16025)
  fix: retain matching-host runner development overrides
  fix(acpx): record turn activity at the moment a stop fires (#15962)
  refactor(chat): extract channel status, receipts, drafts and authority workflows (#15995)
  fix: preserve saved setup and match sandbox runner targets
  feat: add portable verification skills and refresh the feature map (#15983)
2026-10-12 15:29:24 -05:00
Dotta 14aed41d53 Merge branch 'codex/claude-runner-protocol' into codex/claude-runner-default
* codex/claude-runner-protocol:
  fix(adapter-utils): preserve SSH command positional arguments
  feat(runner): qualify native Codex platforms and cache hosted builds
  docs: establish paired feature and agent access maps (#16025)
  fix: retain matching-host runner development overrides
  fix(acpx): record turn activity at the moment a stop fires (#15962)
  refactor(chat): extract channel status, receipts, drafts and authority workflows (#15995)
  fix: preserve saved setup and match sandbox runner targets
  feat: add portable verification skills and refresh the feature map (#15983)
2026-10-12 15:29:12 -05:00
Dotta d3916151f6 Merge the standalone runtime prerequisite into Codex defaults
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/runner-native-platform-prerequisites:
  feat(runner): qualify native Codex platforms and cache hosted builds
  docs: establish paired feature and agent access maps (#16025)
  fix(acpx): record turn activity at the moment a stop fires (#15962)
  refactor(chat): extract channel status, receipts, drafts and authority workflows (#15995)
  feat: add portable verification skills and refresh the feature map (#15983)

# Conflicts:
#	doc/plans/2026-10-06-default-agent-runner.md
#	packages/paperclip-runner/README.md
#	server/src/__tests__/dev-runner-native-binary.test.ts
2026-10-12 15:16:51 -05:00
DottaandPaperclip ddcd746eb6 feat(runner): qualify native Codex platforms and cache hosted builds
Extract the tested runtime and installed-package prerequisite without changing agent creation defaults or experimental gates.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 15:15:01 -05:00
DottaandPaperclip 7d9b93aee2 docs: establish paired feature and agent access maps (#16025)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Contributors use the feature map to understand and verify product
capabilities.
> - Agents need APIs and usable entry points within their permission
boundaries.
> - Product recipes and agent access need separate records with shared
capability IDs.
> - This pull request establishes that contract and gives maintenance
ownership of both maps.
> - The benefit is repeatable access review without changing product
behavior or permissions.

## Linked Issues or Issue Description

Refs: #15983, which added the portable verification skills and updated
the feature map. This is its contract-only follow-up. Related: #15288
added the original feature map.

**Issue type**

Missing documentation and maintenance contract.

**Where is the issue?**

The product map, its missing agent access companions, and the
verification skills.

**What's wrong?**

There is no shared convention for API presence, agent entry points,
permission boundaries, access gaps, or evidence. An API declaration does
not prove that a permitted native or remote agent can use it.

**Suggested fix**

Keep the product and agent access maps as siblings under `maps/`. Reuse
capability IDs. Record representative source inventory separately from
operation review and live proof. Keep both maps aligned through the
maintenance skill.

## What Changed

- Move the existing product map to `maps/feature-map/`. Preserve its
recipes and Poteto format. Update relative links and add companion
links.
- Add `maps/agent-access-map/` with 35 area files and 171 matching
capability IDs. Seed representative API operations, agent paths,
policies and known gaps from the reviewed source inventory. Mark entries
as `baseline`, `source-only`, and live verification `not-run`.
- Define the shared contract in `maps/README.md`. Track API presence,
agent availability, policy, evidence and review depth separately.
Require operation enumeration before marking a broad capability
operation-reviewed.
- Extend `maintain-verification-skill` to reconcile both maps and
inspect actual route policy and production tool admission. Update
creation, verification, notices and contributor references to use the
shared contract.
- Add `scripts/check-maps.mjs` and ten regression tests. Check matching
areas/IDs, indexes, references, contract fields, API method/path
examples, justified exceptions and evidence-state consistency.
- Keep the coverage inventory unchanged. Preserve skill invocation
policies and both MIT license blocks. No product API, permission, UI,
runtime helper, migration, dependency or workflow changes.

## Verification

- Passed: `node scripts/check-maps.mjs` reports 35 paired areas and 171
matching capability IDs. All local map references resolve.
- Passed: `node --test scripts/check-maps.test.mjs` runs ten tests.
Fixtures cover missing companions, renamed/orphan/duplicate IDs, broken
references, missing operation fields, empty exceptions, missing API
examples, empty policy fields, and verified evidence without passed
verification.
- Passed: metadata validation for all three verification skills. Skill
and contributor links resolve. Invocation policies and both license
blocks are unchanged.
- Compared relocated recipes with current master. Contents differ only
in relative links and companion links. `coverage.json` is byte-for-byte
unchanged. Master's updated read-only interaction test reference is
retained.
- Passed: `git diff --check`. The branch starts from current master and
contains only this contract change.
- Repository-wide typecheck, tests and build were not run locally for
this documentation and Node structural-check scope. Live agent access
was not exercised. Those gaps are explicit in the baseline entries; the
structural check does not certify behavior. CI and automated review are
pending.

## Risks

- The companions are representative source baselines. They are not
complete operation inventories or passed agent journeys.
- The checker cannot establish actual permissions, native tool
admission, operation completeness or truthful live evidence. Maintenance
must inspect source and verify with the actual permitted agent context.
- External links to the old product-map directory may need updates.
Repository references have been updated.
- Existing access gaps and board/user restrictions remain recorded. This
contract does not change authority or implement missing paths.

## Model Used

OpenAI GPT-6 through Codex assisted with this change. The session does
not expose the exact serving model ID, configured context-window size,
or reasoning setting. Capabilities used: source analysis, file edits,
shell commands, and structural regression tests.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-12 14:52:28 -05:00
DottaandPaperclip bb7591dfd0 fix: retain matching-host runner development overrides
Use the controller override only for matching remote OS and CPU, preserving explicit remote priority and strict target header verification.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 14:34:41 -05:00
4b766b8729 fix(acpx): record turn activity at the moment a stop fires (#15962)
Record stop-time ACP turn diagnostics (last-event age, oldest pending tool age, pending tool kinds) so wall-clock timeout events show whether the turn was stalled. Diagnostics only.

Co-Authored-By: Paperclip <Paperclip-Paperclip@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 12:33:59 -07:00
DottaandPaperclip 0d0e138dad refactor(chat): extract channel status, receipts, drafts and authority workflows (#15995)
## Thinking Path

> - Paperclip manages AI agents and their work.
> - Chat channels connect that work to provider conversations.
> - Provider workflows still fill the shared service.
> - Their authority and recovery rules need clear homes.
> - This PR lands five reviewed extractions into channel folders.
> - Shared authorization, state and worker lifetime stay explicit.

## Linked Issues or Issue Description

Refs #15976, #15996, #15999, #16001 and #16002. This root PR now
contains all five extractions from batch three. The four upper PRs were
merged into their parents. The combined tree matches reviewed stack head
`789e918b5af49ec1958076ce4d22d31006205302` exactly.

## What Changed

- Extract Slack session status and accepted-file receipt recovery.
- Extract Telegram publication drafts and Stop handling.
- Extract Photon events and native responses.
- Extract Teams file-transfer authority.
- Reduce `chat-channels.ts` from 29,897 to 26,461 lines (3,436 lines,
11.5%).
- Preserve function bodies, runtime-map identity, leases and transaction
boundaries.

## Verification

- All 117 selected public-service cases passed before and after their
respective extractions.
- All 30 moved declarations and remaining service statements preserve
normalized syntax across the five slices.
- Server typecheck, module boundaries and whitespace checks passed.
- Cumulative `pnpm -r typecheck` and `pnpm build` passed. Combined-head
CI and review are pending on `5de1b0b99d71049a72440e8c131bf4bb30bdf3f3`.
- Fixtures exercise assembled services and disposable databases, not
live third-party providers.
- Cumulative local `pnpm test:run` on
`789e918b5af49ec1958076ce4d22d31006205302` exited 1: 32,414 passed, 125
skipped, one failure. `company-skills-routes.test.ts:1691` (`stars,
forks, and comments on skills through company-scoped endpoints`) failed
with `socket hang up`; that test and its route are unchanged by this
stack. The same 58-case suite then passed in isolation without code
changes. The original command did not reach 111 later serialized suites;
its failure is retained, so the full-local-test checklist remains
unchecked.

```sh
pnpm exec vitest run server/src/__tests__/chat-channels.integration.test.ts -t 'Slack session|Slack turns to Idle|signed Slack session stop|denies guest Slack stops'
```

- Combined-head CI attempt 1: five runners received a shutdown signal at
19:13:08 UTC (server shard 10/12, serialized shards 2/9 and 7/9, E2E
shards 3/8 and 7/8). These jobs stopped during execution without a
failing test assertion. [Original
workflow](https://github.com/paperclipai/paperclip/actions/runs/38293566028).
The affected jobs will receive one unchanged retry after the other jobs
finish.

## Risks

- Changes cross durable provider recovery and authority boundaries. The
moved bodies preserve syntax, and 117 focused public-service cases
passed before and after their extractions.
- Shared workers, timers, runtime maps and generic authorization remain
in the service.
- The full local test run failed in an unchanged company-skills route
test; its result and the unrun suites are recorded above.

## Model Used

OpenAI Codex, GPT-6 family, with reasoning and repository tools. The
exact runtime model ID and context-window size are not exposed in this
session. No separate agent was used.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [ ] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-12 19:26:54 +00:00
DottaandPaperclip 605433affe Preserve explicitly configured Claude SSH assets on Mac
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 14:23:46 -05:00
Dotta 06c4f5e5a0 Merge branch 'codex/claude-runner-default' into codex/claude-runner-platforms
* codex/claude-runner-default:
  Preserve Claude model bindings and effort across configuration changes
2026-10-12 14:12:19 -05:00
DottaandPaperclip e79254b2fa fix: preserve saved setup and match sandbox runner targets
Share actual-target artifact selection across remote Codex setup and execution. Keep unchanged saved setup choices outside new-selection rules while retaining runtime and authentication validation. Update the served platform guide.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 14:12:14 -05:00
DottaandPaperclip 2874232d25 Preserve Claude model bindings and effort across configuration changes
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 14:12:05 -05:00
Dotta 557c3064a3 Merge the consolidated Claude qualification evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-default:
  docs: record reviewed stack and cloud qualification prerequisites

# Conflicts:
#	doc/plans/2026-10-12-claude-runner-default.md
2026-10-12 13:48:23 -05:00
DottaandPaperclip ae348be8f8 docs: record reviewed stack and cloud qualification prerequisites
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-12 13:48:06 -05:00