Commit Graph
353 Commits
Author SHA1 Message Date
Dotta 8ce546da0e Fix Pi memory parent setup and retired observer cleanup 2026-10-05 21:14:26 -05:00
Dotta b3318d6bed fix(e2e): preserve existing directory watch coverage and exact memory prompt 2026-10-05 20:21:34 -05:00
Dotta ab0483d0cc fix: retain Pi fixture evidence before failed grades 2026-10-05 19:54:21 -05:00
Dotta df748c9977 fix: canonicalize owned Runner E2E temporary roots 2026-10-05 19:31:28 -05:00
Dotta 867fa47116 fix: preserve Pi fixture bytes and trusted cleanup ancestry 2026-10-05 19:00:24 -05:00
Dotta b012b3aebe fix(runner): synchronize Pi profile 15 native admission 2026-10-05 17:56:58 -05:00
Dotta 1d16be5c42 fix: bind the corrected Pi question extension to profile 15 2026-10-05 17:41:17 -05:00
Dotta a9b15379b8 test: align Pi memory completion with its internal-file contract 2026-10-05 17:31:17 -05:00
Dotta 926104e4d6 Order Pi memory verification and cross-root denial before completion 2026-10-05 17:13:42 -05:00
Dotta 1998fd7ae9 Bound Pi memory fixture with a plain byte contract 2026-10-05 16:53:06 -05:00
Dotta efb90aff47 Sync Pi native coverage fingerprint assertions 2026-10-05 16:48:28 -05:00
Dotta bfd0292f5e Admit stable verified runner links in Pi provider-death fixture 2026-10-05 16:28:24 -05:00
Dotta 660c6f63f6 Clarify exact native Pi memory content including final newline 2026-10-05 16:21:30 -05:00
DottaandPaperclip 021416d254 Integrate bounded Pi installer review corrections
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-05 14:32:35 -05:00
DottaandPaperclip 5120ddc8f3 Carry explicit Pi setup network and SDK fixture corrections
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* commit '5aff21d776807e52eef5cc5ff596ba6a7c34c1ed':
  Preserve explicit Pi setup network settings and current SDK fixtures
2026-10-05 14:28:35 -05:00
DottaandPaperclip 5aff21d776 Carry explicit Pi setup network and SDK fixture corrections
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* commit 'fcef1eae9bc7e780732ab47fcbe71de1a8aa9714':
  Preserve explicit Pi setup network settings and current SDK fixtures
2026-10-05 14:28:02 -05:00
DottaandPaperclip fcef1eae9b Preserve explicit Pi setup network settings and current SDK fixtures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-05 14:27:02 -05:00
DottaandPaperclip baaf444ed7 test(evals): synchronize Pi file coverage fingerprint
Align the cross-suite coverage assertion with extended definitions 3 after the expanded Linux preflight exposed the stale version and hash. Retain that failed preflight and the passing focused checks.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-05 11:49:15 -05:00
DottaandPaperclip 120eb7f01e fix(evals): make Pi file task shell limit explicit
State the existing single-Bash oracle in the task prompt and use the supplied post-edit registration metadata. Preserve the grader, original failed attempts and free fault-calibration limits.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-05 11:31:59 -05:00
Dotta b224e43382 fix(evals): attest Pi wrapper descriptor launches 2026-10-05 10:20:47 -05:00
Dotta 04f639eeb4 test(evals): pin Pi controls birth identity definition 2026-10-05 09:19:38 -05:00
Dotta a4588964d8 fix(evals): use remote birth identity for Pi controls 2026-10-05 09:10:37 -05:00
Dotta 14c48ff408 fix: select actionable Pi permission cards after setup approval 2026-10-04 21:14:20 -05:00
Dotta 9cb5ac2c41 fix: scope Pi remote fixture setup approval to its published read 2026-10-04 20:50:07 -05:00
Dotta 585b43d3ab fix: validate Pi fault fixture against canonical closure pin 2026-10-04 20:09:04 -05:00
DottaandPaperclip 6cfc79b50d Require complete Pi control-plane steering settlement
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 17:27:37 -05:00
DottaandPaperclip dc2b053f34 Validate control-plane settlement in Pi steering evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 17:15:44 -05:00
DottaandPaperclip 4237bc369a Steer the original live ACPX provider turn
Honor the explicit provider binding while retaining durable command identity, reject malformed bindings without fallback, and stop qualification immediately when the real API rejects steering.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 14:37:48 -05:00
DottaandPaperclip 2a6107c049 Bind Pi steering to the submitted browser comment
Preserve exact queue authority through editor Markdown serialization and bound installer scratch capacity for Pi assembly.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 14:10:56 -05:00
DottaandPaperclip 03dd6ef933 fix(e2e): admit streamed Pi write paths before control
Calibrate partial native arguments against the retained permission boundary, retaining strict conflicting-path rejection. Extend public npm consumer verification through the CLI Pi setup and credential-free packaged startup.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 13:51:40 -05:00
DottaandPaperclip 2b3d7ff0ae fix(e2e): compare Linux restart process times at observed precision
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 13:28:05 -05:00
DottaandPaperclip 780471702c fix(runner): bind restored ACP requests to durable and provider turns
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 13:04:41 -05:00
DottaandPaperclip 82a36a079d test(runner): separate ACP warm continuity from agent-file collection
Use workspace-only prompts for ACP same-process continuity while retaining Codex managed-home checkpoints and Pi fresh-task agent-file persistence coverage.

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-02 11:31:17 -05:00
DottaandPaperclip 59bd71dff2 Preserve the owned Pi runner across controller-only E2E restart
Separate durable runner preservation from final process retirement. Bind
restart preservation to the public run identity and observed ancestry, and
drain every retained owner after the replacement controller shuts down.

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-02 09:43:06 -05:00
DottaandPaperclip ad83416b03 test(runner): recognize pre-start Pi submission identity
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 06:38:22 -05:00
DottaandPaperclip 9f6f020da6 test(runner): grade Pi file validation from native streamed evidence
Accept unresolved edit targets only before the exact terminal target, and bind validation to ordered command progress plus a successful native structured output receipt. Calibrate against a sanitized actual stream and keep independent artifact and download checks.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 05:46:33 -05:00
DottaandPaperclip 65fd61e6f3 test: align Pi admission and installed plugin fixtures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 05:28:04 -05:00
DottaandPaperclip f5c5fde380 Bind Pi 1.0 reasoning modes through rich ACP and recovery
Require explicit native-effective thinking modes, reject drift across reconnects, and retain observed settings in qualification artifacts. Version the profile and pinned wrapper closure for the new contract.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 03:21:26 -05:00
DottaandPaperclip 30edeec300 test(runner): verify installed launch and published Daytona plugin
Invoke the public Playwright JavaScript entry directly for installed Pi tests so pnpm shim NODE_PATH injection cannot cross the closed controller boundary. Add a credential-free health/UI startup proof and a pinned published Daytona plugin fixture path without production runtime overrides.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-02 01:34:42 -05:00
DottaandPaperclip d385c430bf test(runner): qualify Pi through installed public CLI
Verify installed CLI/server pins and default runtime resolution for explicit Pi Product cells. Keep Cursor and Copilot pending while qualified Pi runs without the candidate override.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 22:58:39 -05:00
DottaandPaperclip 9d83e06b85 fix(runner): preserve Pi 1.0 serialized RPC events
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 22:03:21 -05:00
DottaandPaperclip 5a6a531575 test(runner-e2e): account for Pi provider-death catalog cell
Update the Pi candidate matrix assertion from 25 to 26 after adding the Daytona provider-death case. Runtime inputs and all other expectations are unchanged.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 19:39:40 -05:00
DottaandPaperclip 4c6adcadcb test(runner-e2e): verify pending Pi input after provider loss
Add one explicit Daytona Product cell that admits the exact Pi child before faulting it, then requires production expiry of the original native question, failed-run Blocked disposition, stale-answer rejection, distinct unanswered fallback, and no replay through owned retirement. Retain the existing local scope and pending qualification.

Calibrate public lifecycle evidence, generated observer one-shot dispatch, and candidate failure classification. Runtime, provider profile, dependency closure, deadlines, and lockfiles are unchanged.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 19:26:25 -05:00
DottaandPaperclip 30f5bc57b5 test(runner-e2e): calibrate exact Pi child fault ownership
Add closed Linux pidfd admission for the unique Pi child of a source-pinned wrapper, with full run ancestry and executable identity checks. Exercise title overwrite and ownership-safe cancellation in the standard E2E unit path; macOS explicitly skips the native Linux process calibration.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 19:17:32 -05:00
Dotta 5cd6d3d523 test: strengthen Pi editing and pending native recovery qualification 2026-10-01 17:36:20 -05:00
DottaandPaperclip 5eba61ece9 Merge recorded master baseline into Pi 1 production candidate
Integrate 8ec4b84e1c before runtime qualification, preserving the new workspace restore lock, continuation and Docker packaging fixes. Pi profile 11 source and distribution inputs are unchanged by this merge.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 15:17:17 -05:00
DottaandPaperclip 2d60b454a7 feat(runner): upgrade closed Pi runtime to 1.0 profile 11
Preserve structural system messages without assistant attribution, disable native cache warming, and require queued continuation acknowledgements. Pin the complete upstream 1.0 dependency closure and retain historical profile evidence.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 15:16:41 -05:00
DottaandPaperclip 9e0ede4cbe test(runner-e2e): retain Pi steering presentation evidence
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-10-01 11:21:03 -05:00
DottaandPaperclip 33a00d2f1e fix(ui): reopen last visited agent chat (#14848)
## Thinking Path

> - Paperclip helps people manage AI agents and their work.
> - Agent Chat keeps one conversation for each agent and board user.
> - The Chat sidebar entry opens the agent chooser each time.
> - A user must then find and reopen the chat they just used.
> - The browser already records recent agent chat visits by company and
user.
> - This pull request uses that record to reopen the last available
chat.
> - The chooser still serves users who have no available saved chat.

## Linked Issues or Issue Description

Related: #14706 added the secondary Agent Chat navigation.

**What happened?**

The Chat sidebar entry opened the agent chooser, even after a user
opened an agent chat.

**Expected behavior**

The Chat entry should reopen the last agent chat visited by the current
user in the current company.

**Steps to reproduce**

1. Enable Agent Chat and open a chat with an agent.
2. Open another page.
3. Select Chat in the sidebar.
4. Observe the agent chooser instead of the chat.

**Paperclip version or commit**

Reproduced on master at `0829d94af`.

**Deployment mode**

Local development, browser UI. The change also uses the same browser
storage path in authenticated mode.

## What Changed

- Use the existing recent chat record when the Chat landing route opens.
- Check saved agents against the current roster and chat history before
redirecting.
- Keep the chooser when no saved chat is available, and show a retry
state for load errors.
- Add route tests and update the Agent Chat implementation spec.

## Verification

- `pnpm exec vitest run ui/src/pages/AgentChats.test.tsx
ui/src/lib/recent-agent-chats.test.ts` — 16 tests passed.
- `pnpm check:token-gates` — passed.
- `pnpm exec playwright test --config tests/e2e/playwright.config.ts
tests/e2e/agent-chat-sessions.spec.ts --grep 'secondary chat navigation
preserves layout'` — passed.
- `pnpm --filter @paperclipai/ui typecheck` — passed on the final
commit.
- `pnpm -r typecheck` and `pnpm build` — passed earlier in this branch;
latest-head CI completed all 47 jobs successfully.
- `pnpm test:run` reported an unrelated native runtime test failure
before it was stopped. That test and an unrelated external object
refresh test passed in isolation. CI runs the same suites on the PR.
- To check in the UI: open an agent chat, leave it, and select Chat. The
same chat should open. Clear the recent chat record or use another
company to see the chooser.

## Risks

- The recent order is stored in the browser. Clearing browser storage
returns the user to the chooser.
- An existing chat ID is stored with its visit. If the chat is removed,
the landing route skips that visit when history loads. Cross-tab storage
removal clears the identity; failed writes retain an in-tab fallback.
- The landing route waits for the agent roster and validates saved issue
IDs against chat history when available. If history fails, an active
agent chat can still open; roster or session failures show a retry
action.
- No database or API contract changes are required.

> 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, GPT-6 family. The runtime did not expose an exact API
model ID or context window. It used reasoning, repository tools, shell
commands, and code 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-10-01 11:01:45 -05:00
Dotta e12b25f2b4 test(runner-e2e): qualify Pi active Stop and steering 2026-10-01 10:44:04 -05:00