Orchestrator handover 2026-10-28: moving to a new machine #254
Closed
opened 2026-10-28 17:50:46 +00:00 by kayg
·
2 comments
No Branch/Tag specified
main
j470b-server-mesh-rejoin
mesh-compat-382
j444b-d381-key-wins-flood
j461b-macos-utun-reader-thread
j475b-remove-host-motion
fix-reconnect-new-link
j481-d380
dev
j479-mesh-soak
fix/j476-host-facts
j475-motion-pill-split
j470-mac-node-join
root-upgrade-d376
j474-review-merge
latency-targets-120hz
nightly-suite-shards
gotatun-pin-j469
macos-utun-reader-thread
fix-flood-echo-stall
wip/j416
motion-fast-ease-out
mesh-addhost-j259
takeover-close-terminals-d368
kbd-instant-followups
fix-trust-key-double-click
nightly-suite-partial-report
appwin-icons-j207
rusqlite-slice1
swipe-content-first-d374
mesh-mtu-381
addhost-instant-open
glass-contrast-d365-mock
glass-contrast-d365
signout-followups-442
fix-startup-toast-red
research-gotatun-matrix-j317
themes-sync-j304
fix-load-flakes
fix-nix-zig-patch
fix-compute01-browser-baseline
ratchet-size-baseline-419
predict-auto-d130
revoke-coverage-d367
nightly-suite-queue-timeout
nightly-browser-suite
fix-rustsec-2026-0459
fonts-ioskeley-obel
log-retention-d375
fix-kbd-no-anim-427
fix-dev-red-specs-2
takeover-proof-305-j205
wip/j410-server-pump
ui-consistency-d372
fix-osc52-clipboard
libghostty-vt-1.0
forget-retired-host-d369
j404-merge-426
fix-setup-lock-race
fix-touch-select-426
revoke-access-report-ui
fix-predictive-echo-specs
fix-selinux-agent-exec
wip/j395-checkpoint2
wip/j395
j391-review-scratch
ui-consistency-j195-deferred-rebased
fix-rustc-paths-421
decisions-wording-341
fix-install-suite-red
fix-dev-rtt-specs
fix-pending-removal-align
fix-privileged-skip
fix-install-suite-404
review-j368
mesh-dns-j254
revoke-access-report-d356b
revoke-privilege-round5
fix-removal-confirm
review-j360
gotatun-rotation-367
deps-refresh-340
review-j354
review-J351
review-j350
addhost-takeover-d359
revoke-report-items-347
revoke-end-sessions-d362
review-j348
size-mesh-ssh-346
size-trim-337
revoke-access-diff-d356
j259-pre-rebase-b06c5a6
j305-ended-at-start-spec
addhost-sudo-consent
fix-layout-real-specs-411
fix-shell-open-411
fix-console-hosts-373
fix-shell-exit
fuzz-host-name-353
fix-host-details-410
macos-filter-j197
research-gotatun-tricks
revoke-p3-j216l
stale-state-pill
revoke-followups-j216k
revoke-progress-j216e
backup/macos01-20261106/lume/j197
backup/macos01-20261106/lume/appwin-icons-j207-stash0
backup/macos01-20261106/claude/stash-0
backup/macos01-20261106/claude/stash-1
backup/macos01-20261106/claude/J80-macos-s1
backup/macos01-20261106/claude/J80
backup/macos01-20261106/claude/J80-slice1-20261102
backup/macos01-20261106/claude/J16b-appwin-on-dev
backup/macos01-20261106/claude/appwin-launch-idle-146
backup/macos01-20261106/claude/J80-s1-run
wip/j259
trust-285-p3c
runtime-lock-j216f
mesh-ssh-p3-j175
tun-proof-p3b
trust-285-p3
terminal-polish-j271
tun-proof-p3
ssh-install-flakes-j216i
fuzz-fixes-j264
trust-285-a
trust-285-b
restart-oversized-fixture-j198
backup/macos01-20261106/lume/appwin-icons-j207
restart-bound-j216h
up-preflight-p3-j198
backup/macos01-20261106/lume/j251
up-preflight-j198
wip/up-preflight-j198-j245-p2
wip/up-preflight-j198-j245-p1
agent-fsync-offloop-j196
wip/up-preflight-j198-j245
settings-offscreen-j231
wip/up-preflight-j198-j226-inspection
wip/j103f
themes-j206
wip/up-preflight-j198-j226
flakes-j216c
backup/macos01-20261106/claude/j197
flakes-j216b
backup/macos01-20261106/claude/j197-red
wip/up-preflight-j198-review
flakes-j216
backup/macos01-20261106/claude/appwin-icons-j207
engineering-j208b
appwin-mock-j209
toast-stack-j165
engineering-j208
decisions-d351
decisions-d350
decisions-d349
appearance-presets-mock-j129
decisions-d348
docs-audit-spec
doc-coverage-baseline-raise
decisions-d347
decisions-d346b
decisions-d346
j88h-profile
ui-consistency-j195-deferred
ui-consistency-j195
engineering-practices-j194
preferred-login-ui-j166
signin-pools-263-j174
macos-node-265-s1
decisions-d345
decisions-d344
proxy-cgroup-j164
verify-quick-fuzz-329
proxy-start-io-j168
timing-flakes-j163
up-263-s1
mcp-events-j147
verify-quick-fuzz-j158
proxy-p3-j159
agent-resource-j157-detect
wip/j103d-final
remote-cancel-hang-j155
proxy-traefik-281-j62d
j149-verify-quick
proxy-traefik-281-j62b
j150-drop-unnamed
wip/j79d-red-r4
wip/j103d-d332
rootless-toast-j142
wip/j103d-head
wip/j103d
j125c-mcp
macos-build-j136
backup/macos01-20261106/claude/j136
wip/j79d-red-cli
wip/j79d-red-server
j121-link-liveness
j118c-tracer-failures
wip/j79c-head
release-desktop-j131
j124c-signed-macos
wip/j79c-red-p3
wip/j79c-red-p23
wip/j79c-red-p22
merge-j128-check
perf-deferred-j128
sidebar-toggle-260
j127-shortcut-changed-dot
j125-mcp
j118-tracer-failures
j126-account-summary
settings-sections-mock-j92
j120-pinch-lock
sidebar-292
backup/macos01-20261106/claude/j120
taste-2026-11-03
row-actions-242-215
backup/macos01-20261106/claude/stash-0-untracked
backup/macos01-20261106/claude/J80-265-s1-run
backup/macos01-20261106/claude/J80-macos-s1-20261102
j112-canvas-commands
ui-no-overshoot-scroll
fix-recovery-restart
backup/macos01-20261106/claude/stash-1-untracked
taste-2026-11-02
size-baseline-ratchet
machine-cards-structure-j108
j109-boot-copy-mockups
fix-dev-red
wip/up-263-s1
j95b-settings-rows
proxy-traefik-281
j95-option-rows
docs-human-j91
docs-keys-palette
fix-flood-1013-270-j38d
mesh-ssh-s1
mesh-ssh-s0
addhost-d291-tunnel
test-stability-load
mesh-relay-220
repro-296
shim-thp-off-24
mesh-pins-258-v2
mesh-dns
signin-d311-merged
docs-pages
ui-size-283
fix-ui-batch-specs
wip/j12b-edge-update
gate-on-arm
fix-rename-sync-293
trust-285-j60b
fix-focus-ring-clip
integ-ui-1101
edge-update-v2
signin-d311
taste-2026-11-01
layout-per-tab-250
ui-approved-splitopt-224
ui-approved-splitopt-224-on-dev
icon-text-centre-282
ui-approved-189-212-216
research-reverse-proxy
transfer-budget-320
review-mesh-pins-258-r2
sidebar-pill-259
review-mesh-relay-220
wip/j12-edge-update-v2
nix-package
status-crash-loop-237
fix-dev-test-failures
fix-fixture-socket-path
wip/mesh-relay-220-pre-dev-advance-rebase
fix-canvas-side-clip
research-head-to-head
frosted-real-256
review-mesh-pins-258
wip/mesh-relay-220-pre-final-rebase
review-layout-per-tab-250-r2
broad-suite-triage
nix-devshell
review-status-crash-loop-237-r3
wip/nix-devshell-pre-p3
taste-frosted-real
wip/code-serve-demo-2026-10-30
wip/code-serve-glass-2026-10-30
wip/code-serve-clusters-2026-10-30
wip/code-merge-release94-dev-2026-10-30
wip/rproxy-delta-scratch-2026-10-30
wip/stale-note-257-staged-2026-10-30
wip/d241-size-staged-2026-10-30
review-broad-suite-207
wip/mesh-pins-258-pre-split
wip/mesh-relay-220-pre-rebase
mesh-measure-220
plan-211-update
review-edge-autoupdate-r3
perf24-reconnect
review-stale-note-r2
release-prod-live
d241-shell-marker
review-mesh-pins-server-258
review-revocation-r3
review-setup-token-r2
review-sync-journal-r3
wip/review-mesh-pins-258-prune-review-1995fee46
frosted-scroll-256
sync-journal-r3
revocation-per-account-wip
review-tokio-asyncfd-0386
review-sync-p3s
wip/stash-8by64-stash0-2026-10-30
mesh-drag-r2
setup-token-data-wip
release-9-4
auth-busy-1013
mesh-view-overlap
sync-p3s
review-auth-busy-wake
review-readd-r8-wip
mesh-drag-bounds
audit-auth-93
app-windows-stream-start
review-authority-cap-r3
app-windows-r7-measure
readd-minimal-r6
readd-minimal-r5
app-windows-r7-soak
readd-minimal-r4
app-windows-r7
app-windows-r6
readd-minimal-r3
readd-minimal-r2
readd-minimal
merge-release8-dev
review-busy-page-liveness-r2
review-busy-page-liveness
mesh-view-trim
review-authority-read-retry-r2
review-remove-uninstall-r2
release-retry-reattach
release-retry
review-remove-uninstall
review-authority-read-retry
app-windows-ship
mesh-autoswitch-p2
mesh-ssh
mesh-relay
mesh-macos-node
screen-and-control
session-labels
review-real-logins-r5
review-real-logins-r4
review-real-logins-r3
shim-memory-r2
review-real-logins-r2
shim-memory
shadow-addhost-instant
shadow-real-logins
shadow-same-session-flood
shadow-prod-perf-fix
hosts-from-server
app-windows-real
app-windows-transport
release-prod-6w
mesh-policy-verify
quiet-close-toast
dev-merge-r4
review-mesh-agent-transport
review-app-windows-transport
settings-roundtrip
review-release-pipeline-r4
mesh-agent-transport
ended-strip-fix
review-audit-ca-update-d244
settings-rows
phone-width
signout-clear
fix-restart-tests
dev-merge-rp
signer-hardening
review-audit-ca-update
terminal-fidelity
review-audit-ca-update-wip
mesh-integrate
review-mesh-agent-transport-515d3712
review-mesh-dataplane-feec1988
mesh-dataplane
signout
research-canvas-node
wip/review-renderer-cost
wip/review-terminal-fidelity
padlock-glyph
review-release-pipeline-2e95b689
phone-polish
sidebar-polish
inbox-generic
review-mesh-dataplane-378d4055
prod-batch
ui-inbox
ui-ca-unlock
ui-machine-sections
review-mesh-dataplane-a5f744fb
tls-session-prod
session-bounds-prod
fix-dead-session
session-bounds
tls-session
palette-polish
shortcuts-d222
research-appmeta
phone-gutter
ui-centre-button
wip/ui-centre-button
wip/tls-session
review-addhost-breakit
ui-platform
renderer-cost
remote-agents
mesh-api
ssh-bootstrap
prod-hotfix2
prod-fixes
review-remote-agents
review-mesh-dataplane
session-life
research-browser
review-mesh-api
research-capture
review-mesh-api-round3
review-mesh-api-round1
gate-stability
review-gate-stability
review-relay-direct
review-mesh-api-findings
proto-sessions
font-picker
proto-addhost
proto-windows
mesh-core
latency-gate
research-bsd
research-discovery
keytray-mods
mock-core
ui-tweaks
fix-motion-sel
fix-motion
integrate2
fix-robust
t-web
t-server
vt-ghostty
fix-snap-echo
t-web-auth
review-vt2
t-agent
lane-protocol
lane-shim
lane-auth
s1-base
s1-contracts
s1-workspace
No results found.
No labels
launch-qa
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
kayg/infraternal#254
Loading…
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?
Orchestrator handover, written 2026-10-28 ~23:45 IST by the outgoing orchestrator (Claude, session
session_01GHLxFr6gB7AcU2GRKHB6DE). The owner is moving the orchestrator to a new machine. This issue is the single starting point for the next orchestrator: read it top to bottom before doing anything.Read first, in this order:
CLAUDE.md→DECISIONS.md(canonical; D1–D310 on dev) →docs/ARCHITECTURE.md→docs/PROCESS.md→docs/design/TASTE.md(before any UI) → this issue → #24 (status board, kept current).Every time below is in IST. The owner wants all times in IST (CEST + 3:30; CET + 4:30 since 25 Oct).
0. Before infraternal-dev is shut down or decommissioned: copy these off it
The old orchestrator host is
infraternal-dev(NetBird 10.69.69.125, LAN 10.70.3.157, userkayg). The git history is safe: everything is pushed to Forgejo, and unique branch tips are kept asarchive/2026-10-28/*tags. The files below exist only on that machine. Copy them to the new host before it goes away, as the same user, preserving permissions. None of them may ever be posted to fj.~/infraternal-orchestrator-handover-2026-10-28.tar.gz(mode 600)816fe0bf2339047735be369b5691bef3bb5a99440774d7984bddf477b38008a2~/.config/infraternal/op-service-account-token~/.ssh/git.kayg.org,~/.ssh/git.kayg.org.pubssh://git@10.69.69.52:2222~/.ssh/github.com,~/.ssh/github.com.pub, plus theHost github.comblock in~/.ssh/config~/.local/share/forgejo-cli/keys.jsonfjandissue-attach~/.config/openai1/,~/.config/openai2/codex loginon the new host~/.config/firecrawl-cli/~/.claude/(1.7 GB) and~/.claude.jsonagents/(designer), andprojects/-home-kayg-Developer-infraternal/(the memory and this session's full transcript15bbfdbc-0147-45a8-a97b-90d4ce6d4d03.jsonl)~/.config/git/kayg/ team@kayg.org~/.local/state/codex-jobs/infraternal/(14 GB)~/.cache/sccache-infraternal/(43 GB)~/.local/share/infraternal,~/.local/share/infraternal.bootstrap-cache,~/.local/share/infraternal.dev-2026-10-06Example, run on the new host as
kayg. It copies everything in the "Must copy" table into the same paths, keeping permissions. sshd is not running on infraternal-dev, so use NetBird SSH:Merge the
Host github.comblock from the old~/.ssh/configby hand. Afterwards, check that~/.config/infraternal/op-service-account-tokenis mode 400 and its folder 700.Then, on the running system:
systemctl --user stop serve-demo serve-recovery serve-clusters status-previewand the threeinfraternal-*timers.infraternal-agent.serviceon infraternal-dev is an infraternal host in production. If the machine goes away, remove it in production's host list, or expect it to show as offline.http://10.69.69.125:47361,:47381,:47401,:47391).1. Where things stand (2026-10-28)
Nothing is running. No Codex jobs, no subagents. The scheduler is paused (
orchestrator/pauseexists). Nothing has happened in the repo since 2026-10-22 ~08:45 IST, when Codex sign-in expired.Production (monitor01,
root@10.69.69.50, https://infraternal.kayg.org):b30bb81cf; MainPID 211431 since 2026-10-22 06:31 IST; exe SHA-25671ced02f01ef832a…(= artifact)db4add238= 9.4 + mesh-view-overlap + mesh-drag r4 + a test typing fix. Swapped in live with no restartrelease-prod-livedb4add238(always = what runs in prod)Branches (all remote branches were cleaned today; see §6):
dev81962ab09release-prod-livedb4add238release-9-4b30bb81cfmain5a0ec9ee7proto-status(a preview)Codex:
codex login statusreports both~/.config/openai1and~/.config/openai2signed in. On 2026-10-22, openai1's refresh token had expired (401) and openai2 hit its usage limit (reset 2026-10-27 07:32). The owner may have runcodex loginsince then. Before relaunching anything, run one smallcodex execper account to confirm it works.2. Owner rules and standing orders (verbatim where quoted)
Canonical decisions are in
DECISIONS.md. Only the owner can change one.The decisions that drive the queued work:
infraternal mux: sessions automatable from inside a session (#251)These orders and constraints are not in DECISIONS.md, or only partly:
scripts/verify.d/rust.shratchet to measured bytes, with no allowance.orchestrator/fast-mode; jobs run with-c service_tier="priority".Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>andClaude-Session: <session url>. No other products' names in code or comments.issue-attach, never into the repo (D262). Jobs never close issues; the orchestrator does when the owner asks.Security and access constraints (verbatim from the owner or from hard safety needs):
~/.config/infraternal/op-service-account-token. Never cat or display it; pass it only as an env var. Vault "Apps / Infraternal" (Cloudflare token). Orchestrator only.ssh monitor01fails host-key verification; usenetbird ssh --no-browser root@10.69.69.50.infraternal-test-*guests.rules.md: "no contact of any kind from jobs: no ssh, no host-key probe, no ping, no inventory scan". When you list hosts from production data, filter it out first./home/kayg/.local/share/infraternal*on it is the owner's live add-host test fixture: never modify, move or delete it (owner: "please don't, rather build the better UX and let me try if it works!").kayg@10.69.69.101(the Mac VM also runs on it; one lock for both):netbird ssh --no-browseronly, never--tty./tmp/infraternal-bench.lock; stop below 30% battery.open -n -W. On any prompt or denial, stop and never retry.352d671b823b352f3c12ad1f71dcf6c55e82e5857f0b7c15956f2e404c1858cc).~/Library/Keychains/infraternal-signing.keychain-db, unlocked in the same command right before each codesign. Sign by SHA-13E6AE7C6BA4CFE1E6280535EB93CF7A7959A7BA6.root@10.69.69.208(infraternal-perf-test, ours alone, 4 vCPU): use netbird ssh andflock /var/lock/perf-bench.lock. All perf numbers come from here./var/lib/infraternal/infraternal.sqlite; sqlite3 is not installed there).kaygdotorg/infraternal: push only when the owner says so. Issues stay on fj. #218 tracks the history secrets audit before any public push.3. Work queue, in priority order
3a. Owner actions (only the owner can do these)
CODEX_HOME=~/.config/openai1 codex login(and openai2 if needed).parked/53-app-windows-second-capture(#146) can run.3b. First orchestrator tasks on the new machine
Merge production back into dev (#24).
git merge origin/release-prod-liveintoorigin/devconflicts in exactly two files:scripts/verify.d/rust.sh: the static size caps. dev has 21,389,232 / 19,561,656; 9.4 has 21,389,424 / 19,562,296.docs/PROCESS.md: the size-ceiling table and its text.Resolution: build the merged tree with the pinned static recipe (
scripts/static-cargo/ auth-toolchain Zig, as in the 9.3/9.4 release prompts), then set both caps to the measured bytes. Keep both PROCESS.md paragraphs and add one for the merge. Runscripts/verify fastwithCARGO_TARGET_DIRset. The original job spec is in the bundle atjobs/merge-release94-dev/prompt.md(Luna max).Resume the stopped jobs (they stopped mid-task when Codex sign-in expired on 2026-10-22). Use
orchestrator/resume-job.sh <job> <model> <effort> <wip-sha>. Its continuation text says "host resize"; edit it to say "Codex sign-in expired / host move". Each job's WIP commit must bereset --soft HEAD~1-ed, then split into atomic commits.setup-token-data-wip21cb39947(base dev)sudo infraternal server setup-token --data /var/lib/infraternalfor a system service. The finalscripts/verify iterate/static size step was not finishedrevocation-per-account57185fd9b(+6,304 B)review-revocation-per-accountf52fd309b): R1, a logout waiter cancelled after commit loses the notification; R2, bootstrap keeps its socket when the notification source is lost. Round 2 had just startedsync-p3s3b94b1f28(+0 B, gate PASS)sync-journal-r3573dc412eedge-autoupdate-resume-wipd4a1bf6ea(local branchedge-autoupdate-r2; remoteedge-autoupdate-r2643a5af84is older)review-edge-autoupdate-d295b1555e44f(171 lines of recovery tests, WIP)d241-shell-marker-wipe6b0c5a16(remoted241-shell-markere3a06ba42is older)broad-suite-triaged69ce64edreview-mesh-drag-r3 is not needed (a Sonnet review covered it; the drag fix is in prod).
3. Follow-ups found in the last rounds (no job yet):
apps/tracer/src/canvas/mesh/api.ts, pruning only drops hosts that disappear while the page is open.scripts/release/build-metadata.test.ts:162fails depending on the checkout path (it passes in the dev worktree). Backend fix.infraternal statussays Running (found by the launch-QA dry run, #247).review-readd-r8-wip287065c2f; round-9 plan on #231. Nothing from #231 is in prod.orchestrator/parked/):53-app-windows-second-capture(#146, baseapp-windows-second-stream, needs the MacBook),90-research-wasm-core(#177, baseresearch-wasm-core).queue.mdhas the long-tail queue, andresume.mdhas the per-day notes. Both are in the bundle.4. Tooling outside git (bundle on the old host)
Bundle (not attached here, because this repo and its issues are public):
~/infraternal-orchestrator-handover-2026-10-28.tar.gzon the old host infraternal-dev (mode 600; 476 KB; sha256c37d785b76f08ea717a0…). Copy it to the new machine by hand and keep it private. It holds the orchestrator memory and job prompts, including the Mac's test-keychain password. It was scanned for tokens and private keys and holds none. It contains:orchestrator/~/.local/state/codex-jobs/infraternal/orchestrator/scheduler.sh(slot scheduler;ready/NN-name/{meta,prompt.md},meta=MODEL= EFFORT= BASE= WEIGHT= ISSUE=),rules.md(preamble put at the top of every job prompt),run-job-retry.sh,resume-job.sh,build-slot(serialises heavy builds),disk-guard.sh(scheduler needs ≥ 80 GB free),branch-sweep.sh(nightly: deletes branches merged into dev),scratch-sweep.sh,issue-attach(uploads evidence to an issue; the token is read from fj's key store),git-ssh(no ControlMaster; key~/.ssh/git.kayg.org),pause,fast-mode,priority-jobs,queue.md,resume.md,parked/,held/,launched/(every past job's meta + prompt),deleted-branches.log(SHA of every deleted branch)jobs/<job>/~/.local/state/codex-jobs/infraternal/<job>/preview/~/.local/share/infraternal-preview/deploy-prod.sh(the only deploy path: refuses a SHA that doesn't containrelease-prod-live, backs up the DB, rolls back automatically if the server doesn't come back healthy),publish.sh,serve.ts,preview-forward.ts,perf-watch.pysystemd-user/~/.config/systemd/user/infraternal-{disk-guard,scratch-sweep,branch-sweep}; owner previewsserve-demo(47361),serve-recovery(47381),serve-clusters(47401),status-preview(47391);infraternal-agent.service(this host as an infraternal host)claude/memory/~/.claude/projects/<repo-path>/memory/MEMORY.mdrepo-untracked/.cargo/rust-lld<repo>/.cargo/rust-lldclaude/agents/,claude/skill-codex-subagents/~/.claude/agents/,~/.claude/skills/codex-subagents/designer/designer-highsubagent definitions; the Codex job launcher skill (names, systemd units, model table)Secrets to bring by hand (not in the bundle; exact paths and a copy command are in §0):
~/.ssh/git.kayg.org(Forgejo push key);~/.local/share/forgejo-cli/keys.json;~/.config/openai{1,2}(or a freshcodex login);Rebuild checklist for the new machine:
bun,fj,firecrawlat~/.npm-global/bin/firecrawl, Codex at~/.npm-global/bin/codex; the skill calls the vendored musl ELF by absolute path).loginctl enable-linger.ssh://git@10.69.69.52:2222/kayg/infraternal.git. Worktrees go in<repo>/.worktrees/<name>.serve-*worktrees at their pinned SHAs:serve-demod9564c89a,serve-recoverye52ef1388,serve-clusters30faecc14(each gets a one-line, never-committedapps/tracer/test/mock-server.tstweak, applied bypreview/preview-auth.patch.sh <worktree>; alsoproto-status145bf0e93). Runbun install --frozen-lockfileinapps/tracer.10.69.69.125(the old host's NetBird IP). Change them to the new host's IP and tell the owner the new preview links.orchestrator/rules.mdfor the new host. It still says "infraternal-dev is the machine you are running on", lets dev servers bind to10.69.69.125, and says to benchmark locally on infraternal-dev. Change these to the new host's name and IP. Perf numbers still come from the perf VM (10.69.69.208), which the orchestrator books./home/kayg/…(deploy-prod.sh uses/home/kayg/Developer/infraternaland/tmp/claude-1001). Keep the same user and paths, or update them.orchestrator/pauseonly after the Codex check in §1.5. Infrastructure map
infraternal-dev, NetBird 10.69.69.125, LAN 10.70.3.157, 12 vCPU / 62 GB, Debian 13,/dev/sda1492 GB SSD (117 GB used after cleanup). It also runs an infraternal agent (infraternal-agent.service) and the owner previews.root@10.69.69.50, public37.157.255.66. Traefik in Docker (kayg-traefik); route/opt/infra/traefik/dynamic/infraternal.yml→http://172.18.0.1:7011. Server unitinfraternal-server(--behind-proxy --trusted-proxy 172.18.0.0/16 --remote-listen 10.69.69.50:7443). Backups in/var/backups/infraternal/. healthzhttp://172.18.0.1:7011/healthz.10.69.69.52:2222). Usefj --host https://git.kayg.org;issue create --repo kayg/infraternal --body-file f "<title>";issue view kayg/infraternal#N [comments];issue search --repo kayg/infraternal --state open. Known: large pushes printForgejo: Internal Server Errorfrom a hook, but the refs land; verify withgit ls-remote.root@10.69.69.208. MacBook:kayg@10.69.69.101. Test hosts: minipc01 / ash1 / ash2, reached via monitor01.infraternal.kayg.orgA → 37.157.255.66 (the owner changed it on 2026-10-22). Traefik uses DNS-01 via Cloudflare; the certificate is valid until 2027-01-02.6. Cleanup done today (2026-10-28)
4660395e3, mesh-relay1e490da43, process-per-userd98143b1a, readd-minimal-r5179b84b0e, review-edge-autoupdate-d295b1555e44f, review-mesh-apicd5e068db, shim-relocsb9251c278;704f8c493, review-mesh-drag-r3b8ab0177ab, review-remote-agentsdedd9b91f, ui-gap-fixes9de070726.dev,main,release-prod-liveor a kept branch is now a lightweight tagarchive/2026-10-28/<branch>(290 tags;-remotesuffix where the remote tip differed from the local one). Each was verified on Forgejo against the local commit ID. Then:serve-*previews andproto-status;git push origin archive/2026-10-28/<name>:refs/heads/<name>. Every deleted SHA is also listed inorchestrator/deleted-branches.log..worktrees/infraternal/(52 KB of old spike files, not a worktree) and.worktrees/release-pipeline/target/root-proof(root-owned leftover; needssudo rm).prod-perf-fixworktree (evidence/perf-vm-browser/*,.job-state/) were deleted along with that worktree. Whatever had been attached to its issue then is still there; the rest is gone.7. Gotchas that cost time
private: false). Anyone can read it, its issues and every evidence attachment, without signing in. Never put credentials, private keys, test passwords or personal data in an issue, a comment or an attachment. The owner may want to review this (see #218 for the mirror audit). A full-history secrets scan on 2026-10-29 (gitleaks over every ref and tag, plus a regex pass) found no live secret; only false positives, test keys and local test-server cookies. Details are on #218. Issue bodies, comments and attachments were not scanned.$S:refs/...is read as a zsh modifier, so write"${S}:refs/...".for x in $VARdoes not word-split; use an array or${=VAR}.scripts/verify fastneedsCARGO_TARGET_DIRset; without it, the release-plugin tests fail. Run heavy gates throughorchestrator/build-slot.apps/tracer, runbun install --frozen-lockfile && bun run check && bun test … && bun run build && bun run transfer-budget.ts. Critical-JS Brotli cap is 256,000 B (prod is at 255,839).deploy-prod.sh <sha> [--bin x86] [--bundle dir] [--web dist]. Never pass--armtogether with--bundle. Verify withsystemctl show -p MainPID infraternal-server+sha256sum /proc/$pid/exe+ healthz, then force-pushrelease-prod-liveto the deployed SHA and comment on #24.codex-filter-vt-jobs.md.Appendix A. Issues closed on 2026-10-28
Issues closed on 2026-10-28 (90; each has a closing comment with its evidence). Done items were checked by
git merge-base --is-ancestoragainst dev/prod, or a recorded decision or superseding issue was cited. Borderline cases were left open: #79 (Q18 open), #169 (260 comments, findings may live elsewhere), #207 (its triage job is paused), #230 and #244 (owner retest pending).#10 #11 #12 #13 #15 #16 #17 #19 #20 #21 #22 #23 #25 #26 #27 #28 #29 #30 #31 #32 #33 #34 #36 #39 #40 #51 #55 #57 #75 #81 #84 #85 #90 #91 #113 #114 #115 #116 #119 #122 #123 #124 #125 #126 #127 #128 #138 #139 #144 #149 #151 #152 #155 #161 #162 #163 #164 #165 #166 #167 #168 #171 #173 #174 #181 #182 #185 #188 #189 #190 #191 #193 #195 #196 #198 #199 #201 #210 #214 #219 #228 #229 #234 #236 #241 #245 #246 #248 #249 #253
Reason per issue
d731975which is in dev and prod; wire.md updated for D63 and implemented by the merged lanes.39630d6(in dev and prod) after orchestrator split into atomic commits; gate PASS in the issue.fd9a498.845c293in dev and prod).7174d6b(verified ancestor of dev); P1 split-header finding fixed and fuzz clean.7ae0b83(verified in dev); review findings answered, gate PASS.7668d0c(verified in dev) after rework and second review verdict MERGE; D86 approved crypto.acf83c7are in dev and prod); audit findings fixed under #28/#29.6c64ede,48d7babin dev and prod); review R3 fixed (e72589e), integrated via #34.58040df,faa3154,ff505cbin dev and prod); audit F1 fixed in #29 round.a5250c3(#22,#26,#34) in dev and prod; remaining resize-refusal limitation tracked on #37.137a569,cdc7c59in dev); owner answers recorded as D104-107, follow-up spike is #35.234baf0(in dev and prod); nightly 19,864 replays, 0 divergences; second review was #26.565105fis in dev and prod.48d7bab(in dev and prod); zero idle wakeups measured, gate PASS.7551ff6,acf83c7in dev and prod); the beyond-120s writer gap is a documented owner choice.7551ff6,faa3154in dev and prod); A3 answered as D108 and regressions added.faa3154in dev and prod) and independently verified by review-auth3.845c293.56bb6f51d(in dev) with D98 updated ind2ce17a; tests and screenshots posted.0c47cd42e(#33, #36) which is in dev and prod; production screenshots and gate posted.acf83c7in dev and prod; prod now runs release 9.4 line); later comments are layout-table notes.845c293(in dev and prod), accepted by orchestrator, D109.7d17212(in dev), regression snapshot-resume.spec.ts passes.6016ff7a0(in dev); owner answered the two design questions as D111 and D112.b5e677956, deployed to monitor01 and verified socket absent after start with an owner present;b5e677956is in dev and prod.ac03b1913(verified in dev and prod): 300 ms RTT default profile and input-to-photon gate; remaining budget misses were split into #52 #61 #62 #63 #73 #74.4b2cd2ad4,e273fd309in dev); mold measured as no gain and deliberately not merged, sccache set up.9e09924, then7eca507after the cursor regression was fixed bybd12725fe); all verified in dev and prod and checked on the production build.a24ee0bd6in dev).7eca507) and the letter-spacing hotfixbd12725fedeployed; both verified in dev and prod with cursor position checks at DPR 1/2.e3e00eaeain dev) and deployed to prod in5ed4f29(ancestor of release-prod-live), owner-visible deploy comment, no open findings.ac10a5e22,4c5c08a16,459f10a19); fonts and Maple Mono weight present in dev tree.c8708d9b2,f27bafdc8,49bbe5bf2).664e45e88in dev, deployed in1c3ae5f(ancestor of release-prod-live).1c3ae5f(in release-prod-live).b0c9a4c, gate exit 0), droplet code present in dev (apps/tracer/src/canvas/create.ts), D190 recorded.d010d7ceb,930675defunder #116).63b1f10e(in release-prod-live and dev), 27/27 real-server specs, D191.80c276796,8a3d5b045) merged and deployed in63b1f10e(in release-prod-live).488cded1; equivalent167b06c32in dev, Mesh-only arrows, D194) with spec.b9d05364, D193); full screen code and shortcuts present in dev.63b1f10e(in release-prod-live).7d6df4470,90c3d9328"popover is in the product canvas", head42e50d42is ancestor of origin/dev); finish comment has gate output, no open findings.9a770037is in dev and was deployed to prod 2026-10-09 (web build of01a6d848, also in dev and prod-live) with measured before/after table.c8624b58) and owner decisions recorded as D203 (images pipeline, limits, HEIC/AVIF placeholder until trusted decoder, sandboxed helper).57346fc3) and owner decision recorded as D204 (macOS capture bindings and encoder).5cf106deancestor of both); extended info explicitly out of this slice; final review and gate were clean.6320f5b52/5d02b8d6bancestor of release-prod-live and dev); delta review found no gap.707a4572(6320f5b52andb67d03455in dev; release-prod-live contains it), listed in the deploy merge message.e6969edc) is in dev and prod-live.051d0a40in dev and prod) and deployed in release-prod-43aec316ewith before/after evidence (0 stray PTY bytes across five cycles).8d0fc8bamerged into dev as50a89572(ancestor of origin/dev), checks recorded.c512cc07is in dev and prod-live, lock-icons (withLockBadge) in dev; glyph question resolved by the owner's lock-badge rule.89145f81deployed web-only to production and is in dev and prod-live, gate and specs recorded.15d15c25deployed web-only to production and is in dev and prod-live, captures verified.2202eaf9) and owner decisions recorded as D248.3aec316e(in dev and prod-live) after review rounds 2-3; last comment is the deploy record.d8fb45c8,d472ee3a) is in dev and release-prod-live; deployed web-only in4855e033.c75c362bafter a clean break-it review (P0-P3 none);c75c362bverified in dev and prod.cc3297508(fix-restart-tests, #174) in dev; gate-flakes confirmed 50/50 loaded passes.d6642c21) are in dev and release-prod-live; deployed in4855e033and3aec316e.4855e033, which is in dev and release-prod-live.361fc7ff) is in dev and release-prod-live; deployed as4d1b1950.21b37bca7is in dev and release-prod-live) and used for the production releases.53ef70af6) is in dev and prod; deployed to production as3048580c1and release 2 (103815e70).53ef70af6), which is in dev and prod.52f644776,bdf68a6c) and deployed; merged-tree tests green.ade40a36and pushed to dev.9e84426c4(in dev and prod); the size caps are green again.fa904fdaa) and deployed (036bc2bb0); both are in dev and release-prod-live.3b2183eaa, which is in dev and prod.804ac0e85) in dev: deferred brotli 44,807 to 42,272 of 45,056.f210a4f25(ancestor of origin/dev and release-prod-live), deployed web-only and owner-approved; underline/CJK follow-ups tracked in #232.5abc64bb8); its findings drive the relay work in #220.1bcb7a87b(ancestor of dev and release-prod-live); final gate passed.3b2183eaa(ancestor of dev and prod), deployed 2026-10-17, review verdict MERGE.103815e70(ancestor of dev and prod, release 2) with measurements.c00c6364e) and release 7 (173a9ba14), both ancestors of dev and prod.cef7224ee(in dev and prod) and deployed web-only 2026-10-17.857823ce4(ancestor of dev and prod); production journal showed zero stream closes after deploy.702e671a0,709efb451ancestor of dev) with passing final gate.c8aa36727in dev) and deployed in release 8 (85b0285b7, ancestor of dev and prod).d37691790) and deployed in release 9 (bec4eb7dd, ancestor of dev and prod).Appendix B. Open issues on 2026-10-28
One-line state per open issue (2026-10-28 triage, read-only, from each issue's latest comments). Use this to pick work; the issue itself is the record.
All open issues
56bb6f51d); product UI identity not finished.d57516aec) but owner questions from SPIKE-B/C (session count, scaling, JPEG vs H.264, shared encoder) remain unanswered.a82523cnot in dev.967d278) is not in dev; merge plan pending a D130 check of the coalescing commits, so findings are not shown shipped.a20ae2989, in dev and prod) but owner retest with the real 1Password extension is still pending and the welcome-UI provider lane was handed off.760490ce4is in dev and prod; the last comment asks the owner to confirm on a real iPhone.5ed4f295c) but the recovery sign-in UI is held behind a preview opt-in (1c12295c6); production UI not shipped.e19c4eb); default-on and felt-latency measurement on the India-Germany path not confirmed.444b839e4) but the issue says real iPhone check remains owner-side and no confirmation is recorded.5ed4f295c) but motion-audit is still observed failing in later runs (#74), so flakiness is not resolved.fca6e093d) but the 5 RTT + 150 ms target is not shown met; #52 latest runs still p50 ~3.96 s at 300 ms RTT.9c62448a3) but the issue states it stays open; slice 2 wiring and real packet filtering still to come.6dd7ea2in dev and prod) but the deferred-chunk limit raise to 58 KiB awaits owner approval.db8c5270) but comments still carry open items: binary size over frozen budget and D198 lifecycle work in progress.1c3ae5f) but the audit of every remaining message is not confirmed complete.459070fe) but independent verification review is still running.7d70353f) states acceptance blocked by static size, native same-session budget and a failing browser fixture; no green merge claimed.47f2b31b/30487a0c) but the issue says a binary-size cut under D205 is a pending follow-up and D202 requires every component (relay, ssh, backup, ...) to use it.61482a0c, not in dev), recommendation made but no decision recorded; D206 still lists device keys as pending PRF research.5bf3f42e) but delta review HOLD with UP-01..03 (P1) deliberately deferred to release pipeline round 4.261e4499) fails the static size gate and round 4 / UP-01..03 follow-ups are pending; not confirmed closed out.1c08c4b7) but the delta review left a P2 (logs-body download has no retry) promised as a later fix-forward.3aec316e, but a later delta review (b429e566, review-query-replies-r2) ended with verdict HOLD and a P1 with no resolution recorded.00299ee9f) is not in dev; D297 fit-review owner questions and D243 size overage were still pending.b3e2b5b7f) is not in dev; review findings A-F (agent uninstall panic, UI fallback note, window identity, stale cells) and RLR-13 P1 remain.9e84426c4), but the S2 one-crypto-library decision (D257) and further cuts are not shown as done.28bbc0b6f) is not in dev; reconnect budgets D265 and the resume-token continuation were still pending.e8b98754) is not in dev and scripts/perf-vm is absent; the VM browser timing harness is not delivered.2c5f0849b) is not in dev; the RSS attribution and reduction are unfinished.85368c7fdis in dev and prod, but the "+" host picker (ui-new-window-host79006368) is not in dev.7ee79fb6d) but stays off by default until the D270 soak gates and the owner's go.643a5af84, UI/proofs/final gates pending, last comments are build-slot waits).492e1505adeployed to prod, but the stuck old agent field case moved to frozen #231 and no verified reconnect recorded.5b2a1b9eein prod) but the flicker fix on pill-flicker (9e01a0331) is not in dev/prod and server-side close trigger is unisolated.f627a2e09) but two queued follow-ups (CJK URL detection, clipped last column) remain.47619c27dis not in dev or prod; add-host work frozen.a906ede87) but a new launch-qa finding (status says Running in a crash loop) is unresolved.b30bb81cf, in prod but not yet in dev) after review rounds; merge-back to dev and closing evidence pending.f63884f58is not in dev or prod.573dc412ehas open P2 and is not in dev or prod.159f43797in dev); build work tracked in #80/#81.5bf3f42ein dev and release-prod-live); NetBird-SSH-only case continued and fixed in #195; speed work moved to #189/#190.21c31f906, verified in the log) and the diff was reviewed by the orchestrator.173a9ba14(ancestor of dev and prod, release 7) with staging proof; only the owner's retest remains.8f8c84e37, ancestor of dev and prod) with owner test steps listed.Superseded by the handover of 2026-10-30: #262 (all work paused and pushed, mesh-first roadmap, Claude-only rule, open decisions).
J256 housekeeping, authorized by kayg. Closing as superseded: Its final comment explicitly supersedes this operational handover with #262; no separate implementation work remains in this historical handover record.
Canonical handover: #262 (left open). Evidence: the final handover comment dated 2026-10-30 explicitly redirects all work and open decisions there. Merge commit: not applicable; this is an operational handover record, not a code implementation. Re-fetched the issue and all comments; no changed activity or activity within 12 hours. Audit: #369.