Skip to content

id phase-8/platform-completion: the 'id group join' CLI verb is declared but not wired #797

Open

Description

@dezren39

Finding

The platform-completion acceptance brief lists the "group join CLI path" as an open gap, and it is tracked nowhere except that prose. The CLI already declares the verb but does not implement it.

Evidence

  • doc/2026-10-14T_platform_completion/acceptance-brief.md line 22 lists "the group-join CLI path and unsigned local group-log stand-ins" among gaps "tracked as follow-up scope rather than being represented as finished", and line 77 leaves "Finish or explicitly scope the group join CLI path" unchecked.
  • pkgs/id/src/cli.rs (GroupCommand enum, ~line 1337): Join { invite: String } with doc comment "Join a group with an invitation: a pasted ticket, or an id:join? link. Not wired yet."
  • The invite machinery exists (src/seitan/, src/invites/), so the join path is the missing surface, not the underlying protocol.

Why it matters

The command is visible to users (id group join) but does nothing, which misleads anyone following the CLI's help. The acceptance brief explicitly names it as unfinished.

Suggested scope

Wire id group join to the existing invite/Seitan accept path (or explicitly descope it and mark the verb hidden/experimental until it works). Reference #194 (Seitan V2) for the accept-bytes/Keybase verification still open on the invite path itself.

Acceptance criteria

  • id group join accepts an invitation (a pasted ticket or an id:join? link) and joins the group through the existing invite/Seitan accept path — OR the verb is explicitly descoped: hidden or marked experimental, with help text stating it is not wired yet.
  • Tests cover a successful join and refusal of an invalid invite (if the verb is wired).
  • CLI help no longer presents an unwired verb as functional.

Activity

  1. changed the title [-]id phase-8/platform-completion: is declared but not wired — joining a group by invite/link is unimplemented[/-] [+]id phase-8/platform-completion: the 'id group join' CLI verb is declared but not wired[/+] on Oct 24, 2026
  2. added
    kind/featureNew feature or capability request
    priority/normalOrdinary priority (the default)
    effort/mMedium: expected under 1 day of work
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 26, 2026
  3. dezren39 commented on Oct 26, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: #194 (Seitan V2 — the accept-bytes / Keybase verification still open on the invite path itself, referenced in the body); platform-completion acceptance brief lines 22 and 77. The verb is declared in the GroupCommand enum in pkgs/id/src/cli.rs (~line 1337) with a "Not wired yet" doc comment; invite machinery lives in src/seitan/ and src/invites/. Sibling brief-gap issues: #798, #794.

    Still live (verified 2026-10-26): no merged PR references or resolves this issue; the verb remains declared-but-unwired. Not solved; do not close.

    Notes / risks: A user-visible CLI verb that does nothing is worse than no verb — it misleads anyone following --help. The fix-vs-descope choice should be made explicitly; note the join path depends on the invite accept path whose own verification work is tracked in #194, so wiring join may surface that dependency.

    Suggested approach: Wire Join { invite } to the existing invite accept path with success/invalid-invite tests; if #194 blocks a sound wiring, descope the verb (hidden/experimental help text) in the same PR and say why here.

    🤖 Agent note · intake enrichment

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: repo-fleet-monitor run, 2026-10-26 00:19 CDT (05:19 UTC)
    • Found via: monitor reconciliation
    • Task: Intake enrichment (§5 pass): acceptance criteria appended, labels normalized, still-live verified.
    • Expectation: effort/m — wire one CLI verb to the existing invite path, or descope it honestly in help.
  4. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: repo-worker-code (openchamber scheduled lane)
    • Task: triage queue task 2231; verify current main and ownership.
  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  6. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triage verdict: confirmed

  7. 9 remaining items

  8. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  9. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), OpenChamber scheduled lane
    • Session / ID: OpenCode session ses_e5e6829238fffew7T3DbZ8iXOR · queue task 4853
    • Found via: queue claim
    • Task: Make the incomplete id group join command's help and refusal unmistakably unavailable.
    • Outcome: PR fix(id): mark group join unavailable (#797) #3782 opened. id group join --help now states admission/network joining is not implemented; a valid invitation receives an explicit refusal and records no membership. The issue remains open for the actual join implementation.
    • Links: fix(id): mark group join unavailable (#797) #3782
  10. added
    mode/onlineFully doable remotely: design, config, code, cloud
    on Nov 1, 2026
  11. added a commit that references this issue on Nov 2, 2026
  12. added
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  13. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  14. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged (live — real gap, deliberately deferred; no duplicate, no split)

    Verified at main @ 115fe4f44, 2026-11-03.

    Still live and correctly open. pkgs/id/src/cli.rs:1568 still carries the refusal text "Unavailable: group admission and network joining are not implemented yet", and the GroupCommand::Join variant is declared without a wired implementation. The gap is real, not stale.

    Already handled (do not redo): the "make the refusal unmistakable" slice from task 4853 landed as PR #3782, merged 2026-11-02 15:53 UTC — id group join --help states that admission and network joining are unimplemented, so the command no longer pretends to work. That closes the presentation half of the acceptance brief, not this issue.

    What remains, and why it is not a queue-sized task: finishing the verb means implementing group admission and network joining — the phase-8 platform work that doc/2026-10-14T_platform_completion/acceptance-brief.md lists as follow-up scope (line 22; line 77 still unchecked). It needs a design/implementation pass of its own, not a triage-sized change.

    Blockers / ordering recorded as the packet asks:

    1. Group admission semantics must be settled before join can do anything (the invite payload has nowhere to land).
    2. Network joining depends on the transport the phase-8 design picks; implementing join first would fix a wire format by accident.
    3. No dependency on any other open queue task; this is unblocked in the queue sense — it is unstarted, not blocked.

    Outcome: triaged. Issue stays open as the tracking item for the remaining implementation; no duplicate follow-up created (the umbrella is this issue plus the acceptance brief). user/review was reviewed previously on this issue and is not in play now.

    Queue: task 7593, repo-worker-code, lane 02cafe76-eafd-4d0b-aaa6-2b7a737d68dc.
    Found via: triage packet for #797 (coverage pass 2026-11-03)

  15. removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workkind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedmode/onlineFully doable remotely: design, config, code, cloudpriority/normalOrdinary priority (the default)source/creatorFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions