Commit Graph
5565 Commits
Author SHA1 Message Date
DottaandPaperclip 604b8d307a Sync the normal Pi install probe with profile 19
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 10:24:44 -05:00
DottaandPaperclip a690e5ab8f Expose Pi question field types at the tool schema root
Keep method-specific validation and immutable profile admission. Record the real core-path passes and retain the original failed question evidence.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 10:18:31 -05:00
DottaandPaperclip ee3b094d35 Sync Pi literal-command fixture version pin
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 09:45:55 -05:00
DottaandPaperclip e722b116f1 Preserve literal Pi validation commands through task creation
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 09:41:33 -05:00
DottaandPaperclip 31d688e389 Align Pi harness calibration with accepted Sonnet fixture
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 09:28:37 -05:00
DottaandPaperclip 536fb3c195 Reconcile Pi release gates with cloud memory acceptance
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 08:44:34 -05:00
DottaandPaperclip 29c774265a Record passing Sonnet cloud memory qualification
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 08:28:21 -05:00
DottaandPaperclip da8d4454ae Bind cloud Pi memory reads to the current agent and run
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 08:19:25 -05:00
DottaandPaperclip b696e131ae Retain cloud-built packages for Pi qualification
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-08 07:31:48 -05:00
Dotta 111082ad42 fix(runner): accept qualified Pi in remote provider packs 2026-10-08 07:04:33 -05:00
Dotta 3017852e94 fix(e2e): admit native readiness with legacy preparing stage 2026-10-08 06:36:07 -05:00
Dotta 364c600070 test(pi): wait for executing runtime before remote observer admission 2026-10-08 06:14:22 -05:00
Dotta 53c6e0c0a1 test(pi): bind memory reads to exact contents and repair remote fixtures 2026-10-08 05:47:17 -05:00
Dotta dabe81befe test(pi): require native reads across the memory restart fixture 2026-10-08 05:18:36 -05:00
Dotta 0104942b02 test(pi): qualify Sonnet and simplify exact-byte memory fixture 2026-10-08 05:10:06 -05:00
DottaandPaperclip b548b4f4c5 Record native Pi installation admission and qualification hold
Document normal Linux, ARM and native Intel installation proofs, retained Intel interruption, current memory failure and exact coverage. Update rollout and rollback draining for all platforms. Preserve frozen production inputs and strict graders.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 18:24:43 -05:00
DottaandPaperclip 5ccb4a3462 test(pi): bind Unicode memory catalog fingerprint
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 16:30:53 -05:00
DottaandPaperclip c2893e1acd test(pi): preserve exact memory LF with Unicode JSON arguments
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 16:26:53 -05:00
DottaandPaperclip 3fee270de2 docs(pi): reconcile completed production admission gates
Record the clarified memory failure without changing its grade or shipping artifacts.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 15:56:09 -05:00
DottaandPaperclip 56d1e03acd test(pi): clarify exact native file byte semantics
Keep the memory JSON, byte graders, model, permissions, and production profile unchanged. Record the admitted shipping source and retained model-behavior failure separately from the changed qualification prompt.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 15:29:20 -05:00
DottaandPaperclip 06a3d9739f fix(runner): drain Pi snapshot acquisition through shutdown
Cancel and drain pending native snapshot copies through the command owner. Give Pi a finite cleanup grace before process-group termination, preserving lifetime fences and exact-child retirement. Retain the original canonical Stop pass with failed independent cleanup and add free regressions for both boundaries.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 14:43:53 -05:00
DottaandPaperclip b061f31242 fix(runner): bound native snapshot exit wait
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 14:13:27 -05:00
DottaandPaperclip 5aef118ea9 fix(runner): await consumed native snapshot retirement
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 13:47:37 -05:00
DottaandPaperclip 9cd363d28d test(pi): align public install probe with profile 18
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 13:06:09 -05:00
DottaandPaperclip 6a39309341 fix(pi): retain profile 17 decoding during upgrade
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 12:47:23 -05:00
DottaandPaperclip 8e785ac958 fix(pi): preserve acknowledged cancellation terminals
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 12:34:47 -05:00
DottaandPaperclip fcc2e5e735 Synchronize Pi task creation evidence mocks
Keep native evidence and remote memory tests bound to the browser-created issue ID, company, and assignee. Include the scoped creation check in strict evidence expectations.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 12:13:26 -05:00
DottaandPaperclip 061c02f7fc Bind Pi fixtures to browser-created task identity
Use explicit titles for strict native actions and the creation response ID for scoped task lookup, preserving all native behavior and cleanup grading.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 12:03:25 -05:00
DottaandPaperclip f4bb181dae Keep release declarations in Docker build context
Preserve the Pi and Copilot identity inputs required by generated profile validation and run that check against the cloud build context.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 11:39:54 -05:00
DottaandPaperclip 318210c1c4 Build qualification images on hosted Linux
Use the maintainer-authorized GitHub Linux host while preserving repository authorization and immutable source resolution.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 11:32:46 -05:00
DottaandPaperclip 92cf55a7a8 Synchronize Pi coverage assertions with current fixture identities
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 10:54:03 -05:00
DottaandPaperclip 637bf0daab Align Pi file fixture publication title with its artifact check
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 10:34:07 -05:00
DottaandPaperclip ae8dade97b Retain the Cursor profile rejection boundary
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 10:20:01 -05:00
DottaandPaperclip f6b38ca991 Keep native input negative fixtures beyond the current release
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 10:10:02 -05:00
DottaandPaperclip 15af2eefbc Decode current Runner profiles from the release manifest
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 10:02:22 -05:00
DottaandPaperclip 0432d80cfd Bind native Pi profile test to revision 17
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 09:51:31 -05:00
DottaandPaperclip ce650557d7 Reserve Pi loader controls at both credential boundaries
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 09:43:18 -05:00
DottaandPaperclip f817030f88 Align Pi custom credential names across controller and Runner
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 09:17:38 -05:00
DottaandPaperclip aa67de3113 Forward Pi provider credentials through the native session binding
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 08:57:37 -05:00
DottaandPaperclip f332f79e6e Check model-free Pi release metadata in the public install probe
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 07:43:53 -05:00
DottaandPaperclip efd4df03d5 Isolate provider attachment test directories
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 07:26:31 -05:00
DottaandPaperclip 5cc87a37fe Align Pi qualification fixtures and attachment contracts with master
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 07:23:59 -05:00
DottaandPaperclip 510e51b227 Qualify the Pi thinking fixture enum in Rust integration tests
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 07:06:59 -05:00
DottaandPaperclip 0735ca2dc9 Merge pinned master while preserving Pi runtime admission
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 07:02:09 -05:00
DottaandPaperclip f96a9dc53a Restore master budget safety and repair installed Pi setup
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 07:01:16 -05:00
DottaandPaperclip b67db12d90 feat: add durable storage for private tasks (#14717)
Add private task and project ownership, downward access grants, and immutable run/workspace provenance. Apply migration 0313 with bounded batch commits and concurrent indexes. Keep the enforcement and sharing changes in their dependent PRs.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
canary/v2026.1007.0-canary.7
2026-10-07 06:53:20 -05:00
DottaandPaperclip 1ead554bd1 fix(claude-local): resume sessions across agent file working copies (#15437)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - The Claude CLI adapter resumes task sessions between runs.
> - Each run now receives a private copy of the agent files.
> - The adapter put that copy's path in the cached system instructions.
> - The new run ID changed the prompt bundle even when all instructions
and skills stayed the same.
> - This pull request sends the current file location with each run's
prompt and keeps it out of the stable bundle.
> - Agents can resume unchanged task sessions and use the current
working copy.

## Linked Issues or Issue Description

Fixes: #15373

Refs #14420, which introduced the per-run agent directory copies.
Related PRs checked: #5699 changes the fingerprint algorithm, and #12034
handles saved sessions without a bundle key. Neither fixes this
working-copy path regression.

## What Changed

- Keep instruction and skill contents in the cached system prompt.
Supply the current instruction path and relative-file base in every run
prompt, including resumed turns and fresh retries.
- Report a cwd or execution-target mismatch only when that value
differs. A bundle mismatch no longer produces a false cwd warning.
- Add a four-run regression: initial run, relocated copy, changed
instructions, and changed skill contents. Check the CLI arguments,
bundle keys, current file guidance, and reset logs.
- Cover and explain remote-to-local execution resets, even when the
working directory matches.
- Update the agent-file documentation and existing resume/fallback
assertions.

## Verification

- **Red:** With only the new regression test added, the second run fails
because the CLI arguments do not contain `--resume`.
- **Green:** All 64 tests pass in the command below. This uses a fake
Claude subprocess and real adapter execution, file caching, and session
serialization; it does not call a paid model.

```sh
pnpm exec vitest run server/src/__tests__/claude-local-execute.test.ts packages/adapters/claude-local/src/server/execute.remote.test.ts packages/adapters/claude-local/src/server/execute.acp-fallback.test.ts server/src/__tests__/adapter-session-codecs.test.ts
```

- Repository-wide `pnpm -r typecheck` and `pnpm build`: passed. The
adapter typecheck, build, and all 64 focused tests also pass after the
review fix.
- Local `pnpm test:run` was stopped after it reported a failure in the
unchanged native-session recovery database orchestration test. That test
passes in isolation with PostgreSQL enabled (1 passed, 47 filtered out).
The full local run did not complete; this is not a clean local
full-suite result. All CI checks pass on
`a71d23a39f1cc874d23a8715cf29bdea6edbb8ff`, including the full test
shards.

## Risks

- A session saved with the old path-bearing bundle starts fresh once
after upgrade. Later runs resume when instruction and skill contents
stay unchanged.
- The current location now travels in the run prompt. Stable system
guidance directs relative file references to that location, and each
turn explicitly replaces earlier locations.
- No database, API, authentication, permission, or UI change.

## Model Used

OpenAI Codex (GPT-6), with reasoning, repository inspection, code
execution, and test tools. The exact deployment model ID and context
window are not exposed in this session.

## 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
#` 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
- [x] All Paperclip CI gates are green
- [x] 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-07 06:48:19 -05:00
DottaandPaperclip 8fbfda6756 Fix Pi session admission and reconcile production checks
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-07 06:34:13 -05:00
DottaandPaperclip d0db8820db fix(connections): repair native baseline and approval continuations (#15420)
## Thinking Path

> - Paperclip manages AI agents and the tools they may use.
> - Connection setup separates provider preference from permission to
use a tool.
> - The first native connection baseline could not exercise its intended
decisions.
> - The browser used mutable task titles, and the provider fixture
already granted access.
> - Native provider-choice instructions also disagreed with the
preferred question format. Schema rejection gave no field guidance.
> - This pull request repairs those test preconditions and native
guidance, then fixes restart/approval defects exposed by the corrected
baseline. It also restores missing OpenCode tool-error evidence.
> - The benefit is an inspectable baseline before any further
instruction reduction.

## Linked Issues or Issue Description

Refs #15407.

The original 15-cell baseline remains 0 PASS / 15 FAIL. Ten cells
stopped on stale titles, two Codex cells had schema denials, two
OpenCode cells used already-granted tools, and one Claude cell returned
no native result. No intended user decisions were submitted. The exact
invalid Codex field and underlying Claude failure cause remain unknown.

[Original
campaign](https://github.com/paperclipai/paperclip/actions/runs/37562577199)
· [Original
report](https://d1p6rlowie26tp.cloudfront.net/runner-e2e/campaigns/gha-37562577199-1/index.html)

## What Changed

- Match the browser's task route and visible identifier instead of a
title the agent can change.
- Start native provider-choice fixtures with no agent tool access.
Verify the public effective-access records.
- In the positive case, select Arcade, then grant its exact HubSpot tool
through the real access card. Require both saved decisions and exactly
one observed call.
- Return a canonical `providerQuestionSet` for native input and retain
the equivalent legacy `providerQuestion`.
- Keep invalid input rejected. Return bounded schema locations and
required field names without submitted values.
- Preserve Claude's exact session/content identity while allowing
authenticated registered instruction-copy paths to rotate on a new run.
- Reject duplicate approval reports for an existing exact tool-action
card before they create another human review.
- Wait for a recorded service-approval continuation within the existing
deadline; retain missing or failed continuation grades.
- Forward OpenCode tool activity through the runner facade, preserving
bounded errors and execution-part identity without inventing host-call
joins or exposing arguments.
- Preserve original grades, costs, scope limits and diagnoses in the
dated repair report.

## Verification

- Eval typecheck passes. Support suite: 1,801 PASS, one intentional
skip; Node checks: 128 PASS.
- Connection/schema tests: 51 PASS. Real-server public fixture setup:
one PASS with zero providers.
- Browser support regression: five PASS, including renamed and wrong
tasks.
- Focused Rust safe-feedback test: one PASS.
- Repository typecheck and build pass before the latest master replay.
Post-replay connection/shared/real-server fixture checks: 52 PASS; eval
typecheck passes. The browser review fix additionally passes all five
browser checks and seven suite checks.
- The full local repository run was interrupted incomplete after about
45 minutes, with five integration failures retained. All five pass in a
separate targeted invocation (1,250 unrelated tests skipped). No full
local-suite pass or root cause for the initial local failures is
claimed.
- Corrected frozen source `162cc90fdabe7f505b88ae095044531b82784c92`:
**10 PASS / 5 FAIL** across the [passing Codex
canary](https://github.com/paperclipai/paperclip/actions/runs/37575158761)
and [remaining 14
cells](https://github.com/paperclipai/paperclip/actions/runs/37576261807).
The canary passes all 17 checks. Claude's two provider-choice
continuations fail on restart, Claude service approval exposes an early
evaluator rejection, Codex service approval creates a duplicate
approval, and OpenCode provider-second times out after both decisions
with no HubSpot call. No original result is regraded.
- Final ledgers count 31 actual runs: 27 succeeded, two failed, two
cancelled during cleanup. All 15 cleanup/budget checks pass. The late
Claude continuation is absent from its earlier workflow snapshot; it
remains in the result/API/final ledger. Original evidence retains 279
hashes. Recorded LLM subtotal $0.04553787 is incomplete billing, not
actual total cost; local runtime is unmetered.
- New repair regressions reproduce the Claude attach failure, duplicate
approval acceptance and dropped OpenCode tool events before their
respective fixes. Nine Rust attachment checks, 127 ACPX host/adapter
tests, 33 completion/control-plane checks, nine eval deadline tests, 59
OpenCode proxy/driver tests, one Rust tool-error/redaction check, and
TypeScript/Rust composer parity pass. Eval typecheck, repository
typecheck and build pass. Existing support coverage is 1,802 PASS plus
128 Node PASS, one intentional support skip; two additional deadline
tests also pass.
- New-source full CI/review and live canaries are pending. The next
bounded selection is Claude provider-decline, Codex service-approve and
one OpenCode provider-second diagnostic with repaired event evidence. No
broader campaign or instruction-reduction qualification is claimed.
- Initial corrected campaign
[37574251834](https://github.com/paperclipai/paperclip/actions/runs/37574251834)
was cancelled during shared build after review found the breadcrumb
whitespace assumption. Its matrix job has zero steps and no provider
execution. The real adjacent-span browser regression now reproduces the
old failure and passes after the fix.

## Risks

- The corrected baseline remains 10/15. The new restart/approval fixes
require live qualification; OpenCode evidence forwarding does not itself
establish or fix its prior behavioral failure.
- The positive provider case now expects three runs, including separate
access approval. Its new results are distinct from the original invalid
fixture.
- The old Claude missing-result cause and rejected Codex field are
unknown. These repairs do not retroactively explain or erase either
failure.
- Path rotation must preserve prompt, custom instruction, skill/content
identity and protected provider settings; regression checks reject stale
or changed content. No connection authorization, JSON schema, budget,
cleanup, or final-result requirement is relaxed. Historical Everyday
prompts and gateway setup remain unchanged.

## Model Used

OpenAI Codex, GPT-6. The exact deployment variant and context window are
not exposed in this session. Used repository inspection, code editing,
test execution and retained-evidence analysis.

## 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>
canary/v2026.1007.0-canary.6
2026-10-07 06:18:51 -05:00
03cf6a6ecb chore(lockfile): refresh pnpm-lock.yaml (#15359)
Co-Authored-By: lockfile-bot <lockfile-bot@users.noreply.github.com>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
nightly/v2026.1007.0-nightly.0 canary/v2026.1007.0-canary.5
2026-10-06 22:44:24 -07:00