Skip to content

Add Pi review-runner adapter - #1313

Merged
Soph merged 12 commits into
mainfrom
review-pi-reviewer
Jul 2, 2026
Merged

Add Pi review-runner adapter#1313
Soph merged 12 commits into
mainfrom
review-pi-reviewer

Conversation

@dipree

@dipree dipree commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

https://entire.io/gh/entireio/cli/trails/467

Summary

Adds Pi as a first-class entire review worker by implementing its AgentReviewer adapter. This is the concrete proof that the previous "only claude-code/codex/gemini" limit was just missing adapters, not a launch-capability wall.

Stacked on #1312 (review profiles). Review/merge that first.

What changed

  • cmd/entire/cli/agent/pi/reviewer.goNewReviewer() returning a ReviewerTemplate:
    • BuildCmd: pi --mode json --print [--model <model>] <prompt> with ENTIRE_REVIEW_* env via AppendReviewEnv
    • Parser: maps Pi's --mode json AgentSessionEvent stream (message_update text deltas, tool_execution_start, message_end/turn_end usage, agent_end) into Entire's review Event stream. Falls back to message_end content text when no deltas streamed; uses stopReason for success.
  • cmd/entire/cli/agent/pi/generate.goGenerateText so Pi can also serve as a master / summary provider.
  • Wiring: launchableReviewerFor returns pi.NewReviewer(); Pi added to summary provider binaries, default-profile agents, master-preference order, and config/help text.
  • Session matching: Pi runs are matched to their lifecycle sessions by model too (same-agent/different-model workers resolve correctly); agent_end backfills the model via ExtractModel.

Testing

  • reviewer_test.go: name, argv/env shape with --model, JSON event-stream parsing, message-end fallback text
  • manifest test for same-agent/different-model disambiguation
  • go vet ./cmd/entire/cli/agent/pi/...
  • env -u PI_CODING_AGENT go test ./cmd/entire/cli/...
  • targeted review integration tests

Note

Medium Risk
Touches review orchestration, manifest session matching, and summary provider selection; behavior is well covered by unit tests but depends on Pi CLI JSON event stability.

Overview
Pi is wired into entire review as a first-class worker alongside Claude Code, Codex, and Gemini, using the shared ReviewerTemplate pattern instead of marker fallback.

A new pi review adapter runs pi --mode json --print [--model …] <prompt> with ENTIRE_REVIEW_* env, and maps Pi’s NDJSON session stream (text deltas, tools, usage, stopReason, agent_end) into Entire review events, including fallback text from message_end when no deltas streamed. GenerateText (pi --print --no-tools --no-session) lets Pi act as a review master and checkpoint summary provider.

Integration: launchableReviewerFor returns pi.NewReviewer(); Pi is added to summary-provider binaries, default profile agents (prompt-driven like Gemini), master preference order, and user-facing configure/help text. On agent_end, TurnEnd now sets Model from the captured session transcript via ExtractModel.

Manifest matching uses tighter model ID normalization (strip provider prefix / tier suffix) so multiple Pi workers with different models map to the correct lifecycle sessions; tests cover argv/env, JSON parsing, and same-agent/model disambiguation.

Reviewed by Cursor Bugbot for commit 27f6781. Configure here.

Copilot AI review requested due to automatic review settings June 1, 2026 19:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Pi as a first-class entire review worker by wiring a new AgentReviewer adapter that runs pi --mode json --print and maps Pi's NDJSON AgentSessionEvent stream into Entire review events. Pi is also added as a summary/text-generation provider and to the default profile / master preference order, and review-run model matching is tightened so multiple Pi workers using different models map to the correct lifecycle sessions.

Changes:

  • New agent/pi/reviewer.go (+ tests) implementing ReviewerTemplate for Pi, and new agent/pi/generate.go so Pi can serve as a summary/master provider.
  • review_bridge.launchableReviewerFor returns pi.NewReviewer(); Pi added to summary provider binaries, default profile workers, master preference order, and user-facing help/error text.
  • review/manifest.go normalizes model IDs (strips provider prefix and tier suffix) for same-agent/different-model session matching; pi/lifecycle.go backfills Model on TurnEnd via ExtractModel.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated no comments.

