Per-provider login session naming: lab-login-<id> with prefix-keyed exclusions #77
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/coding-lab#77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
tmuxx.LoginSessionis the single fixed session name"lab-login"(internal/tmuxx/tmuxx.go:44). The session-exclusion sites — cap counting, branch ownership, stop-all (design §4d) — key on equality with that one symbol, so every provider's login flow must reuse the same tmux session name. With a second provider (#2 Codex), concurrent logins collide in one session, and the constraint is invisible until an operator setting up a fresh host trips it.Decided in provider-seam grill (2026-07-09): per-provider names, prefix-keyed exclusions. Safer to change now, while ONE login flow exists, than after two are live.
Design
lab-login-<providerID>(e.g.lab-login-claude-code).tmuxx.LoginSessionwith one predicate, e.g.tmuxx.IsLoginSession(name string) bool(prefix match onlab-login), used by every exclusion site. Keep the prefix a single const so the predicate and the name derivation cannot drift.lab-login(the legacy name) should still satisfy the predicate so a login session left over from an older binary is not orphaned from the exclusions.Acceptance
lab-loginstill recognized.Landed PR #82 —
feat(tmuxx): per-provider login sessions lab-login-<id>— merged tomain.Verdict: PASS. Verification signal relied on: the required
ci / nativecheck (run #82) → success (4m55s); not re-run locally.ci-nixcorrectly skipped (no.nix/flake.lock/go.modin the diff). No merge conflict withmain.Acceptance criteria (#77) all met:
tmuxx.LoginSessionsymbol is removed; every exclusion site (instance cap-count/StopAll, reconcile ownedBranches/killSessionOnBranch, afk drainZombies, claudecode login) now goes throughtmuxx.IsLoginSession.LoginSessionName) and predicate (IsLoginSession) share the oneLoginSessionPrefixconst — cannot drift.lab-loginstill recognized/excluded;lab-loginx/xlab-logincorrectly rejected (dash-separator guard, tested).Issue auto-closed via
Closes #77.