Commit Graph
5357 Commits
Author SHA1 Message Date
Dotta 7d59518e53 docs(runner): retain paid remote proof and qualification blockers
Paperclip-Task: rich-acp-production
2026-09-29 13:26:45 -05:00
Dotta 792ae6082e Merge shared ACP continuation fixes and current qualification evidence
Paperclip-Task: rich-acp-production

* commit '60dd81f2a':
  test(runner): isolate cancellation timing and portable snapshot paths
  docs(runner): record current local passes and first remote attempt
  test: await connection setup and persisted runtime identity
  docs(runner): record current paid qualification and shared recovery fix
  fix(runner): refresh settled ACPX run grants during authenticated attachment
  fix(runner): align editable draft bounds with Unicode schema lengths
  fix(ui): preserve canonical drafts in classic question cards
  fix(runner): refresh settled ACPX run grants during authenticated attachment
  Keep the legacy question fixture payload type-safe
2026-09-29 13:12:31 -05:00
Dotta ab0696ae9d test(runner): isolate cancellation timing and portable snapshot paths
Paperclip-Task: rich-acp-production
2026-09-29 13:12:05 -05:00
Dotta 60dd81f2a7 test(runner): isolate cancellation timing and portable snapshot paths
Paperclip-Task: rich-acp-production
2026-09-29 13:11:45 -05:00
Dotta bcd6572d60 docs(runner): record current local passes and first remote attempt
Paperclip-Task: rich-acp-production
2026-09-29 13:09:04 -05:00
Dotta d2734a81cb Merge ACP qualification test context and runtime readiness fixes
Paperclip-Task: rich-acp-production

* commit 'ed3a0df1c':
  test: await connection setup and persisted runtime identity
2026-09-29 13:07:17 -05:00
DottaandPaperclip ed3a0df1c1 test: await connection setup and persisted runtime identity
Complete the dialog fixture context and wait for the actual setup render. Observe the post-spawn PID update before checking the starting service identity, preserving provisioning and readiness assertions.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 13:04:12 -05:00
DottaandPaperclip b3eb03fcba fix(sentry): preserve run failure stacks and diagnostic context (#14585)
Builds on merged #14575 and targets `master`.

## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Operators use optional Sentry reports to diagnose failed agent runs.
> - The shared reporter currently converts each saved error message into
a new exception.
> - This loses the original stack and cause chain, and omits available
adapter and provider diagnostics.
> - This pull request selects, redacts, and bounds useful diagnostics
before it sends them to Sentry.
> - Operators can locate the failing operation and correlate upstream
failures without copying arbitrary run data.

## Linked Issues or Issue Description

Refs #14573. That change preserves ACP provider failure details in the
run record.
Refs #14575. That merged PR adds recorded exit codes and signals. This
PR covers stacks, causes, and structured diagnostics without duplicating
those fields.

A thrown setup or adapter error currently appears in Sentry with the
reporter's stack. A saved provider failure can contain useful details
that never reach the Sentry event. Both cases use the same shared
reporting path.

## What Changed

- Pass caught setup and execution exceptions, and structured adapter
error metadata, through successful terminal status transitions.
- Snapshot a fixed set of execution, adapter, provider, and exception
fields. Preserve up to four exceptions in the cause chain.
- Remove registered secret values, declared runtime environment
credentials, unknown inherited environment values and encoded credential
forms, and credential patterns before truncation. Mark truncated fields
and bound provider details and stacks.
- Rebuild sanitized Sentry exceptions with the original stacks and
causes. Use an adapter stack preview when available. Omit a fabricated
reporting stack when the source has no stack.
- Keep contexts local to each event. Preserve the optional DSN gate and
existing error-code/adapter fingerprint.
- Document the fields, limits, and omitted data.
- Settle leftover chat fixture outbox rows only after assertions and
worker shutdown, so subsequent tests cannot claim earlier cases’ pending
actions or provider I/O. This fixes the CI shard contamination exposed
during verification; production chat behavior and test timeouts are
unchanged.

## Verification

- `pnpm -r typecheck` passed.
- `pnpm build` passed.
- 86 focused diagnostic, Sentry, and startup tests passed after the
rebase, including the real `@sentry/node@10.71.0` SDK with an in-memory
transport.
- Tests cover cause chains, HTTP status and request IDs, long provider
details, secret redaction, failed secret resolution, cyclic causes, size
limits, and context isolation.
- Five targeted heartbeat integration cases passed, including thrown and
returned errors containing an opaque environment-bound credential. The
earlier full heartbeat integration run also passed its integration
cases.
- The focused suite also passed with an unknown inherited environment
value set to `1`; reporting tests use a controlled environment and
separately verify short-secret redaction.
- Before the fixture cleanup, the full chat shard reproduced the CI
Telegram timeout at `pending recovery before restart` (354 passed, 1
failed). After the cleanup, the same shard passed all 355 tests. No
timeout or production behavior changed.
- Latest-head CI (`0ae9e70df321d66dda025c3a7ba4787e169e0a4f`) passed
typecheck, build, all 12 server shards, all 3 chat shards, workspace and
serialized suites, browser shards, Runner checks, canary validation, the
real Sentry SDK contract, and security checks. Required `ci / verify`
and `ci / e2e` passed.
- The branch has been rebased onto `master` after #14575 merged. All 55
applicable checks passed on this head (2 unrelated Storybook checks
skipped). Greptile re-reviewed the current 11-file diff at 5/5 with no
findings or unresolved review threads.
- Local monolithic full-suite attempts were interrupted to apply fixes;
full-suite success is not claimed from those runs.

## Risks

- Error messages and stacks can contain credentials. The reporter uses
existing redactors and the run's encrypted secret registry, reads only
known fields, and skips capture if registered-secret resolution fails.
- Unknown environment values remain private by default. Unrecognized
short values can mask benign matches; known public settings are
explicitly allowed.
- Diagnostic text is bounded and can be truncated. Truncation is
explicit. Data discarded upstream cannot be recovered.
- These additional fields go to the operator's configured Sentry
endpoint. Arbitrary request/response objects, headers, configuration,
prompts, and stdout/stderr are not copied.

## Model Used

OpenAI GPT-6 through Codex, with tool use and code execution. The exact
serving model ID, context window, and configured reasoning level 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
#` / `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-29 12:54:12 -05:00
DottaandPaperclip 2de43fc909 fix(issues): keep agent mentions as context and defer personal app authorization (#14577)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Each task has one assignee. Explicit assignment and review requests
select who should act.
> - An agent mention started another agent on a task it did not own.
Native attachment staging then rejected that run.
> - Allowing that run through startup could also let two agents work on
the same task.
> - Mentions should identify relevant context. They should not start
work or forward comments to other tasks.
> - A personal app installed on a shared agent must also wait until tool
use to resolve the current user's grant.
> - This pull request removes mention dispatch and keeps missing
personal app credentials from blocking startup.

## Linked Issues or Issue Description

**What happened?**

A native agent mentioned on another agent's task failed with
`paperclip_runner_attachment_staging_not_authorized`. The source task
could already be complete. A nearby optional-app warning was a separate
problem: personal app tools were excluded when their shared health state
required attention.

**Expected behavior**

An agent mention is context only. It does not wake the agent, take
ownership, or copy a comment onto another task. Normal feedback still
reaches the assignee. Assignment and explicit review requests still
dispatch work. An unavailable personal app does not block startup or
produce a startup warning. Tool use requests the current user's
authorization and never uses another user's grant.

**Steps to reproduce**

1. Assign a task to agent A. Post a comment that mentions agent B,
including a comment that closes A's task or references B's child task.
2. Confirm the comment retains its agent link and B receives no run or
deferred wake. A can still receive normal feedback.
3. Install an active personal MCP connection on B. Give only Alice a
grant and leave shared health at `error`.
4. Explicitly assign work to B for another user. Confirm it can finish
without using the app.
5. Ask B to use the app. Confirm its tool call shows an inline
connection request for the current user.

Related work: Refs #11144. This change uses the existing execution-time
personal grant resolution.

## What Changed

- Remove mention dispatch from standalone comments and issue updates.
Remove implicit forwarding of parent comments to a mentioned worker's
child task.
- Ignore new requests with the legacy mention wake reason before
creating a run or deferred request. Preserve already accepted queue
entries, which can combine assignments and feedback with a later
mention.
- Remove the native mention admission, staging, and finalization
exceptions from this PR. Native task ownership checks remain intact.
- Keep active, installed personal app tools available despite shared
health errors. Remove optional-app startup warnings. Tool execution
retains the current user's grant and policy checks.
- Update agent instructions and product/API docs. Refresh generated
capability source anchors.

## Verification

- Red: comment-route regressions reproduced extra agent wakes and child
comment forwarding. A separate regression proved that cancelling by the
last coalesced reason could drop an accepted assignment.
- Green: the targeted route, wake queue, heartbeat, workspace,
responsible-user, MCP discovery, and HTTP gateway suites passed. The
final queue and heartbeat rerun passed 104 tests, the restored queue
adapter passed 56, and both comment-route suites passed 135. These
include accepted assignment preservation, rejection of new mention
requests, and normal assignee feedback.
- `pnpm -r typecheck` and `pnpm build` passed locally. The full local
`pnpm test:run` attempt was interrupted for review/CI fixes, so it is
not claimed as a completed local pass. It exposed a cleanup timing race
in the concurrent-mention assertion, now fixed and verified across 10
repetitions. CI also exposed an obsolete test waiting for the removed
mention lookup; it was reproduced and fixed, then both comment suites
passed. Final full-suite verification is through CI.
- Final head `bd9ea4cb05a8f081c54e017760a8999f9ea6ef44`: 54 checks
passed, 2 Storybook checks intentionally skipped; no pending or failing
checks. Full CI includes general and serialized suites, all 8 browser
shards, runner verification, typecheck, build, and canary dry run.
Greptile is 5/5 on this exact commit, with no unresolved findings.
- One unchanged Cursor adapter test hit its 10-second CI timeout. All 5
tests in that file passed locally; one retry of its CI shard passed all
674 tests (3 skipped). The aggregate verification gate then passed. No
code or timeout was changed for that retry.
- Live browser check: inserted a structured mention with the picker on a
human-owned task. The saved link remained visible. Database checks found
zero new runs and zero wake requests.
- Live Codex runner check: explicitly assigned that task with the
unavailable personal app attached. The run succeeded and committed
completion without using the app or creating a connection card.
- Live browser follow-up: asked the assignee to call PostHog and
mentioned another enabled agent as context. Only the assignee ran. It
succeeded and displayed the existing inline connection card. Only
Alice's grant existed; the run belonged to a different user.
- The HTTP regression covers tool discovery with no provider calls or
connection cards, first use returning the current user's authorization
request, and successful retry after that user's grant exists.
- App checks use an isolated local fixture and a fake MCP provider. They
do not use production app credentials.

## Risks

- Intentional behavior change: workflows that used mentions to wake
agents must use assignment, a bounded child task, or an explicit review
request.
- Already accepted queue entries retain their prior rules. An old entry
can combine assignment or feedback with a later mention; its last reason
cannot safely identify mention-only work. New mention requests create no
run or deferred wake.
- Personal apps with a shared health error remain discoverable. Actual
tool use still requires the responsible user's grant and existing policy
gates.
- No database migration or public API schema change.

## Model Used

- OpenAI GPT-6 through Codex, with reasoning, repository tools, code
execution, and browser testing. The exact serving model ID and
context-window size are not exposed in this session.
- Live native-run verification used `gpt-6-astra` through the Codex
provider.

## 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-29 12:49:01 -05:00
DottaandPaperclip bd4cc29c30 docs(runner): record current paid qualification and shared recovery fix
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:40:38 -05:00
DottaandPaperclip 482471f0c1 Merge reviewed shared ACP input and continuation fixes
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/runner-acp-inputs:
  fix(runner): refresh settled ACPX run grants during authenticated attachment
  fix(runner): align editable draft bounds with Unicode schema lengths
  fix(ui): preserve canonical drafts in classic question cards
  Keep the legacy question fixture payload type-safe
2026-09-29 12:40:14 -05:00
DottaandPaperclip 3a12ec4bef fix(runner): refresh settled ACPX run grants during authenticated attachment
Keep provider, session and semantic runtime context identities immutable while allowing registered per-run roots, MCP binding and current instructions to refresh on a new authenticated run. Reject same-run mutations and retain settlement gates with safe diagnostic reasons.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:39:25 -05:00
DottaandPaperclip 4f9506072c fix(runner): align editable draft bounds with Unicode schema lengths
Count initialText Unicode code points consistently in TypeScript, Zod, JSON Schema and Rust. Keep submitted-answer UTF-16 limits unchanged, with mixed BMP and astral boundary tests inside the wire byte cap.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:39:25 -05:00
DottaandPaperclip c2b0c804cb fix(ui): preserve canonical drafts in classic question cards
Reuse the canonical question form for pending structured questions so provider drafts, persisted edits, validation and exact submitted text survive both task surfaces.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:39:03 -05:00
DottaandPaperclip 0121d05458 fix(runner): refresh settled ACPX run grants during authenticated attachment
Keep provider, session and semantic runtime context identities immutable while allowing registered per-run roots, MCP binding and current instructions to refresh on a new authenticated run. Reject same-run mutations and retain settlement gates with safe diagnostic reasons.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:31:28 -05:00
Devin FoleyandPaperclip e5bf9d49a5 fix(sentry): retain recorded process exit details (#14575)
## Thinking Path

> - Paperclip manages agents and records their task runs.
> - Operators can enable Sentry reports for terminal run failures.
> - A failed adapter can leave only the generic message “Adapter
failed.”
> - The run already records a process exit code and signal, but the
report omits them.
> - This pull request carries those two values through a strict capture
boundary.
> - Operators can distinguish a nonzero exit from signal termination
when the message is generic.

## Linked Issues or Issue Description

**What happened?**
A failed run can store `exitCode: 1` or `signal: "SIGTERM"` while its
Sentry event contains only `adapter_failed` and “Adapter failed.” The
existing reporter drops both recorded fields. This occurs on the current
master reporting path.

**Expected behavior**
The opt-in report preserves bounded process exit evidence without
exporting adapter output or changing run behavior.

**Steps to reproduce**
Enable the backend Sentry DSN and report a failed run whose message is
“Adapter failed” and whose stored signal is `SIGTERM`. Before this
change, the event has no signal field. After this change,
`run_failure.signal` is `SIGTERM` and the existing fingerprint stays the
same.

Related: #12105 and #8222 describe missing adapter/HTTP failure details.
#13152 changes terminal-result cleanup classification, and #12886 adds
process-failure classification and runtime URL checks. None forwards
these stored fields through the Sentry reporter. This change does not
resolve those broader issues.

## What Changed

- Forward the stored exit code and signal from the terminal run
reporter.
- Accept only signed 32-bit integer exit codes; use `null` for missing
or malformed values.
- Accept only the reporting host's Node signal constants; use `null` for
missing values and `unknown` for unrecognized values.
- Keep the added fields in event-local context, outside tags and
fingerprints.
- Cover database-backed reporting, malformed input, privacy, and
isolation through the real Sentry SDK.
- Document the fields and their limits.
- Give the dedicated Sentry job the normal PR dependency-resolution
fallback, with lifecycle scripts disabled on every install and the
required real-SDK test retained.

## Verification

- Before the change: 16 report-shape/exit-field assertions failed in the
focused capture suite.
- After the change: 91 focused Sentry, DSN, and database-backed
reporting tests passed. The real SDK uses an in-memory transport.
- Final real-SDK test also passed with malformed metadata; it verifies
that arbitrary signal text is absent from captured events and unrelated
errors inherit no run context.
- `pnpm -r typecheck`: passed.
- `pnpm build`: passed.
- `pnpm test:run`: exited nonzero after 718 general-server files: 14,085
tests passed, 14 failed, 86 skipped. Thirteen skill-service/cache
failures reproduce on the unchanged base commit on this macOS host. One
comment-wake test timed out; the complete 29-test suite passes on the
unchanged base and in final-head Linux CI. Local isolated rechecks
skipped because embedded PostgreSQL could not start; these are not
counted as passes. The remaining local workspace/serialized lanes did
not run after the failing first lane; all CI lanes passed.
- Initial Sentry CI failed before tests with
`ERR_PNPM_LOCKFILE_CONFIG_MISMATCH`. Its install step lacked the normal
PR fallback. The repaired real-SDK job passed. Security review then
requested disabling lifecycle scripts for resolved dependencies; every
install now uses `--ignore-scripts`. A fresh isolated checkout passed
the exact script-disabled fallback and real-SDK contract. Final-head
real-SDK CI and the security scan passed.

- GitHub CI: all 54 checks passed on
`37e0a836e50660f7753d367bcf5a4959eaf89b90`, including required `ci /
verify` and `ci / e2e`; two unrelated checks skipped.
- Greptile: 5/5 on that commit. No unresolved review comments.
- Merge status: conflict-free; required CODEOWNER approval for the
workflow change is still pending.

## Risks

Low risk: this only adds two validated fields to existing opt-in error
reports. It changes no database schema, run status, retry, fingerprint,
or suppression rule. Process output and adapter result payloads remain
excluded. A recorded signal does not identify its sender or prove an
out-of-memory kill. Missing exit evidence stays unknown; this change
does not establish the cause of a historical generic adapter failure.

## Model Used

OpenAI GPT-6 (Codex), with reasoning, terminal tools, and code
execution. The context window size is 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`
/ `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 references)
- [x] My branch name describes the change and contains no internal
ticket id or instance-derived details
- [x] I have run focused tests locally and they pass; broader validation
is recorded above
- [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>
canary/v2026.929.0-canary.6
2026-09-29 12:29:17 -05:00
DottaandPaperclip bb56af7fbd Keep the legacy question fixture payload type-safe
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:28:36 -05:00
DottaandPaperclip 807feaecf2 test(runner): prove Pi editor canonical draft roundtrip
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:18:56 -05:00
Dotta 7c140a2aff Integrate reviewed shared ACP input preservation
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/runner-acp-inputs:
  fix(ui): isolate pending question drafts by request identity
  feat(runner): preserve editable question defaults through explicit response
  fix(ui): allow clearing preloaded markdown on the first edit
  Check exact candidate eval profile before provider startup
  Bound Daytona provider build worker memory

# Conflicts:
#	ui/src/components/task-chat/QuestionForm.test.tsx
2026-09-29 12:18:00 -05:00
DottaandPaperclip f308b14dae fix(ui): isolate pending question drafts by request identity
Remount question state before persistence when request identity changes, retaining same-request edits. Preserve exact canonical text at the compact-card API boundary while keeping legacy and custom-answer trimming.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:17:25 -05:00
DottaandPaperclip c7869a980a Record current ACP review results and remaining capability gaps
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:16:14 -05:00
DottaandPaperclip 7bd453d33d Integrate Pi v7 native tool and input contracts
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* commit '72ded1794':
  test(runner): distinguish Pi blank transport from form support
  fix(runner): admit Pi MCP names and bound native questions
2026-09-29 12:13:58 -05:00
DottaandPaperclip 91f7e91275 Integrate bounded Cursor activity projection
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* commit '2e0b0fec0':
  Bound Cursor todo activity before committing reducer state
2026-09-29 12:13:58 -05:00
DottaandPaperclip c5a4714add feat(runner): preserve editable question defaults through explicit response
Carry bounded text-only initialText through ACP normalization, Rust durable validation, shared contracts and the question UI. Saved edits and explicit clears survive reload. Preserve canonical submitted text while retaining legacy custom-answer normalization and existing validation.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:07:19 -05:00
DottaandPaperclip 8e8cdd7aaa fix(ui): allow clearing preloaded markdown on the first edit
Preserve the programmatic empty mount reset guard while recognizing input and Lexical deletion intent before change callbacks.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:07:19 -05:00
DottaandPaperclip 012aa52c77 feat(runner): preserve editable question defaults through explicit response
Carry bounded text-only initialText through ACP normalization, Rust durable validation, shared contracts and the question UI. Saved edits and explicit clears survive reload. Preserve canonical submitted text while retaining legacy custom-answer normalization and existing validation.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:06:48 -05:00
DottaandPaperclip 0f04bf454d fix(ui): allow clearing preloaded markdown on the first edit
Preserve the programmatic empty mount reset guard while recognizing input and Lexical deletion intent before change callbacks.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:06:09 -05:00
DottaandPaperclip 72ded17946 test(runner): distinguish Pi blank transport from form support
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:05:52 -05:00
DottaandPaperclip 2e0b0fec02 Bound Cursor todo activity before committing reducer state
Preserve every todo identity and status with explicit detail omission when the serialized snapshot exceeds the rich-event limit. Retain full native detail for future deltas.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:04:04 -05:00
DottaandPaperclip bb00c85b69 fix(runner): admit Pi MCP names and bound native questions
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 12:00:42 -05:00
DottaandPaperclip 36f7a89b37 Check exact candidate eval profile before provider startup
Compare expected profile fields with the built Runner before materializing context or constructing a live service. Require the flag for candidate runs; old CLIs reject it without starting a provider.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:59:19 -05:00
DottaandPaperclip 61f33cb1ef Bound Daytona provider build worker memory
Limit pnpm tarball and lifecycle concurrency in the build stage. Keep dependency pins and runtime environment unchanged.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:59:19 -05:00
DottaandPaperclip d4348a5597 Check exact candidate eval profile before provider startup
Compare expected profile fields with the built Runner before materializing context or constructing a live service. Require the flag for candidate runs; old CLIs reject it without starting a provider.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:54:00 -05:00
DottaandPaperclip 49ba2e61fb Integrate reviewed Cursor and Copilot event fixes
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* commit '2042ca14c42c0112304328b8f059847be4370f6c':
  Keep Copilot notices session-scoped and close early smoke resources
  Bound Cursor child summaries without splitting Unicode characters
2026-09-29 11:50:29 -05:00
DottaandPaperclip 2042ca14c4 Keep Copilot notices session-scoped and close early smoke resources
Copilot passthrough does not identify the originating turn. Retain bounded session evidence and source identity without typed turn projection or invented turn provenance. Acquire smoke resource cleanup before every fallible setup operation.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:49:53 -05:00
DottaandPaperclip df3c87735a Merge branch 'codex/runner-cursor-acp' into codex/runner-copilot-acp
* codex/runner-cursor-acp:
  Bound Cursor child summaries without splitting Unicode characters

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:49:53 -05:00
DottaandPaperclip fdcba3c877 Record current Pi paid proof and remaining qualification gates
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:47:58 -05:00
DottaandPaperclip 76d943e625 Bound Cursor child summaries without splitting Unicode characters
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:44:35 -05:00
DottaandPaperclip 3efe9f52d8 Bound Daytona provider build worker memory
Limit pnpm tarball and lifecycle concurrency in the build stage. Keep dependency pins and runtime environment unchanged.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:44:33 -05:00
DottaandPaperclip 97217c5313 Integrate reviewed rich ACP instruction and startup fixes
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/runner-pi-acp:
  Bind Cursor instructions to native rules and gate every ACP connection
  fix(copilot): refresh instructions under provider lifetime ownership
  fix(copilot): deliver native instructions with v4 session identity
  docs(runner): retain Pi native prompt delivery proof
  fix(runner): refresh trusted system instructions before ACPX restore
  fix(runner): refresh runtime context when restoring ACPX sessions
  test(copilot): record native system instruction delivery evidence
  fix(runner): refresh trusted system instructions before ACPX restore
  perf(runner): hash Pi runtime inventory with bounded workers
  perf(runner): bound native snapshot copy concurrency at 32
  perf(runner): bound native snapshot copy concurrency at 32
  test(copilot): preserve final question failure and offline recovery proof
  fix(runner): refresh runtime context when restoring ACPX sessions
  feat: return completed handoffs to Agent Chat (#14408)
  fix(adapters): preserve ACP terminal failure diagnostics (#14573)
  fix(runner): honor Codex effort selected in composer (#14568)
  fix: grade Codex clarification and refusal outcomes from evidence (#14570)
  fix(inbox): keep other users’ failed runs out of Mine (#14572)
2026-09-29 11:33:49 -05:00
DottaandPaperclip 23614d28c8 merge: integrate reviewed Copilot and Cursor runtime repairs into Pi
Preserve Pi v6 and bounded startup pools, admit current Cursor and Copilot v4 identities, and combine additive Product flows and catalog assertions.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:33:28 -05:00
DottaandPaperclip 9ff6b04b46 docs(runner): record instruction delivery fixes and qualification gates
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:33:17 -05:00
DottaandPaperclip ad472a7755 Retry bounded company prefix collisions in chat fixtures
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:28:48 -05:00
DottaandPaperclip 95dfde7c5c Merge current Cursor ACP runtime into Copilot v4
Preserve both profile-specific guards and complete terminal diagnostics; bind Copilot v4 to the regenerated ACPX patch.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:28:38 -05:00
DottaandPaperclip 62e642590f Bind Cursor instructions to native rules and gate every ACP connection
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:24:48 -05:00
github-actions[bot]andlockfile-bot 3166e93a7e chore(lockfile): refresh pnpm-lock.yaml (#14461)
Auto-generated lockfile refresh after dependencies changed on master.
This PR only updates pnpm-lock.yaml.

Co-authored-by: lockfile-bot <lockfile-bot@users.noreply.github.com>
2026-09-29 11:19:53 -05:00
DottaandPaperclip 2ff6a8efea fix(copilot): refresh instructions under provider lifetime ownership
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:17:22 -05:00
DottaandPaperclip 3ec07cc8fa docs(runner): distinguish implemented agent file binding from qualification
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:16:58 -05:00
DottaandPaperclip 0f33a9080a fix(copilot): deliver native instructions with v4 session identity
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:12:26 -05:00
DottaandPaperclip f09813baec docs(runner): retain Pi native prompt delivery proof
Record sanitized actual SDK model-request assertions for fresh and loaded sessions, with exact runtime provenance and explicit qualification limits.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-09-29 11:11:36 -05:00