use github runners#1
Merged
Merged
Conversation
Soph
force-pushed
the
soph/only-use-github-runners
branch
from
January 5, 2026 10:42
b9cd76e to
1d069e5
Compare
peyton-alt
added a commit
that referenced
this pull request
Apr 21, 2026
…rivation Covers issues #1-7 from the multi-agent PR review pass: 1-2. Settings-load errors no longer wipe user config. Both runReview and saveReviewConfig now distinguish "file missing" (settings.Load returns defaults) from "file malformed" (returns err). Malformed-file errors surface to the user with a friendly "fix .entire/settings.json" hint instead of silently opening the picker and overwriting unrelated settings with an empty EntireSettings{}. 3. Pending marker is now cleaned up on every spawn-path failure via a deferred best-effort ClearPendingReviewMarker. Previously it only fired on execCmd.Run() non-zero exit, so a clean agent exit without any UserPromptSubmit (e.g. /quit) would leave the marker behind to mis-tag the next unrelated session. 4. detectBaseBranch loop order now matches its docstring: all remote- tracking branches (origin/main, origin/master) are tried before any local branch. The doc-vs-code drift the comment-analyzer caught is fixed; a regression test pins the order. 5. HasReview derivation no longer lives as a hardcoded string literal in the checkpoint package. session.Kind.IsReview() is the single source of truth; manual_commit_condensation sets WriteCommittedOptions .HasReview via that helper. Future review-kind Kind values just add to the IsReview disjunction and HasReview keeps covering them — previously a typo of "agent_review" in committed.go would have silently broken the feature. 6. Context now threads through pendingMarkerPath, WritePendingReviewMarker, ReadPendingReviewMarker, ClearPendingReviewMarker. Previously they all used context.Background() internally, dropping cancellation and tracing from callers. 7. headHasReviewCheckpoint now logs at Debug on each failure step (locate worktree root, read HEAD, parse trailer, open repo, resolve summary, HasReview false) so users debugging "why didn't the review badge show up?" have breadcrumbs instead of a single silent false. Plus tests: - TestKindIsReview pins the IsReview invariant and forces future review kinds to be added to the disjunction. - TestSaveReviewConfig_ReturnsErrorOnMalformedSettings pins the data-loss regression fix. - TestDetectBaseBranch_PrefersAllRemotesOverLocals pins the #4 fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 410590b32b74
alishakawaguchi
added a commit
that referenced
this pull request
May 20, 2026
CI lint: - escape U+200B literals (staticcheck ST1018) Real bugs (cursor[bot] + Copilot review): - loop: ctx-cancel mid-cmd.Run() now classifies as OutcomeCancelled instead of being counted as a turn failure and tripping OutcomePaused after two consecutive cancels (#1) - loop: save state before returning OutcomePaused so --continue resumes from a snapshot that includes the failing turn (#11) - investigate fix: wrap context.Canceled as SilentError so Ctrl+C during the fix session doesn't print a cobra usage banner (#2) - cmd: redact URL userinfo on the issue-link Source: line in both interactive and non-interactive paths (#5) - issuelink: redact URL userinfo across gh stderr (not just argv) so a token in --issue-link cannot leak via the error path (#10) - cmd: outcome-aware footer — "Investigation ended" + resume hint for paused/cancelled, "Investigation complete" + fix hint only for Quorum/Stalled (#6) - cmd: validate maxTurns/quorum bounds after settings/flag merge so a hand-edited negative max_turns or oversized quorum errors cleanly instead of silently stalling (#7) - issuelink: tolerate GitHub URL trailing segments (/pull/123/files, trailing slash) — the regex now anchors prefix and ignores tail (#13) - picker: don't print "Saved investigate config" before persistence; moved to the caller after SaveLocal succeeds (#14) - picker: guard pickerFormOverride with atomic.Pointer so parallel tests that swap the override don't race (#12) Docs: - settings/loop: fix stale "0 → 3" max_turns doc; default is 2 (#8/#9) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Entire-Checkpoint: b0135abeee0d
Soph
added a commit
that referenced
this pull request
May 31, 2026
…ewire mirror remove entiredb#1820 (accurate success codes) and the ENT-741 mirror refactor are now on main, so refresh the spec and simplify against it: - normalize.go: the success-code bug is fixed upstream (creates declare 200, deletes 204), so stop collapsing success to a "2XX" range. Keep the real success code and fold only the explicit 4xx/5xx into a single "default" (all reference one ErrorModel) — still convenient errors, but ogen now returns the success type directly with no *…StatusCode wrapper. collapseTypeUnions stays: #1 (nullable-array shorthand) is still unfixed. - Drop the .Response unwraps across org/project/repo/grant/repo_mirror now that methods return (*T, error); DELETEs return plain error. - mirror remove: the by-mirror lookup endpoint is gone; call the new delete-by-coords route directly (DELETE /mirrors?provider&owner&repo& clusterHost). 404 is now a real, surfaced error, not idempotent success. - UPSTREAM.md: reframe #2 (success-code bug fixed; the error-fold that remains is a deliberate ergonomics choice retired by a shared upstream "default"); remove #3 (resolved by delete-by-coords). Net ~2.4k fewer generated lines. fmt/lint/test:ci green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Entire-Checkpoint: e7de894317fb
Merged
6 tasks
Soph
added a commit
that referenced
this pull request
Jun 1, 2026
…ewire mirror remove entiredb#1820 (accurate success codes) and the ENT-741 mirror refactor are now on main, so refresh the spec and simplify against it: - normalize.go: the success-code bug is fixed upstream (creates declare 200, deletes 204), so stop collapsing success to a "2XX" range. Keep the real success code and fold only the explicit 4xx/5xx into a single "default" (all reference one ErrorModel) — still convenient errors, but ogen now returns the success type directly with no *…StatusCode wrapper. collapseTypeUnions stays: #1 (nullable-array shorthand) is still unfixed. - Drop the .Response unwraps across org/project/repo/grant/repo_mirror now that methods return (*T, error); DELETEs return plain error. - mirror remove: the by-mirror lookup endpoint is gone; call the new delete-by-coords route directly (DELETE /mirrors?provider&owner&repo& clusterHost). 404 is now a real, surfaced error, not idempotent success. - UPSTREAM.md: reframe #2 (success-code bug fixed; the error-fold that remains is a deliberate ergonomics choice retired by a shared upstream "default"); remove #3 (resolved by delete-by-coords). Net ~2.4k fewer generated lines. fmt/lint/test:ci green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Entire-Checkpoint: e7de894317fb
3 tasks
suhaanthayyil
added a commit
that referenced
this pull request
Jun 30, 2026
Resolves the review packet on the Codex subagent change: - #1 Codex task-checkpoint UUID: documented that CheckpointUUID is Claude-format-specific (tool_result/UUID) and resolves to "" for Codex — rewind to a Codex task checkpoint restores files via the shadow tree but does not truncate the transcript (graceful fall-through; restore truncation is also Claude-only). Codex-aware line-offset truncation is a deferred follow-up. Comment at the call site + AGENT.md. - #2 Resumed-subagent token under-count: documented deliberate trade-off (chosen over the worse cross-turn double-count) + observability — logResumedOutOfRangeChildren debug-logs when a resume_agent targets a child spawned in a prior range. - #3 Regression tests: CalculateTotalTokenUsage nil-main-with-subagent-tokens unit test (guards the nil-deref); new integration test TestCodexSubagentEnd_SourcesFilesFromChildNotParent (+ SimulateCodexSubagentStart/Stop harness helpers) guarding handleLifecycleSubagentEnd's child-not-parent resolver. - #4 Debug logging across the discover→resolve→read→parse chain (readSubagentRolloutsUncached, CalculateTotalTokenUsage, spawn-output drop) so Codex wire-format drift is visible instead of silently zeroing attribution. - #5 isCodexSubagentRollout: nested source.subagent fallback for rollouts without thread_source + backward-compat test (missing marker → treated as parent turn). - #6 + nits: t.Parallel() on the pure-logic codex tests; AGENT.md PostToolUse line corrected (it IS consumed); StepTranscriptStart aligned to the resolved transcriptOffset (removes the exec/no-preState divergence; field is currently unconsumed by the strategy). go build (incl. integration tag), vet, unit + codex integration tests, lint (0) all green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Soph
added a commit
that referenced
this pull request
Jun 30, 2026
…50MB cap Address PR review (Copilot #3) and the trail finding. OPF stale compact (#3): in replaceTranscript, when compact regeneration yields nothing (failure, empty, or oversized), drop the prior transcript.jsonl and clear CompactTranscriptStart instead of leaving a stale, less-redacted compact on the branch with a marker pointing at content that no longer matches the re-redacted full.jsonl. setCompactTranscriptStart now takes *int so it can clear the marker. Regression test added. Oversized-drop (#1 / trail finding): document the known limitation — the compact transcript is not chunked, so output exceeding the 50MB blob cap is skipped and a very long session may lack transcript.jsonl on some checkpoints; full.jsonl stays authoritative and the compact is regenerable. Updated the architecture doc (also correcting the now-stale "finalization keeps the previous transcript.jsonl" clause) and CLAUDE.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Entire-Checkpoint: bd7061c21a95
This was referenced Jul 1, 2026
Soph
added a commit
that referenced
this pull request
Jul 4, 2026
Follow-ups from review of the git-refs ULID-emission PR (the id-kind read-routing item, #1, and the write-boundary kind guard, #2, are deferred — see below): - id.CheckpointID.DisplayShort() (new): kind-aware trim — legacy hex shows its 12-char prefix, a ULID is shown in full (front-truncating a ULID drops its entropy tail and yields an ambiguous, unresolvable prefix). - explain checkpoint-list view uses DisplayShort instead of a blind 12-char cut, so ULID checkpoints no longer collapse to near-identical timestamp prefixes. - blame --long sizes the Checkpoint/Session column to its content (attributionCheckpointColumnWidth) so a 26-char ULID + session renders whole instead of being clipped to a session-less 21-char prefix. - attach's fetch hint now resolves its target via resolveCheckpointFetchTarget — the same path FetchCheckpointRef uses — so the pasteable command matches the remote the fetch actually ran (fixes a bare "git fetch origin …" that fails in a token-only environment with an SSH origin). - id.MaxIDLength ties to oklog/ulid's EncodedSize instead of a third hardcoded 26. - eager-condense mints the checkpoint ID only after the skip checks, so a no-op session stop no longer pays the mint (and its checkpoints-config load). - docs/architecture/sessions-and-checkpoints.md: checkpoint IDs are 12-hex OR ULID (not fixed-width), minted via checkpoint.GenerateCheckpointID. Deferred to the id-kind read-routing follow-up (tracked separately): - #1 attach routes presence/refresh/fetch-hint by current config, not by the trailer ID's kind — after a git-branch⇄git-refs flip attach looks in the wrong place and can suggest an unfixable fetch. This is the read-routing work the PR body already names; the two concrete attach dead-ends belong in that issue. - #2 the ULID⇒refs invariant has no write-boundary guard. A naive "git-branch store saw a ULID → warn" misfires when git-branch is a *mirror* of a git-refs primary (a valid topology where ULIDs legitimately reach it), so the correct guard needs topology-role awareness and belongs with the routing work. Tests: TestCheckpointID_DisplayShort, TestAttributionCheckpointColumnWidth. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Entire-Checkpoint: 14006b64f8d1
SnowingFox
pushed a commit
to SnowingFox/cli
that referenced
this pull request
Jul 5, 2026
Follow-up entireio#1 from the ULID-emission review: reads resolved only against the configured primary store, so after a git-branch⇄git-refs flip (or during coexistence) a checkpoint stored in the other backend was reported missing. Now `checkpoint.Open` returns a kind-routing store that resolves id-keyed reads by the checkpoint's format: - A ULID is read from the git-refs store only — never the branch (any backend). - A hex ID is read from the active primary first; under a git-refs primary it also falls back to the git-branch store (a hex checkpoint may still sit on the pre-migration v1 branch, or have been migrated into refs). - List unions both backends; GetCheckpointAuthor routes the same way (AuthorReader preserved). Writes are NOT kind-routed — they stay on the configured primary (+ mirrors); the minted ID already matches the primary's format. The router is built once in Open, reusing the primary for its kind and building the sibling read store. All the general read paths (resume, explain, attribution, blame, tokens, attach) inherit routing for free. Tests: routing_store_test.go covers ULID→refs (incl. "a ULID never reads from the branch"), hex→branch, hex-fallback and migrated-hex-in-refs under a refs primary, List union, session-read routing, and author routing. Updated open_config_test to the new "Persistent is always the routing store" invariant. Verified: unit + integration (390) + canary both backends (git-branch, git-refs). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Entire-Checkpoint: fe977d819cd6
suhaanthayyil
added a commit
that referenced
this pull request
Jul 15, 2026
Resolves the review packet on the Codex subagent change: - #1 Codex task-checkpoint UUID: documented that CheckpointUUID is Claude-format-specific (tool_result/UUID) and resolves to "" for Codex — rewind to a Codex task checkpoint restores files via the shadow tree but does not truncate the transcript (graceful fall-through; restore truncation is also Claude-only). Codex-aware line-offset truncation is a deferred follow-up. Comment at the call site + AGENT.md. - #2 Resumed-subagent token under-count: documented deliberate trade-off (chosen over the worse cross-turn double-count) + observability — logResumedOutOfRangeChildren debug-logs when a resume_agent targets a child spawned in a prior range. - #3 Regression tests: CalculateTotalTokenUsage nil-main-with-subagent-tokens unit test (guards the nil-deref); new integration test TestCodexSubagentEnd_SourcesFilesFromChildNotParent (+ SimulateCodexSubagentStart/Stop harness helpers) guarding handleLifecycleSubagentEnd's child-not-parent resolver. - #4 Debug logging across the discover→resolve→read→parse chain (readSubagentRolloutsUncached, CalculateTotalTokenUsage, spawn-output drop) so Codex wire-format drift is visible instead of silently zeroing attribution. - #5 isCodexSubagentRollout: nested source.subagent fallback for rollouts without thread_source + backward-compat test (missing marker → treated as parent turn). - #6 + nits: t.Parallel() on the pure-logic codex tests; AGENT.md PostToolUse line corrected (it IS consumed); StepTranscriptStart aligned to the resolved transcriptOffset (removes the exec/no-preState divergence; field is currently unconsumed by the strategy). go build (incl. integration tag), vet, unit + codex integration tests, lint (0) all green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jul 16, 2026
SnowingFox
pushed a commit
to SnowingFox/cli
that referenced
this pull request
Jul 19, 2026
Importing (via `entire import` or the `entire enable` offer) writes read-only checkpoints to the local entire/checkpoints/v1 store and never syncs on its own — sync happens later via the git pre-push hook, only once logged in. So an import run while logged out succeeds locally but silently never reaches the dashboard, and re-importing after login is a no-op (idempotent on local existence). Surface this: after a logged-out import that wrote local history, print a notice that it's local-only and to log in before importing so it syncs. No-op when logged in or when nothing was imported. Login detection is local-only (ENTIRE_TOKEN or a current stored context) — no network on the import path. The existing "Imported N turn(s)" line is unchanged. This is fix entireio#1 (the UX guard) for entireio#1773; the sync-trigger for already-imported, commit-less checkpoints is tracked separately there. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.