fix: repair the complete projectless repository setup chain by cryppadotta · Pull Request #17088 · paperclipai/paperclip · GitHub
Skip to content

fix: repair the complete projectless repository setup chain - #17088

Open
cryppadotta wants to merge 12 commits into
masterfrom
codex/plain-task-repository-admission
Open

cryppadotta wants to merge 12 commits into
masterfrom
codex/plain-task-repository-admission

Conversation

@cryppadotta

@cryppadotta cryppadotta commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Thinking Path

  • Paperclip lets people manage agents that do useful work.
  • A projectless task can stage a repository and continue in its retained workspace.
  • The merged continuation path needs complete product qualification.
  • Fresh attempts exposed identity, completion-guidance, and plain-root setup gaps.
  • Separate unit results did not prove that this complete chain worked.
  • This PR repairs those boundaries and adds one independently graded real-task journey.
  • It uses the existing continuation, publication, and runtime contracts.

Linked Issues or Issue Description

Refs #17047. Consolidates the preserved changes from #17049, #17052, and #17082 so the complete chain is reviewed and checked together.

What happened?

Projectless native tasks could stop after requesting a repository. Fresh real-task attempts exposed a source startup dependency gap, rejection of the retained local-board identity, a routine repository wait accepted as a blocker, and a Git exclusion failure in a plain task root.

Expected behavior

The task prepares its authorized repository, retains its context, continues without user supervision, and delivers independently verified output. Stop, current access, review, and real blockers retain their authority.

Steps to reproduce

Run automatic-repository.runner-codex.local.automatic-repository-resume on the affected source. The retained attempts show each boundary. The journey is explicit and single-attempt; it does not run in the default paid selection.

What Changed

  • Add a real projectless repository journey for native Codex and Claude on local and Daytona environments.
  • Independently observe the first admission's random context artifact before any successor starts. Check final downloaded bytes against that baseline and the actual checkout.
  • Prepare source dependencies before the isolated source server imports them.
  • Accept both existing local-board identity representations while preserving current membership, source, workspace, and run checks.
  • Explain the saved repository continuation in the production completion tools. Correct the exact pending-checkout blocker before acceptance.
  • Bind the shared completion guidance in Copilot v54 and preserve historical v53 identity.
  • Validate the actual persisted task-owned directory representation, and reject an unfinished response wait even when remainingWork is empty.
  • Respect a declared plain task directory when Git reports that it is not a root checkout. Preserve existing files and strict validation for other conditions.
  • Stop failed attempts promptly and retain all failure evidence.

Verification

  • The native-tool/JWT/HTTP/PostgreSQL identity regression fails before its repair. Its authorization cohort passes 78 checks.
  • The completion regression fails before its repair. Its completion/context cohort passes 50 checks, and the runner contract/driver/identity cohort passes 107.
  • The real-Git and database plain-root regressions fail before their repair. The final Git/HTTP/authorization cohort passes 87 checks.
  • The Product E2E support cohort passes 3,294 checks with two existing skips, plus 128 source checks. Server, runner TypeScript, and E2E typechecks pass.
  • One serialized CI route test timed out. Its focused local suite passes all 91 tests. The failure is retained and the failed CI job is being rechecked.
  • Five paid development attempts remain failures. The fourth reached a monitor successor, then failed in Git setup. The fifth used the recorded Codex model, selected response_wake without a pending response, and failed at Git setup on recovery. It does not pass the strict saved same-agent oracle. Complete product qualification remains pending.
  • The original Git metadata's contents and creator remain unestablished. The regression reproduces the observed Git failure with inert metadata in a declared plain task directory.
  • The fifth attempt showed that the first plain-root test used a strategy the runtime does not persist. A corrected database regression fails with the actual project_primary/task_session representation. Its repaired Git/database/HTTP cohort passes 80 checks; related child/source privacy checks pass 27.
  • A second real-database red shows an unfinished objective could select response_wake when remainingWork was empty. The existing wait gate now checks the objective too and returns saved repository guidance where eligible. Completion/context checks pass 29, existing passive-response/recovery checks pass 15, and server typecheck passes.
  • Review then reproduced source relabeling through actual first/reused workspace preparation. The repair preserves the saved task source and explicit absence of repository context. The workspace cohort passes 229 checks; the strengthened repository-preparation/source controls pass 11, with only remote Git transport replaced by an owned local repository. Server typecheck passes.
  • The sixth development campaign was cancelled during its build after this finding, before provider execution; it is not a successful or failed provider measurement.
  • Review reproduced one further pending-repository blocker with an unfinished objective and an empty remainingWork list. A database regression fails before the correction; the same unfinished-work rule now protects both blocker and response waits. The current completion, external-chat authority, and runtime-context cohort passes 182 checks, and server typecheck passes.
  • A fresh development replay preserved the original context and delivered the correct checkout result, but used a monitor fallback. The driver regression then proved that Codex rejected same_agent even after the existing resolver read it from current server state. The Codex boundary now accepts that server-resolved value; explicit provider values still fail. Omitted/null and stale-ownership cases are covered. All 324 affected Codex contract checks, Runner typecheck, and bound profile identity pass. The production change stays in the Codex driver; the independent live Capability consumer retains its prior restriction. Fresh product acceptance remains pending.
  • After merging current master, the Product E2E support cohort passed 3,320 checks with two existing skips, plus 128 source checks; the four targeted repair suites passed 101 checks. Current mainline CI verify, E2E, and build passed before this final correction. Exact-head review and CI are pending. Deployment acceptance remains pending.

Risks

This PR changes the complete repository setup chain, so fresh end-to-end and deployment acceptance remains required. The identity comparison accepts local-board only for an existing local-board run owner. The completion correction matches the exact system-blocker reason and a cited live task receipt. The plain-directory exception accepts only Git's exact absence result for a validated task-owned project_primary workspace with task_session provenance, shared/isolated mode, and no root repository or configured project source. Other Git errors, linked metadata, Stop, approvals, current access, and changed run ownership keep their checks. No accepted provider result is rewritten and no second recovery engine is introduced.

Model Used

OpenAI Codex, GPT-6 family, with repository tools and code execution. The runtime does not expose its exact deployment ID or context-window size. Those values are not inferred.

Checklist

  • I have included a thinking path that traces from project context to this change
  • I have specified the model used (with version and capability details)
  • I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work
  • I have searched GitHub for duplicate or related PRs and linked them above
  • I have either (a) linked existing issues with Fixes: # / Closes # / Refs # OR (b) described the issue in-PR following the relevant issue template
  • I have not referenced internal/instance-local Paperclip issues or links (only public GitHub #NNN / github.com/paperclipai/paperclip URLs)
  • 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
  • I have added or updated tests where applicable
  • I have updated relevant documentation to reflect my changes
  • 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
  • I will address all Greptile and reviewer comments before requesting merge

cryppadotta and others added 6 commits October 21, 2026 07:18
Use production hire instructions and the existing paid browser harness. Compare delivered bytes with the actual checkout, require retained workspace and context, and reject timer or user-driven continuation. Keep current qualified provider admission free of ambient overrides and retain explicit pending-profile gate controls.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
@ponytail-paperclip-review

ponytail-paperclip-review Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

@greptile-apps

greptile-apps Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

@cryppadotta cryppadotta changed the title fix: prepare nested repositories in declared plain task roots fix: repair the complete projectless repository setup chain Oct 21, 2026
@cryppadotta
cryppadotta changed the base branch from codex/repository-setup-continuation to master October 21, 2026 12:48
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Comment thread server/src/services/execution-workspace-repositories.ts
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>

* origin/master:
  fix(evals): classify latency from observation bounds (#16829)
  docs: define module ownership and shared change review (#17087)
  fix: stop idle MCP event polling (#17036)
  fix(recovery): let preservation owners reopen retained sources (#17053)
  perf(budgets): scope accounting and deliver enforcement asynchronously (#17046)

# Conflicts:
#	tests/runner-e2e/README.md
#	tests/runner-e2e/installed-cli.test.ts
Comment thread server/src/services/native-runtime/native-completion-feedback.ts Outdated
cryppadotta and others added 2 commits October 21, 2026 09:05
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Co-Authored-By: Paperclip <noreply@paperclip.ing>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant