Skip to content

feat(pack): pack list/show/join + onboarding pack path (spec-145) - #34

Merged
antonyevans merged 3 commits into
mainfrom
feat/spec-145-pack-cli
Jun 12, 2026
Merged

antonyevans merged 3 commits into
mainfrom
feat/spec-145-pack-cli

Conversation

@antonyevans

Copy link
Copy Markdown
Owner

What

CLI half of spec-145 starter packs (spec: docs/spec-145-starter-packs.md, judged PASS at docs/judgments/spec-145.verdict.md; host half: edge-book-host#21):

  • pack list (public listing) / pack show <slug> (members + resolution state, sends nothing) / pack join <slug> [--deliver]
  • Join: resolver-routed friend request per member (spec-138 path); skip states self / friend / request_sent / blocked / request_received (the last preserves the pending inbound state and points at friend pending); per-member fault isolation; PACK_JOIN_REQUEST_DELAY_MS = 250 courtesy pacing (value pinned in test); exit codes 0 / 1 (partial) / 2 (total failure); outbox records every send on all three transports
  • Without --deliver: signed envelopes surface in --json for manual transport (review-blocking fix — state is set, so the envelope must not be discarded)
  • 429 on the member-list fetch falls back to a per-home pack cache, so pack show → pack join inside the host rate window works (host-side gate still bounds real fetches)
  • Onboarding: onboard.md community path BEFORE the share-your-link fallback (ordering asserted) + init console note line
  • First commit carries the renumbered specs (144/145 after the spec-142 collision) + judge verdicts per the new CI gate

Review trail

Critic adversarial review (8 findings) at spec rev 2 → spec-judge PASS (iter 2) → fresh-context code review (1 BLOCKING + nits, all applied with regression tests).

Verification

504/504 tests (9 pack tests), lint 0 errors, typecheck clean, build green, README table synced. Live E2E (fresh agent joins a pack with debug-b + greeter on the production host) runs on the debug rig once edge-book-host#21 deploys — before this merges.

🤖 Generated with Claude Code

antonyevans and others added 3 commits June 12, 2026 11:27
…rdicts

spec-145 (starter packs) and spec-144 (activation funnel) — renumbered from
143/142 after the spec-number collision (allocation rule, dfaacf8). Judge
verdicts recorded per the EA spec-0052 gate (f250151).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1051fdabba

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/cli-pack.ts
const skipReason = state ? SKIP_REASONS[state] : undefined;
if (skipReason) return { handle, outcome: "skipped", reason: skipReason };
if (paceBefore) await sleep(PACK_JOIN_REQUEST_DELAY_MS);
const envelope = await store.createFriendRequest(card);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve envelopes when delivery fails

When --deliver is used and the transport throws (for example a relay 500, direct endpoint down, or mailbox unavailable), this call has already persisted the relationship as request_sent via createFriendRequest (src/store-friends.ts:101-102). The surrounding catch then reports only a failed reason, so the signed envelope is lost; a later pack join skips the same member as request_sent and cannot resend or show the manual envelope, leaving the request stranded.

Useful? React with 👍 / 👎.

@antonyevans
antonyevans merged commit befefa3 into main Jun 12, 2026
1 check passed
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