Show a summary per file
File Description
cmd/entire/cli/agent/pi/reviewer.go New Pi review adapter: builds argv/env and parses Pi's JSON event stream into review events.
cmd/entire/cli/agent/pi/reviewer_test.go Unit tests for adapter name, argv/env shape, JSON event parsing, and message-end fallback text.
cmd/entire/cli/agent/pi/generate.go Implements GenerateText so Pi can act as a master / summary provider.
cmd/entire/cli/agent/pi/lifecycle.go Populates Model on TurnEnd by extracting from the captured Pi session transcript.
cmd/entire/cli/agent/text_generator_cli.go Registers Pi binary (pi) as a summary-capable provider.
cmd/entire/cli/review_bridge.go Wires pi.NewReviewer() into launchableReviewerFor.
cmd/entire/cli/review/manifest.go Tighter model-ID normalization (strip provider prefix / tier suffix) for session matching.
cmd/entire/cli/review/manifest_test.go Adds disambiguation test for same-agent/different-model worker → session mapping.
cmd/entire/cli/review/profile.go Adds Pi to default profile agents and master preference order; updates error messaging.
cmd/entire/cli/review/picker.go Updates guided-setup error message to mention Pi.
cmd/entire/cli/review/cmd.go Doc-comment update listing Pi among adapter-backed agents.
cmd/entire/cli/review/types/template.go Doc-comment update listing Pi as a template user.
cmd/entire/cli/explain_summary_provider.go Adds Pi to the "no summary-capable provider" error guidance.
cmd/entire/cli/settings/settings.go Doc comment lists Pi as a valid summary provider.
cmd/entire/cli/setup.go --summarize-agent help text mentions Pi.
docs/architecture/review-command.md Documents Pi as a prompt/model-driven worker in profiles and adapter list.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 27f6781. Configure here.

Comment thread cmd/entire/cli/review/manifest.go Outdated
@dipree
dipree force-pushed the review-pi-reviewer branch from 27f6781 to c660e06 Compare June 2, 2026 10:19
@dipree

dipree commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the Cursor Bugbot finding and rebased onto the updated #1312.

  • Model tier suffix dropped in matching (manifest.go): the model matcher now lives on the base PR and strips the provider prefix + thinking-level suffix. Since a session's recorded model name never carries the thinking-level suffix, two pi workers that differ only by :high vs :low genuinely share the same session model id — so disambiguation falls back to start-time + the used-session set in matchReviewSessionState, which still links each worker to a distinct session (no omission). This is documented on compactReviewModelID.

Also fixed the lint findings in reviewer_test.go (unchecked type assertions → comma-ok). golangci-lint run ./cmd/entire/cli/agent/pi/... ./cmd/entire/cli/review/... is clean and the Pi adapter tests pass.

Note: the earlier test-core red was a flaky temp-dir cleanup in TestAttach_SessionAlreadyTracked_NoCheckpoint (unlinkat .git/objects: directory not empty), unrelated to this change.

dipree added a commit that referenced this pull request Jun 10, 2026
The Pi reviewer adapter and Pi model lister were mistakenly added here;
they live on the stacked review-pi-reviewer branch (PR #1313), which is
based on review-profiles and already carries a fuller Pi integration
(reviewer + live models + generate). Strip them so review-profiles is the
clean general scout feature with no Pi:

- delete pi/reviewer.go, pi/reviewer_test.go, pi/models.go, pi/models_test.go
- drop the pi case + import from launchableReviewerFor
- de-Pi the ModelLister doc comment

#1313 will be rebased onto this to re-add Pi on top.

Entire-Checkpoint: 1c4621c47750
dipree added 2 commits June 10, 2026 14:55
Pi has a real model-enumeration command, so ListModels shells out to
`pi --list-models` and parses the table into provider/model entries.
parsePiModelList is split out and unit-tested (no pi binary needed).

Entire-Checkpoint: ebcc924da0df
@dipree
dipree force-pushed the review-pi-reviewer branch from 708fca9 to d91d995 Compare June 10, 2026 05:59
Base automatically changed from review-profiles to main June 26, 2026 14:42
# Conflicts:
#	cmd/entire/cli/review/profile.go
#	cmd/entire/cli/review_bridge.go
#	docs/architecture/review-command.md
@dipree
dipree marked this pull request as ready for review June 29, 2026 08:34
@dipree
dipree requested a review from a team as a code owner June 29, 2026 08:34
@Soph
Soph merged commit 7a984a5 into main Jul 2, 2026
10 checks passed
@Soph
Soph deleted the review-pi-reviewer branch July 2, 2026 14:23
Soph added a commit that referenced this pull request Jul 3, 2026
Review feedback on the dead-code sweep: two deletions took the only
tests of live logic with them.

- factoryaidroid: the six subagent-aggregation tests only exercised the
  dead path-based twins, but the logic lives on in
  CalculateTotalTokenUsageFromBytes/ExtractAllModifiedFilesFromBytes —
  the production path via lifecycle.go, and Droid isn't in the CI
  canary. Retarget them at the FromBytes entry points: per-checkpoint
  offset math, the APICallCount>0 subagent gate, cross-agent file dedup,
  and missing-transcript tolerance are asserted again.
- explain: the three default-view tests only drove the deleted
  runExplainDefault wrappers, leaving runExplainBranchWithFilter — the
  real   branch       soph/deslop
  checkpoints  114

● f06be81196bf  "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..."
  07-02 18:12 (ca82a6a) cli: drop types and test helper orphaned by the dead-code sweep

● 7307caae423f  "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..."
  07-02 18:12 (350f6ff) cli subpackages: delete dead code and its dedicated tests

● 7c22eaba7124  "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..."
  07-02 18:12 (13b0ab1) cli: dedupe tmp-state cleanup and rewind preview warnings

● 8a9c75ea075f  "<task-notification>\n<task-id>b53nll3s4</task-id>\n<tool-us..."
  07-02 18:12 (a2c89a2) cli: delete dead root-package code and its dedicated tests

● ab0d1ee8ae62  e2e: share the run-capture/deadline-wrap block across age...
  07-02 18:12 (c7443f4) e2e: share the run-capture/deadline-wrap block across agent runners

● 5eec000c7982  agent/geminicli: drop trailing blank line left by parser ...
  07-02 18:12 (3ea3351) agent/geminicli: drop trailing blank line left by parser fold

● e64c28c66fb4  strategy, trailers, clusterdiscovery: delete dead code an...
  07-02 18:12 (10892ce) strategy, trailers, clusterdiscovery: delete dead code and its tests

● 351ee2316125  cli: standardize on printJSON for indented JSON output
  07-02 18:12 (7f9b918) cli: standardize on printJSON for indented JSON output

● 5c2527f62f77  cli: share the stop-sessions confirmation prompt
  07-02 18:12 (62ea674) cli: share the stop-sessions confirmation prompt

● 76f119a87828  cli: dedupe agent display-name and hook-agent-option buil...
  07-02 18:12 (a0ab634) cli: dedupe agent display-name and hook-agent-option building in setup

● 65cfea8234e1  agent/vogon: reuse one parser for the sessionInfoRaw hooks
  07-02 18:12 (ff99145) agent/vogon: reuse one parser for the sessionInfoRaw hooks

● 4bfedc11ca7f  review: dedupe config filtering and picker multiselect co...
  07-02 18:12 (02a59b9) review: dedupe config filtering and picker multiselect construction

● 11253d4586b3  agent: dedupe transcript scanning in opencode and copilot...
  07-02 18:12 (3aada34) agent: dedupe transcript scanning in opencode and copilot-cli

● 7b73bd925300  "/goal simplify this repo, make sure to de-slop it continu..."
  07-02 18:11 (1b1e8b5) agent: collapse capability As* helpers onto two generic gates

● cafa646983ad  [imported]  "can you review #1462"
  07-01 13:59 (cafa646) can you review #1462

● 5bc51efe5634  [imported]  "could we also add \"PR #1237\" or \"T #123\" (for trail) so m..."
  07-01 13:39 (5bc51ef) could we also add "PR #1237" or "T #123" (for trail) so m...

● 1686873c82fe  [imported]  "test"
  07-01 13:33 (1686873) test

● 424e70130be4  [imported]  "can you review again, did it change?"
  07-01 13:19 (424e701) can you review again, did it change?

● 88b96bfc1a5c  [imported]  "check"
  07-01 13:18 (88b96bf) check

● 67b0ce56bd73  [imported]  "one"
  07-01 13:18 (67b0ce5) one

● 39348f4dc708  [imported]  "can you post it as finding to the trail?"
  07-01 13:11 (39348f4) can you post it as finding to the trail?

● 37c58b1285cc  [imported]  "so it worked a few times, but now it doesn't..."
  07-01 13:07 (37c58b1) so it worked a few times, but now it doesn't...

● 738da64b0dfb  [imported]  "can you review #1573"
  07-01 13:02 (738da64) can you review #1573

● 42a4208d02fc  [imported]  "just testing if it updates now if I really type something"
  07-01 12:15 (42a4208) just testing if it updates now if I really type something

● 3be2e037f80a  [imported]  "yes, revert"
  07-01 10:46 (3be2e03) yes, revert

● 3b397151d6f6  [imported]  "can you look at this comment: https://github.com/anthropi..."
  07-01 10:38 (3b39715) can you look at this comment: https://github.com/anthropi...

● 4555162959cd  [imported]  "I think it worked when I left the focus for the window an..."
  07-01 10:37 (4555162) I think it worked when I left the focus for the window an...

● 76eb3d2b9d98  [imported]  "ok"
  07-01 10:34 (76eb3d2) ok

● 2124a6f6a229  [imported]  "test"
  07-01 10:34 (2124a6f) test

● 4330123cdcf9  [imported]  "it does not work :("
  06-30 16:20 (4330123) it does not work :(

● 4d9c7190f539  [imported]  "ok, restarted, let's try again"
  06-30 16:19 (4d9c719) ok, restarted, let's try again

● aaabdc00513b  [imported]  "I changed it, is this auto picked up or needs a restart?"
  06-30 16:18 (aaabdc0) I changed it, is this auto picked up or needs a restart?

● 06862b0f6354  [imported]  "Help me fix the issues reported by /doctor below.\n\nFor ea..."
  06-30 16:16 (06862b0) Help me fix the issues reported by /doctor below.

For ea...

● 8e56c6a6b74f  [imported]  "I put the line into the settings.json since I briefly saw..."
  06-30 16:11 (8e56c6a) I put the line into the settings.json since I briefly saw...

● 5f4910a121d0  [imported]  "no"
  06-30 16:07 (5f4910a) no

● 4a0d45bf06c5  [imported]  "it does not, but maybe I have not title set to \"\""
  06-30 16:05 (4a0d45b) it does not, but maybe I have not title set to ""

● a03587b3282a  [imported]  "works now, test"
  06-30 16:04 (a03587b) works now, test

● 17e892e14dd0  [imported]  "⏺ Ran 2 stop hooks\n  ⎿ \u00a0Stop hook error: Failed with non-..."
  06-30 16:00 (17e892e) ⏺ Ran 2 stop hooks
  ⎿  Stop hook error: Failed with non-...

● 9299dcc26c8e  [imported]  "hello"
  06-30 15:59 (9299dcc) hello

● 3d591b1340c3  [imported]  "Help me fix the issues reported by /doctor below.\n\nFor ea..."
  06-30 15:58 (3d591b1) Help me fix the issues reported by /doctor below.

For ea...

● 32197462b83a  [imported]  "yeah let's try wiring the stop hook in my settings.json, ..."
  06-30 15:55 (3219746) yeah let's try wiring the stop hook in my settings.json, ...

● 08301e76c817  [imported]  "but it would not work with claude being in the window and..."
  06-30 15:52 (08301e7) but it would not work with claude being in the window and...

● 80b129a53f56  [imported]  "I'd like to show when the last \"change\" in a ghostty tab ..."
  06-30 15:49 (80b129a) I'd like to show when the last "change" in a ghostty tab ...

● 9454bdd3f330  [imported]  "this has no a conflict with the base branch"
  06-30 15:01 (9454bdd) this has no a conflict with the base branch

● 0652f4abbdbb  [imported]  "can you look at the pr comments, and also if the correspo..."
  06-30 14:29 (0652f4a) can you look at the pr comments, and also if the correspo...

● f842b0ae13c4  [imported]  "yes, do that"
  06-30 14:07 (f842b0a) yes, do that

● aff3a8f7636f  [imported]  "did we open a PR yet?"
  06-30 14:06 (aff3a8f) did we open a PR yet?

● 642544e41c50  [imported]  "- cmd/entire/cli/paths/paths.go:32 still says transcript...."
  06-30 12:28 (642544e) - cmd/entire/cli/paths/paths.go:32 still says transcript....

● 03570057e87a  [imported]  "- P2 cmd/entire/cli/transcript/compact/compact.go:158: Fu..."
  06-30 11:42 (0357005) - P2 cmd/entire/cli/transcript/compact/compact.go:158: Fu...

● d0b9faddc75d  [imported]  "<task-notification>\n<task-id>a0b8ca16f3d36a411</task-id>\n..."
  06-30 11:15 (d0b9fad) <task-notification>
<task-id>a0b8ca16f3d36a411</task-id>
...

● 9b2eb8b87c47  [imported]  "<task-notification>\n<task-id>a78ca6485d1be4ff7</task-id>\n..."
  06-30 11:14 (9b2eb8b) <task-notification>
<task-id>a78ca6485d1be4ff7</task-id>
...

● 9c84afa51639  [imported]  "<task-notification>\n<task-id>a457acc7c9d47e06e</task-id>\n..."
  06-30 11:14 (9c84afa) <task-notification>
<task-id>a457acc7c9d47e06e</task-id>
...

● 76b715ce095f  [imported]  "`/simplify → 4 cleanup agents in parallel → apply the fix..."
  06-30 11:12 (76b715c) `/simplify → 4 cleanup agents in parallel → apply the fix...

● 4877690ab239  [imported]  "how could 2 even work, we don't write the checkpoints at ..."
  06-30 09:23 (4877690) how could 2 even work, we don't write the checkpoints at ...

● 2bc7d831d62e  [imported]  "can we start working on this?"
  06-30 09:09 (2bc7d83) can we start working on this?

● d2b6c31a4e9b  [imported]  "Yeah but the issue is as soon as a checkpoint / commit in..."
  06-30 08:57 (d2b6c31) Yeah but the issue is as soon as a checkpoint / commit in...

● def9943b30f0  [imported]  "if we would want to store the transcript.jsonl as full we..."
  06-30 08:46 (def9943) if we would want to store the transcript.jsonl as full we...

● 058751630ccb  [imported]  "<task-notification>\n<task-id>a676a8185d76c1abe</task-id>\n..."
  06-30 08:42 (0587516) <task-notification>
<task-id>a676a8185d76c1abe</task-id>
...

● 66311ee49b8c  [imported]  "can you give me a summary how we store session logs right..."
  06-30 08:40 (66311ee) can you give me a summary how we store session logs right...

● e698e190b41c  [imported]  "can you also post the findings on 1472"
  06-29 16:23 (e698e19) can you also post the findings on 1472

● acd45beca109  [imported]  "can you post those as findings on the trail using the cli..."
  06-29 15:34 (acd45be) can you post those as findings on the trail using the cli...

● 4ffd98acbcbe  [imported]  "can you review #1313"
  06-29 15:25 (4ffd98a) can you review #1313

● e16e3aaaac83  [imported]  "can you review #1472"
  06-29 13:34 (e16e3aa) can you review #1472

● 1b18c7ec130e  [imported]  "can you review again, I rebased"
  06-29 13:12 (1b18c7e) can you review again, I rebased

● 9ad2a22d8dfc  [imported]  "can you review #1549 ..."
  06-29 12:22 (9ad2a22) can you review #1549 ...

● 06efd7549b2f  [imported]  "I also not sure I like the design choice of just \"public\"..."
  06-29 11:52 (06efd75) I also not sure I like the design choice of just "public"...

● a090f0dc130b  [imported]  "can you review #1531 ..."
  06-29 11:26 (a090f0d) can you review #1531 ...

● 9a01b7c38400  [imported]  "ok, now update the other place for the brew docs :)"
  06-29 10:08 (9a01b7c) ok, now update the other place for the brew docs :)

● c7139bb53c2b  [imported]  "can you first review 1529 again"
  06-29 10:03 (c7139bb) can you first review 1529 again

● 6a72ca55142f  [imported]  "back to 1534: can you check there are not other places wh..."
  06-29 09:59 (6a72ca5) back to 1534: can you check there are not other places wh...

● 9d5af71d1933  [imported]  "can you now review #1529"
  06-29 09:50 (9d5af71) can you now review #1529

● 474fa98bdd8d  [imported]  "can you look at #1534..."
  06-29 09:45 (474fa98) can you look at #1534...

● 4f8c1a05c7b7  [imported]  "can you post the findings to the trail"
  06-26 10:51 (4f8c1a0) can you post the findings to the trail

● a30148800f79  [imported]  "<task-notification>\n<task-id>acb9f26eddbbec259</task-id>\n..."
  06-26 09:49 (a301488) <task-notification>
<task-id>acb9f26eddbbec259</task-id>
...

● 52143da192be  [imported]  "<task-notification>\n<task-id>a8ef47f97666c7ec7</task-id>\n..."
  06-26 09:47 (52143da) <task-notification>
<task-id>a8ef47f97666c7ec7</task-id>
...

● cb6566b53cf4  [imported]  "<task-notification>\n<task-id>ab560e36ee1d3b4fe</task-id>\n..."
  06-26 09:46 (cb6566b) <task-notification>
<task-id>ab560e36ee1d3b4fe</task-id>
...

● 0b6374e0727b  [imported]  "can you now review https://entire.io/gh/entireio/cli/trai..."
  06-26 09:34 (0b6374e) can you now review https://entire.io/gh/entireio/cli/trai...

● 3780222c8dca  [imported]  "can you post the two findings on the corespoding trail?"
  06-26 09:33 (3780222) can you post the two findings on the corespoding trail?

● 17a5bc98ead8  [imported]  "<task-notification>\n<task-id>ab980f2b645d399d7</task-id>\n..."
  06-26 09:05 (17a5bc9) <task-notification>
<task-id>ab980f2b645d399d7</task-id>
...

● e3746a86fc59  [imported]  "can you review https://entire.io/gh/entireio/cli/trails/6..."
  06-26 08:55 (e3746a8) can you review https://entire.io/gh/entireio/cli/trails/6...

● da9f546ca0b2  [imported]  "can you review #1511 ..."
  06-26 07:15 (da9f546) can you review #1511 ...

● d7db80fe900d  [imported]  "How can we figure out the checkpoint version before talki..."
  06-25 17:45 (d7db80f) How can we figure out the checkpoint version before talki...

● 60a30c517d1d  [imported]  "can you check #1507 i..."
  06-25 17:28 (60a30c5) can you check #1507 i...

● 4de09c8dbe06  [imported]  "are you sure the other code isn't generated too?"
  06-25 13:46 (4de09c8) are you sure the other code isn't generated too?

● a7f2ccdfdae6  [imported]  "<task-notification>\n<task-id>a5eabac878feb054a</task-id>\n..."
  06-25 12:47 (a7f2ccd) <task-notification>
<task-id>a5eabac878feb054a</task-id>
...

● ae405e941044  [imported]  "<task-notification>\n<task-id>a81ae07c29c11807f</task-id>\n..."
  06-25 12:46 (ae405e9) <task-notification>
<task-id>a81ae07c29c11807f</task-id>
...

● 074a9669b87b  [imported]  "can you review #1518 ..."
  06-25 12:41 (074a966) can you review #1518 ...

● aac680e5d19a  [imported]  "can you review https://entire.io/gh/entireio/cli/trails/661"
  06-25 11:35 (aac680e) can you review https://entire.io/gh/entireio/cli/trails/661

● d7f57fda979d  [imported]  "can you review https://entire.io/gh/entireio/cli/trails/652/"
  06-25 10:29 (d7f57fd) can you review https://entire.io/gh/entireio/cli/trails/652/

● a0dc8c4fe795  [imported]  "can you review #1499 ..."
  06-25 10:05 (a0dc8c4) can you review #1499 ...

● 4991964f4c59  [imported]  "Add debug"
  06-25 09:13 (4991964) Add debug

● 3889f0ebbc6a  [imported]  "Ok. Sounds good. The only thing I‘m now still wondering: ..."
  06-25 09:11 (3889f0e) Ok. Sounds good. The only thing I‘m now still wondering: ...

● 908a3544dda7  [imported]  "can you explain to me when resume will now directly launc..."
  06-25 06:45 (908a354) can you explain to me when resume will now directly launc...

● b257152616fa  [imported]  "can you check again, there were some new commits"
  06-25 06:29 (b257152) can you check again, there were some new commits

● d1772ae84a2c  [imported]  "The issue is: we are writing the placeholders - but they ..."
  06-25 06:26 (d1772ae) The issue is: we are writing the placeholders - but they ...

● 5fd4acd71e1f  [imported]  "Hmm. It has none merged. The prior try failed because no ..."
  06-24 16:19 (5fd4acd) Hmm. It has none merged. The prior try failed because no ...

● f2b9c1baea12  [imported]  "Hmm. It has none merged. The prior try failed because no ..."
  06-24 14:53 (f2b9c1b) Hmm. It has none merged. The prior try failed because no ...

● 15cbecef4326  [imported]  "Question: but the skipping sounds as if no new prompts we..."
  06-24 14:50 (15cbece) Question: but the skipping sounds as if no new prompts we...

● a5355b1b65c9  [imported]  "[Request interrupted by user for tool use]"
  06-24 14:50 (a5355b1) [Request interrupted by user for tool use]

● b99b7a61ff82  [imported]  "Question: but the skipping sounds as if no new prompts we..."
  06-24 14:33 (b99b7a6) Question: but the skipping sounds as if no new prompts we...

● 9e3847afcfc2  [imported]  "can you take a look at this, I did run it in ../git-sync:..."
  06-24 14:16 (9e3847a) can you take a look at this, I did run it in ../git-sync:...

● caabf544820c  [imported]  "<task-notification>\n<task-id>a3074a8a47b891551</task-id>\n..."
  06-24 14:03 (caabf54) <task-notification>
<task-id>a3074a8a47b891551</task-id>
...

● 6c110eac3ed6  [imported]  "<task-notification>\n<task-id>a13dc9fa412edcc6e</task-id>\n..."
  06-24 14:03 (6c110ea) <task-notification>
<task-id>a13dc9fa412edcc6e</task-id>
...

● 75f953bc7f73  [imported]  "<task-notification>\n<task-id>ad20ef831ab9e65ac</task-id>\n..."
  06-24 14:02 (75f953b) <task-notification>
<task-id>ad20ef831ab9e65ac</task-id>
...

● 6a06d3d60b75  [imported]  "<task-notification>\n<task-id>ab0dd083f555810c5</task-id>\n..."
  06-24 14:02 (6a06d3d) <task-notification>
<task-id>ab0dd083f555810c5</task-id>
...

● 9919dc6061ec  [imported]  "`/simplify → 4 cleanup agents in parallel → apply the fix..."
  06-24 13:58 (9919dc6) `/simplify → 4 cleanup agents in parallel → apply the fix...

● 87e140dbb789  [imported]  "<task-notification>\n<task-id>a574469aa1c7a2156</task-id>\n..."
  06-24 13:47 (87e140d) <task-notification>
<task-id>a574469aa1c7a2156</task-id>
...

● d88c60c7e9d5  [imported]  "<task-notification>\n<task-id>abcc3502034cdc607</task-id>\n..."
  06-24 13:43 (d88c60c) <task-notification>
<task-id>abcc3502034cdc607</task-id>
...

● 3513316e30da  [imported]  "hmm, they are embedded with the long prompts we have on m..."
  06-24 13:38 (3513316) hmm, they are embedded with the long prompts we have on m...

● d60960deb068  [imported]  "can you review #1511 ..."
  06-24 13:33 (d60960d) can you review #1511 ...

● d30159d49f5f  [imported]  "can you add both as findings to the trail"
  06-24 13:22 (d30159d) can you add both as findings to the trail

● 9c5d56031982  [imported]  "<task-notification>\n<task-id>ab0220103d4f0fce1</task-id>\n..."
  06-24 13:20 (9c5d560) <task-notification>
<task-id>ab0220103d4f0fce1</task-id>
...

● 97e388529f33  [imported]  "can you also look at https://entire.io/gh/entireio/cli/tr..."
  06-24 13:15 (97e3885) can you also look at https://entire.io/gh/entireio/cli/tr...

● 61404c98152c  [imported]  "ok, I think we need to change the onboarding idea a bit. ..."
  06-24 13:04 (61404c9) ok, I think we need to change the onboarding idea a bit. ... path — unasserted. Retarget them (branch view,
  zero-checkpoint hint, detached-HEAD labeling) with the wrapper's
  implied no-filter arguments, sharing one setup helper instead of the
  original copy-pasted scaffolding.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Entire-Checkpoint: 93a786da9959
peyton-alt added a commit that referenced this pull request Jul 7, 2026
…runs

A worker configured with N skills previously joined them into one
child's prompt: skills executed sequentially (or blended), so selecting
more skills made the user wait for the SUM of their durations. Measured
live: a two-skill claude worker ran ~9 minutes as one child.

explodeSkillWorkers splits each multi-skill worker into one worker per
skill at plan time (keys like claude-code:review, deduped against
existing workers), so skills run concurrently as ordinary slots — the
wait becomes the slowest skill. Two exploded workers also mean the
judge consolidates per-skill reports, extending the crew+judge value
prop to single-agent multi-skill profiles.

--agent now selects ALL of that agent's workers as a filtered crew
(previously an ambiguity error), running the single-agent path only
when exactly one worker matches.

Same-agent SAME-model exploded workers defeat the existing agent+model
session matching (assignments could cross, attributing tokens and
transcripts to the wrong skill). AgentRun gains Skills, propagated
through planned runs and both run paths, and the matcher requires
skill-set agreement when both sides carry skills — mirroring the
same-agent different-model disambiguation from #1313.

Verified end-to-end with a claude shim: a two-skill profile spawns two
one-skill children in parallel (~3s wall for both) plus the judge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Entire-Checkpoint: 116f0cd95d56
peyton-alt added a commit that referenced this pull request Jul 7, 2026
…runs

A worker configured with N skills previously joined them into one
child's prompt: skills executed sequentially (or blended), so selecting
more skills made the user wait for the SUM of their durations. Measured
live: a two-skill claude worker ran ~9 minutes as one child.

explodeSkillWorkers splits each multi-skill worker into one worker per
skill at plan time (keys like claude-code:review, deduped against
existing workers), so skills run concurrently as ordinary slots — the
wait becomes the slowest skill. Two exploded workers also mean the
judge consolidates per-skill reports, extending the crew+judge value
prop to single-agent multi-skill profiles.

--agent now selects ALL of that agent's workers as a filtered crew
(previously an ambiguity error), running the single-agent path only
when exactly one worker matches.

Same-agent SAME-model exploded workers defeat the existing agent+model
session matching (assignments could cross, attributing tokens and
transcripts to the wrong skill). AgentRun gains Skills, propagated
through planned runs and both run paths, and the matcher requires
skill-set agreement when both sides carry skills — mirroring the
same-agent different-model disambiguation from #1313.

Verified end-to-end with a claude shim: a two-skill profile spawns two
one-skill children in parallel (~3s wall for both) plus the judge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Entire-Checkpoint: 116f0cd95d56
peyton-alt added a commit that referenced this pull request Jul 7, 2026
…runs

A worker configured with N skills previously joined them into one
child's prompt: skills executed sequentially (or blended), so selecting
more skills made the user wait for the SUM of their durations. Measured
live: a two-skill claude worker ran ~9 minutes as one child.

explodeSkillWorkers splits each multi-skill worker into one worker per
skill at plan time (keys like claude-code:review, deduped against
existing workers), so skills run concurrently as ordinary slots — the
wait becomes the slowest skill. Two exploded workers also mean the
judge consolidates per-skill reports, extending the crew+judge value
prop to single-agent multi-skill profiles.

--agent now selects ALL of that agent's workers as a filtered crew
(previously an ambiguity error), running the single-agent path only
when exactly one worker matches.

Same-agent SAME-model exploded workers defeat the existing agent+model
session matching (assignments could cross, attributing tokens and
transcripts to the wrong skill). AgentRun gains Skills, propagated
through planned runs and both run paths, and the matcher requires
skill-set agreement when both sides carry skills — mirroring the
same-agent different-model disambiguation from #1313.

Verified end-to-end with a claude shim: a two-skill profile spawns two
one-skill children in parallel (~3s wall for both) plus the judge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Entire-Checkpoint: 116f0cd95d56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants