Commit Graph

4204 Commits

Author SHA1 Message Date
Dotta da949fe78f fix(runner): restore sandbox environment support 2026-09-03 06:13:40 -05:00
Dotta 82a739a580 test(runner): assert admitted ACPX turn contract 2026-09-03 05:53:46 -05:00
Dotta fd16a3f9c7 chore: defer lockfile refresh to automation 2026-09-03 05:47:02 -05:00
Dotta c0cd71b2d9 Merge remote-tracking branch 'origin/master' into fix/runner-paid-matrix-integrity
* origin/master:
  chore(lockfile): refresh pnpm-lock.yaml (#12737)

# Conflicts:
#	pnpm-lock.yaml
2026-09-03 05:45:57 -05:00
Dotta 571ce024bf chore(runner): refresh verified provider lock 2026-09-03 05:44:48 -05:00
Dotta 93f82b6b2e fix(runner): admit recovered ACPX provider ownership 2026-09-03 05:43:19 -05:00
Dotta 65c204f060 fix(runner): keep stopped provider checkpoint closed 2026-09-03 05:27:04 -05:00
Dotta a55b6e6409 fix(runner): detect active ACPX turns on close 2026-09-03 05:20:03 -05:00
Dotta a418938524 test(runner): await active suspension state 2026-09-03 05:11:55 -05:00
Dotta 2cf19a8de0 fix(runner): settle parked provider before suspend 2026-09-03 05:04:41 -05:00
Dotta f810246e8b test(runner): allow formatted patch keys 2026-09-03 04:54:27 -05:00
Dotta c0af2eb0e0 fix(runner): reuse qualified provider Node 2026-09-03 04:48:12 -05:00
Dotta ac2b98eea8 fix(runner): settle provider turn before suspend 2026-09-03 04:41:50 -05:00
Dotta fb40d8a307 fix(runner): remove provider pack install hook 2026-09-03 04:39:09 -05:00
Dotta 43558e7783 fix(runner): replay durable attachment outcome 2026-09-03 04:23:40 -05:00
Dotta 620bb16f3b fix(runner): restore ACPX run attachment 2026-09-03 03:55:06 -05:00
github-actions[bot] da0947d358
chore(lockfile): refresh pnpm-lock.yaml (#12737)
## Thinking Path

> - Paperclip uses a frozen pnpm lockfile to create the same dependency
graph for each build.
> - The Claude local adapter now uses
`@agentclientprotocol/claude-agent-acp` version 0.73.0.
> - The root patch configuration contains a patch for version 0.73.0.
> - The committed lockfile did not contain the matching patch record.
> - A frozen install rejected this mismatch and stopped the master
deployment.
> - This pull request regenerates only `pnpm-lock.yaml` from the current
master manifests.
> - The change makes the frozen install valid again.

## Linked Issues or Issue Description

Refs #12730

**What happened?**

The master lockfile did not match the current patched dependency
configuration.

**Expected behavior**

The frozen install must accept the lockfile on master.

**Steps to reproduce**

1. Extract a clean archive of master.
2. Run `NODE_ENV=development CI=true pnpm install --frozen-lockfile
--force`.
3. Observe that pnpm rejects the stale lockfile.

**Paperclip version or commit**

`b1f4910ee57789c7045705a38c31ca34704f3575`

**Deployment mode**

Self-hosted server.

**Installation method**

Built from source with pnpm.

## What Changed

- Added the patch record for
`@agentclientprotocol/claude-agent-acp@0.73.0`.
- Updated the Claude local adapter lock entry to version 0.73.0.
- Added the matching transitive Claude agent SDK lock entries.

## Verification

- `git diff --check` passes.
- A clean archive of commit `236767cdd1832575fe93ea50f50df2890fb2bf1f`
accepts the frozen lockfile.
- `NODE_ENV=development CI=true pnpm install --frozen-lockfile --force`
completes with exit code 0 in that archive.
- Latest-head GitHub checks are green (32/32 success, neutral, or
skipped).
- Greptile passed the same head at 5/5 with zero unresolved threads.

## Risks

- Risk is low because pnpm generated the only changed file.
- The lockfile now records the dependency version that the manifests
already require.

## Model Used

OpenAI Codex with a GPT-5 family model produced this change. The runtime
does not expose the exact deployment ID or context size. The model used
high reasoning and shell execution.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used with the available 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 linked the related public pull request with `Refs #`
- [x] I have not referenced internal or instance-local Paperclip issues
or links
- [x] My branch name describes the change and contains no internal
Paperclip ticket id
- [x] I have run the required local verification and it passes
- [x] Tests do not need source changes for this generated lockfile
correction
- [x] Documentation does not need changes because behavior and commands
are unchanged
- [x] I have considered and documented the risks above
- [x] All Paperclip CI gates are green
- [x] Greptile has no open P2 findings, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before merge

Co-authored-by: lockfile-bot <lockfile-bot@users.noreply.github.com>
Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-09-03 08:50:01 +00:00
Dotta c284b092b7 Revert "build(runner): lock qualified provider runtimes"
This reverts commit 04843cce97.
2026-09-03 03:42:35 -05:00
Dotta 04843cce97 build(runner): lock qualified provider runtimes 2026-09-03 03:41:45 -05:00
Dotta 6e9bb95202 fix(runner): prove original ACPX provider exit 2026-09-03 03:38:16 -05:00
Dotta 848b8296d0 fix(runner): bind provider model before terminal 2026-09-03 03:27:49 -05:00
Dotta 7462d142dd Merge remote-tracking branch 'origin/master' into fix/runner-paid-matrix-integrity
* origin/master:
  fix(runner): retain aborted admission cleanup (#12755)

# Conflicts:
#	packages/paperclip-runner/src/drivers/acpx/runtime-host.test.ts
2026-09-03 03:26:17 -05:00
Dotta f1d9206c4a
fix(runner): retain aborted admission cleanup (#12755)
## Thinking Path

> - Paperclip manages AI agents and their work.
> - The runner starts ACPX sessions and controls their resources.
> - An aborted admission can leave sandbox preparation active after the
opening promise rejects.
> - Test teardown can then remove the sandbox directory before that work
ends.
> - This pull request retains and observes each unfinished admission
stage.
> - The change gives runtime resources and temporary directories one
deterministic cleanup owner.

## Linked Issues or Issue Description

**What happened?**

Under full test load, an aborted admission test can end before sandbox
preparation settles. Test teardown then removes the temporary session
directory. The active preparation can report an unhandled `ENOENT`
error.

**Expected behavior**

An aborted admission must observe and retain all active preparation
work. Test teardown must wait until that work settles.

**Steps to reproduce**

1. Run the complete `@paperclipai/paperclip-runner` test suite under CI
load.
2. Abort runtime admission during credential or sandbox preparation.
3. Observe an intermittent test timeout or an unhandled
missing-directory error.

**Paperclip version or commit**

The failure occurred on a branch based on commit `b1f4910ee`. This fix
is based on current `master` commit `4d30efa8e`.

**Deployment mode**

The failure occurred in GitHub Actions on a source build.

## What Changed

- Retain each unfinished abortable admission stage in the global
runtime-host cleanup set.
- Notify the embedding lifecycle when an aborted stage needs deferred
cleanup.
- Make test teardown abort and await all active opening and cleanup
promises before directory removal.
- Replace time-based stage detection with exact deferred stage signals.
- Add a deterministic regression test for an abort during sandbox
preparation.

## Verification

- Ran the focused runtime-host file in 20 separate processes. All 20
runs passed without an unhandled error.
- Ran `pnpm --filter @paperclipai/paperclip-runner exec vitest run
src/drivers/acpx/runtime-host.test.ts` after the rebase. All 27 tests
passed.
- Ran `pnpm --filter @paperclipai/paperclip-runner check:all` after the
rebase. The full command passed.
- The final TypeScript test stage passed 127 files and 1,490 tests. All
Rust checks, tests, and parity checks passed.
- Greptile reviewed two heads. The final review is 5/5 with no open
comments.
- All latest-head CI and security checks passed. One unrelated workspace
test passed on its permitted rerun.

## Risks

- Risk is low. An aborted stage now delays final runtime-host cleanup
until its active operation settles.
- A stage that never settles can delay embedding shutdown. The existing
stage operations have bounded or controlled owners.
- The regression test holds sandbox preparation and confirms the new
cleanup order.

> For core feature work, check [`ROADMAP.md`](ROADMAP.md) first and
discuss it in `#dev` before opening the PR. Feature PRs that overlap
with planned core work may need to be redirected — check the roadmap
first. See `CONTRIBUTING.md`.

## Model Used

OpenAI Codex with GPT-5 assisted this change. The environment did not
provide the exact deployment ID or context size. The model used
reasoning, shell tools, code editing, and test execution.

## 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
- [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-09-03 03:20:54 -05:00
Dotta 1f5e252238 docs(runner): clarify qualified model boundary 2026-09-03 03:17:48 -05:00
Dotta cbfb4f1bef fix(runner): select qualified ACP model alias 2026-09-03 03:17:13 -05:00
Dotta f5af8b2482 fix(runner): mirror qualified Claude runtime 2026-09-03 03:09:50 -05:00
Dotta a44cae61e1 ci(runner): retry Chromium installation 2026-09-03 03:08:31 -05:00
Dotta 9cad01d1cf fix(runner): prove ACPX replacement cleanup 2026-09-03 03:07:47 -05:00
Dotta ff4c29af92 fix(runner): retain qualified runtime target 2026-09-03 03:00:27 -05:00
Dotta 65692699cb Revert "ci(runner): move paid matrix to AWS fleet"
This reverts commit cfa4e2fbac.
2026-09-03 02:58:48 -05:00
Dotta cb9f13e6df Merge branch 'master' of https://github.com/paperclipai/paperclip into fix/runner-paid-matrix-integrity
* 'master' of https://github.com/paperclipai/paperclip:
  feat(ui): refine streamlined task experience (#12748)
  feat(ui): refine streamlined workspace surfaces (#12747)
  feat(ui): add streamlined navigation foundation (#12746)
2026-09-03 02:56:24 -05:00
Dotta e9f6a8ae3c fix(runner): pin Claude native runtime 2026-09-03 02:55:40 -05:00
Dotta cfa4e2fbac ci(runner): move paid matrix to AWS fleet 2026-09-03 02:52:14 -05:00
Dotta 40830f61e8 fix(runner): resolve exported ACP package manifests 2026-09-03 02:52:10 -05:00
Dotta d8ab1f0f3b fix(runner): qualify Claude ACP dependencies 2026-09-03 02:48:39 -05:00
Dotta 3a615a4743 test(runner): bound ACPX admission wait on CI 2026-09-03 02:39:50 -05:00
Dotta 439419debb test(runner): emit terminal text before finish 2026-09-03 02:32:37 -05:00
scotttong 4d30efa8e3
feat(ui): refine streamlined task experience (#12748) 2026-09-03 00:28:02 -07:00
Dotta c7731dc7dc fix(runner): align Codex ACPX admission digest 2026-09-03 02:20:11 -05:00
Dotta a9c5d81af6 fix(runner): align patched ACPX profile identity 2026-09-03 02:11:42 -05:00
Dotta edc5f3bc3e fix(runner): keep provider assets out of host resolution 2026-09-03 02:05:22 -05:00
scotttong b1f4910ee5
feat(ui): refine streamlined workspace surfaces (#12747) 2026-09-02 23:55:55 -07:00
scotttong 597fd63b61
feat(ui): add streamlined navigation foundation (#12746) 2026-09-02 23:55:43 -07:00
Dotta 2abaf1f3ad fix(runner): separate Codex approvals from questions 2026-09-03 01:53:21 -05:00
Dotta 6d199c4c61 test(runner): spell out terminal result fixture 2026-09-03 01:51:54 -05:00
Dotta 60c0c57638 chore(deps): leave lock refresh to PR policy 2026-09-03 01:49:55 -05:00
Dotta 3be5f48053 fix(runner): preserve OpenCode terminal results 2026-09-03 01:49:00 -05:00
Dotta 3d8720c16f fix(runner): restore rooted ACPX package resolution 2026-09-03 01:45:52 -05:00
Dotta 6f0614ec74 fix(runner): restore providers before terminal cleanup 2026-09-03 01:10:06 -05:00
Dotta 0485678d17 fix(runner): close provider launch trust gaps 2026-09-03 00:59:12 -05:00