fix(hive): seed Pi with positional bootstrap prompt - #560
Merged
chaitanyagiri merged 1 commit intoOct 2, 2026
Merged
Conversation
- Declare Pi's positional initial-prompt delivery so fresh agents receive the full hive bootstrap instead of spawning bare. - Also tighten the generic provider bootstrap contract, add Pi regressions for single-argv delivery and bridge-install failure, and document intentional bare-spawn behavior for providers without a seed strategy.
4 tasks done
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.
What & why
Pi agents currently spawn without the hive bootstrap because the provider preset does not declare how the initial prompt should be delivered. This leaves a fresh Pi session with no role, protocol, or inbox context until a later dispatch arrives.
This change declares Pi's existing positional initial prompt contract so the full bootstrap is passed as a single argv value on fresh spawn. It also tightens the shared provider contract and adds regressions for bootstrap delivery and bridge installation failure without introducing a Pi specific spawn path or touching Pi's private session storage.
Closes #558
Type of change
Evidence
Before
Pi could receive hive inbox messages, but its provider preset declared no bootstrap delivery strategy. A fresh Pi agent therefore reached the generic bare spawn fallback.
The regression guard reproduces the missing contract when
positionalInitialPromptis removed:Suggested screenshot content:
This demonstrates that the shared provider guard fails when Pi has inbox capability but no initial bootstrap path.
After
Pi now explicitly declares positional initial prompt delivery. The full multiline bootstrap is passed as one positional argv value during a fresh spawn.
The Pi bootstrap regression also verifies that a bridge installation failure does not prevent bootstrap delivery and that the bridge error remains observable.
Suggested screenshot content:
The final Pi and provider regression set passes 12/12.
How I tested it
Result:
The broader related regression set also passes:
Additional validation:
npm run typecheck npm run build git diff --checkResults:
I also ran the full focused suite:
The full focused suite is not completely green on Windows. The remaining failures are in Windows symlink
EPERM, HOME isolation, and existing source pattern tests outside the Pi bootstrap paths changed by this PR.The issue focused Pi and provider tests are green, and no Pi specific Windows handling was added.
Boundary coverage
The implementation intentionally stays on the existing provider bootstrap contract:
pi [options] [messages...]positional message interface.--sessionand the positional bootstrap remain independent argv entries and do not require provider specific argument reordering.Checklist
npm run typecheckpasses.npm run test:focusedpasses.EPERM, HOME isolation, and existing source pattern failures outside this change.npm run buildsucceeds.DESIGN.md/tokens.tswith no ad hoc colors, spacing, or fonts.ATTRIBUTION.md.