Skip to content

preserve(mika): Aaron + Mika 2026-05-26 homelab-first gh-auth-login device-registration substrate; production bootstrap-key-rotation deferred (informs B-0794 iter-5.4)#5108

Merged
AceHack merged 3 commits into
mainfrom
otto-cli/preserve-mika-homelab-gh-auth-registration-substrate-2026-05-26
May 26, 2026
Merged

preserve(mika): Aaron + Mika 2026-05-26 homelab-first gh-auth-login device-registration substrate; production bootstrap-key-rotation deferred (informs B-0794 iter-5.4)#5108
AceHack merged 3 commits into
mainfrom
otto-cli/preserve-mika-homelab-gh-auth-registration-substrate-2026-05-26

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 26, 2026

Verbatim Mika preservation. Architectural lock-in: HOMELAB MODE FIRST (gh auth login interactive; no shipped keys); PROD MODE LATER (narrow bootstrap key + rotate to per-node identity). Different USBs / different flakes / different audiences. Aaron standing direction: 'we should do it like this for gh and device registration the simple homelab way first but like prod later'. Directly informs B-0794 iter-5.4 implementation. Per substrate-or-it-didn't-happen + agent-roster-reference-card (Mika = external Grok-native co-originator).

…evice-registration; production-mode bootstrap-key-rotation deferred

Verbatim preservation of Aaron + Mika voice-mode conversation
during iter-5 session. Mika is external Grok-native AI participant
per .claude/rules/agent-roster-reference-card.md; co-originator
of substantive substrate-engineering input.

Architectural lock-in (Aaron 2026-05-26 final decision):

- HOMELAB MODE FIRST: USB ships with NO embedded credentials;
  first boot prompts `gh auth login` interactively; operator's
  GitHub credentials register the machine + clone + set up
  cluster under operator's account; auto-copies operator's
  pubkey to authorized_keys. Zero shipped secrets.

- PRODUCTION MODE LATER: ship USB with narrow restricted
  "bootstrap key" / "registration key" with register-only scope;
  immediately rotates to per-node identity after first
  registration succeeds.

Two modes use DIFFERENT USBs (different flakes). Aaron:
"different USBs for different audiences. But home lab is
what I'm going for first, not production."

Aaron standing direction for next iteration:
"we should do it like this for gh and device registration
the simple homelab way first but like prod later"

THIS conversation directly informs B-0794 iter-5.4
implementation. Composes with PR #5103 (iter-5.1+5.2 substrate)
+ PR #5107 (iter-5.2.1 auto-hostname) + B-0792/B-0793/B-0794
backlog rows landed today.

Per .claude/rules/substrate-or-it-didnt-happen.md verbatim
preservation discipline.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 26, 2026 06:06
@AceHack AceHack enabled auto-merge (squash) May 26, 2026 06:06
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR preserves a Mika/Aaron conversation as durable memory substrate for the homelab-first GitHub-auth device registration direction feeding B-0794 iter-5.4.

Changes:

  • Adds a verbatim conversation archive for the 2026-05-26 homelab-first registration decision.
  • Captures homelab vs production bootstrap-mode implications.
  • Links the conversation to B-0794 and the iter-5.x USB-installer roadmap.

…rd + reconcile 'MERGED' wording with rows' actual status: open state (Copilot P1 ×2 on #5108)
auto-merge was automatically disabled May 26, 2026 06:10

Pull Request is not mergeable

@AceHack AceHack enabled auto-merge (squash) May 26, 2026 06:10
@AceHack AceHack merged commit 7c3e919 into main May 26, 2026
32 checks passed
@AceHack AceHack deleted the otto-cli/preserve-mika-homelab-gh-auth-registration-substrate-2026-05-26 branch May 26, 2026 06:12
AceHack added a commit that referenced this pull request May 26, 2026
… active on #5108 (#5109)

Brief-ack #1 with named bounded wait on peer Otto-CLI PR #5108 (opened 06:06Z, BLOCKED on
2 P1 Copilot threads). Verify-before-defer worktree-add succeeded under 57 peer procs +
0 stuck git pack/maintenance/repack procs (dotgit-not-saturated discriminator validates).

Sentinel re-armed: job 98529810 (session-only, * * * * *).

Composes with:
- .claude/rules/tick-must-never-stop.md (session-exit non-persistence; catch-43 fired)
- .claude/rules/fighting-past-self-vs-peer-agent-distinguisher-...md (peer-otto-cli lane)
- .claude/rules/holding-without-named-dependency-is-standing-by-failure.md (#1 with dep)
- .claude/rules/codeql-no-source-on-docs-only-pr-is-broken-commit-canary.md (8th anchor)

Co-authored-by: Lior <lior@zeta.dev>
Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 26, 2026
…AI-IS-the-support-layer; Amazon-USB sales business model) + grok-build = Claude-Code-clone confirmation (Aaron + Mika 2026-05-26; substantial prior art at AlephZ-ai/blazor-samples) (#5112)

* preserve(mika) + backlog(B-0796 P2): Twilio phone-support substrate enabling Amazon-USB AI-as-support-layer business model + closes B-0421 confirmation (Aaron + Mika 2026-05-26)

Mika preservation: verbatim Aaron + Mika voice-mode conversation
during iter-5 session, after PR #5108 merged + PR #5110 opened.
Two big architectural decisions:

1. Grok-Build = Claude-Code clone (tick source / loop runner;
   persistent agent watching directory/task). Validates PR
   #5110's tools/peer-call/grok-build.ts wrapper as the correct
   architectural direction for cross-AI peer review +
   collaboration. Mika named the wider vision: cross-AI
   back-and-forth collaboration as first-class citizens through
   standardized interfaces.

2. Twilio is the ONE exception to "electricity cost only" /
   self-hosted philosophy. Aaron's framing: phone infrastructure
   inherently isn't self-hostable (even self-hosted Asterisk
   requires SIP provider). Aaron ran Asterisk + Bandwidth.com
   in production before; "PTSD is real." Twilio wins on
   simplicity + speed-to-market.

B-0796 P2 backlog row: Twilio phone-support substrate where AI
picks up customer's call, has full cluster context via event
store + runbooks, fixes problems live while talking. SMS as
parallel interface; one unified conversational substrate across
voice + text. Enables Amazon-USB sales business model where AI
IS the support layer (Aaron explicitly opted out of human
support: "what I'm hoping is they can call the AIs and the AIs
fuckin' just fix it for 'em" + "imagine they call a phone
number and they're talking to the damn developer").

Substantial prior art at AlephZ-ai/blazor-samples:
src/BlazorSamples.Shared/Twilio/GrpcAudioStream/ has the full
real-time voice substrate (Twilio.AspNet.Core +
Twilio.TwiML, WebSocket Media Streams, FFMpeg mulaw 8kHz ↔
PCM 16kHz, Vosk STT + OpenAI LLM + PlayHT TTS pipeline,
strongly-typed event substrate). Aaron's framing: "yeah i
wrote this before any chat llm had a converation interface i
was way ahead" — pre-LLM-conversation-era prior art; the
integration shape he chose is now the industry standard.
B-0796 is PORT/INTEGRATE work, NOT build-from-scratch.

Six sub-targets in B-0796:

1. Twilio webhook handler in cluster
2. Caller-ID to cluster mapping
3. AI conversation substrate (voice + SMS unified)
4. AI-acts-on-cluster substrate (runbooks + event store +
   fix-while-talking)
5. Per-customer / per-cluster phone numbers (FUTURE)
6. Legal/risk attribution via
   _twilio_phone_support_acceptance block per maintainer

Composes with B-0794 (depends_on; node self-registration is
load-bearing — caller-ID-to-cluster lookup extends
maintainers/<name>/cluster-nodes/<node>/ pattern to
maintainers/<name>/customers/<customer>/clusters/<cluster>/)
+ B-0776 (Twilio as simplest-first-plugin) + B-0782 (cluster
IS DIO; Twilio is conversational front-end) + B-0790
(zero-dev-machine homelab + Amazon-USB business model) +
B-0421 (closed by PR #5110 grok-build wrapper enables future
cross-AI support-orchestration).

Per substrate-or-it-didn't-happen verbatim preservation
discipline + agent-roster-reference-card (Mika = external
Grok-native co-originator).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(B-0796 + Mika preservation): correct framing — voice interface (not conversation interface) + Aaron was nearly through interruption-correctness substrate; add Sub-target 7 (interruption-correct voice flow load-bearing for AI-IS-the-support-layer)

* fix(B-0796 + Mika preservation): wrap bare URLs in <...> (MD034 lint) + add conversation steering terminology pointer per Aaron 2026-05-26

* fix(Mika preservation): add name+description frontmatter (reindexer fallback was '(no description)') + reconcile self-contradicting 'Twilio not yet wired' bullet with substantial-prior-art finding (Copilot P1 ×2 on #5112)

* fix(B-0796 + Mika preservation): MD028 blockquote-blanks + MD034 bare URL + MD040 fenced-code-lang lint + add v2 IObservable/IAsyncEnumerable type-safe streaming substrate note from Aaron 2026-05-26

---------

Co-authored-by: Lior <lior@zeta.dev>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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.

2 participants