Add-host ridiculously fast #190
Closed
opened 2026-10-12 14:04:59 +00:00 by kayg
·
34 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#190
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?
Parent: #169.
Make Check → Done under 1.5 s on LAN and under 4 s at 150 ms RTT. Measure before/after per setup step, p50/p95 over ten fresh targets on the pinned perf VM, 75 ms netem each direction, release static payload/controller. Preserve rounds 1–3 and start-fresh safety, verified-payload reuse, ownership journal/rollback, classified failures and terminal proof. Profile authentication, hashing, transfer and command orchestration; make measured atomic changes, run existing Rust/browser/review tests, push each commit. No deployment.
Approved worktree/branch: addhost-fast; supplied base
b14a714600(production plus latest start-fresh), as explicitly specified rather than rebasing this job onto origin/dev.Started addhost-fast at base
b14a714600(supplied production/start-fresh base). Parent #169 history includes the round-3 safety repairs and SF-1 symlink-ancestor repair; preserve all of them. Perf VM NetBird access works. Existing round-3 evidence is diagnostic (debug controller), so establish a fresh release baseline before speedup claims. Prior report: local completion 2010–2566 ms (median 2355.5), 150 ms RTT 8915–10022 ms (median 9984.0), 10/5 samples respectively. New acceptance needs 10/10 each, per-step p50/p95, release controller and static payload. No owner fixture access or deployment.Perf VM lock is busy (flock -n reports LOCK_BUSY); baseline static payload/controller builds are running locally, with no build-host performance measurement. Source findings: install.rs:120 hashes the complete payload per add; enroll_and_start uses three remote commands plus a separate linger command; bootstrap.rs performs terminal proof before commit. Commit removes previous artifacts, so moving it ahead of terminal proof would weaken rollback and is rejected. ServerAuthentication::network() always returns None even for manual NetBird hosts; None is an unknown provider, not evidence that network login will fail. Preserve network-only manual hosts while removing avoidable refusal connections. Existing round-3 measurements remain diagnostic until fresh release measurements are available.
Source finding: bootstrap.rs:544 sends previous_attempt::check_script(mode), or CHECK_SCRIPT plus INFRATERNAL_SETUP_CLEAR for owned retry cleanup. auth_order.rs:214 admits only script == CHECK_SCRIPT and refuses both before any SSH open. The supplied base therefore cannot perform its new ownership check through AutoAuth. Added ownership_checks_authenticate_once_without_replaying_a_different_check to exercise both modes and owned retry against the actual adapter; red build running. Repair will admit only exact generated fixed read-only scripts and run the requested check during authentication, preserving refusal classification and never replaying arbitrary commands. Supplied-base end-to-end refusal and repaired functional baseline will be reported separately; no invented before latency.
Untouched static baseline build emitted unused import super::* at readiness_exit_tests.rs:2, because daemon.rs:1139 omitted #[cfg(test)] on the test module. Strict -D warnings gates reject that build. Added the missing guard only; the queued private-output regression stays enabled under cfg(test). Separate touched-agent fmt/clippy/regression gates precede its commit. No runtime feature or admission change.
The unchanged queued-private-output test also failed at readiness_exit_tests.rs:87. Current daemon.rs:908 emits terminal.replay_complete for the fixture's empty initial replay after InputAck; the imported test still expected live Output as its next message. Updated the fixture to assert that exact replay fence (same stream, session UUID and out_seq=0) before the existing credit/Output/Exited assertions. It now passes. No daemon relay behavior, credit deadline or test timeout changed; strict touched-agent clippy is rerunning before a separate integration-test repair commit. This is not a host-load waiver.
Completed and pushed
0d7cbaac: exact generated ownership checks authenticate once; arbitrary appended code is refused. Red ownership-auth-red.log: 0/1; green authentication 7/7, complete SSH suite 114 passed/8 ignored (ownership-auth-suite-green.log), fmt and strict all-target SSH clippy pass. This repairs the supplied base; it is not a speedup claim.Completed
f28492ad: test-only readiness module and exact initial replay-fence assertion. Prior fixture 0/1; repaired queued-private-output regression 1/1; fmt and strict all-target remote-agent clippy pass. No relay behavior or deadlines changed. Original static payload was frozen before these source repairs (supplied-payload-sha256.txt); release controller compilation continues for the functional before baseline. New cache source is prepared but not wired into production or this baseline.Correction: the complete SSH suite totals 104 passed and 8 ignored, not 114 passed. Authentication 7/7 and queued-private-output 1/1 remain correct; no gate failure. Source heads unchanged.
Authentication optimization proposal under the approved brief: trusted known network providers retain network-first lazy authentication. For manual/unknown-provider hosts, try the first available local method directly; OpenSSH already performs its protocol none exchange within that connection, avoiding a separate expected refusal. If no local method works, preserve a network-only fallback so manual NetBird hosts with no configured key remain supported. Stop immediately on every non-authentication refusal as before. Preserve actual network-method reporting from bounded local OpenSSH authentication diagnostics; never infer a provider from a banner/address. No new SSH engine or credential store. Measure this after the functional release baseline, including real network-only metadata and no-key fallback coverage.
Before baseline after prerequisite ownership-auth repair: real OpenSSH, release static controller, frozen supplied-base static host payload, ten fresh Debian/systemd targets per profile; 75 ms netem each direction for 150 ms RTT. Both profiles 10/10 Done, RUN_EXIT=0. p95 uses nearest rank (maximum of ten). Exact artifact hashes: evidence/addhost-fast/baseline-artifacts-sha256.txt; raw logs: evidence/addhost-fast/baseline/. Supplied base AutoAuth refuses ownership scripts (red regression); this functional baseline includes
0d7cbaac.RTT 0 ms, n=10; p95 uses nearest rank (maximum of ten).
RTT 150 ms, n=10; p95 uses nearest rank (maximum of ten).
Completed
4fa85f00(pushed): two-entry opened-file hash cache, concurrent misses serialized, no worker/timer, target SHA256 verification retained. Four new functional regressions pass; complete SSH suite 108 passed/9 ignored; fmt and strict all-target SSH clippy pass.Locked perf VM scale (4 cores, load 5.87/4.07/2.08): 10 misses p50/p95 137.571/170.799 ms; 1,600 cache hits 0.055/0.175 ms. One digest allocation is shared; entry 72 bytes, vector capacity 4 and maximum 2 entries, at most 128 digest bytes per server regardless of 1,600 hosts; temporary hash buffer is 64 KiB for one serialized miss. Raw: evidence/addhost-fast/hash-cache-scale.log. This is hash-path evidence, not 1,600 installed daemons.
Cold-controller diagnostic replay: LAN 10/10, p50/p95 1208.5/1420 ms; 150 ms RTT 10/10, 9445/9505 ms. Each sample launches a controller, so each hashes cold; no workflow speedup is attributed to cache. The initial and cache end-to-end tables are diagnostics pending fixture correction: bootstrap_breakit2_tests.rs used default OpenSSL socket admission, whereas runtime.rs uses server_tls::acceptor with TCP_NODELAY. Reuse the production acceptor and rerun acceptance. Regression against the actual fixture acceptor is compiling.
Prerequisite socket admission
c3acd7c3is pushed; regression fails with fixture TCP_NODELAY=false before repair and both real TLS socket assertions pass after reusing server_tls::acceptor. Remote all-target server clippy/fmt pass. Production-matched baseline is queued behind the shared VM lock.Socket feature
63a7dd4a, helpera120f87f, CLI adaptercb414a4band SSH adapter41818e6f are pushed.a120f87fsupersedes28ffdd91 solely to stage the already-checked module ordering correctly; lease-protected branch update preserved the same helper. Real descriptor tests3/3; CLI38/38; strict touched-crate clippy/fmt pass. VM exploratory n=3 at150ms RTT: none refusal960.975–976.891ms and key login1152.773–1157.028ms versus earlier diagnostic medians1280.179/1464.969. No ten-sample acceptance claim yet.Receipt recognizer
dcde84f6and adapterea244e64preserve actual Network metadata without retained raw diagnostics/provider inference. Boundary/malformed/banner tests pass; existing SSH fuzz target compiles and10,000 non-instrumented smoke inputs complete (not coverage or performance evidence). Direct manual-method ordering is committed after its two additional tests and all prior authentication tests; local methods stop on every non-auth refusal, credentialless/manual network fallback remains. Bootstrap42/0 with3 ignored. Release payload/controller builds are running; no build-host performance values accepted.Step
f13100aapushed: unchanged journaled setup scripts extracted into a shared private builder; strict SSH clippy/fmt and the complete SSH suite pass. Direct-login release pair at1bc5cdc2completed ten fresh targets per profile on the locked perf VM. LAN target passes; RTT target remains unmet. The corrected-production baseline window had large load outliers, so these windows are not a controlled speedup ratio. Full logs: evidence/addhost-fast/{production-baseline,direct-login}/rtt-*.log; each records machine/load.RTT 0 ms, n=10; p95 uses nearest rank (maximum of ten).
RTT 150 ms, n=10; p95 uses nearest rank (maximum of ten).
Pushed
e2efb5c5: opened-file-identity cache for public zstd/gzip encodings (four entries, each bounded to64MiB, shared across all attempts); startup prepares hashes and encodings; target negotiation retains raw fallback and existing verified retry reuse. Decompressed SHA256 is checked before publication/execution. Real-shell corrupt stream test1/1, complete SSH suite (49 installation tests including the additional regression), strict touched-crate clippy/fmt, bootstrap42/0 with3 ignored. No HTTPS fetch engine or unverified execution path added. Release controller build for the next locked-VM comparison is in progress; timing/startup cache costs not yet accepted.Pushed
7ca68d54: join/install/start/linger now run in one SSH command using unchanged builders and fresh child shells (errexit remains active). Exact bounded ordered STEP/FAIL/DONE receipts preserve classified step and nonzero status; original Join71 remains Join. Legacy adapters retain separate commands. Complete SSH suite passes (52 installation tests), additional actual-shell activation71/start1 refusal tests3/3 with foreign launcher retained, strict touched-crate clippy/fmt, bootstrap42/0 with3 ignored, and decoder fuzz compilation pass. Remote interrupted receipt parser accepts only exact fixed prefixes. No rollback or previous-artifact deletion was moved earlier.Pushed07481a86: commit channel/journal admission begins concurrently with facts then terminal proof. Only a one-use release after matching execution identity, exact terminal marker and authenticated status-zero exit permits empty stdin newline; ownership is rechecked before lease retirement/artifact deletion. Failed proof/cancellation retains rollback data. Real-shell test observes the actual blocked read before checking retained journal, then covers approval and channel cancellation; complete SSH suite, strict touched-crate clippy/fmt and bootstrap42/0 with3 ignored pass. Compression20-run VM comparison queued; separate compound-setup controller build in progress to avoid attributing both changes to one timing result. Functional browser suite uses unique TRACER_TEST_PORT4480. No final acceptance/gate claim yet.
Functional production-build browser run passed32 specs with4 intentionally skipped captures, including every addhost-wizard and Start fresh case. TRACER_TEST_PORT=4480; INFRATERNAL_TEST_RTT=0. Logs: evidence/addhost-fast/browser-functional2.log. Generated desktop/phone Start fresh screenshots and failure-details capture preserved under evidence/addhost-fast/captures/ for independent visual review; author does not judge visual quality. The first run lacked installed worktree dependencies; frozen-lockfile bun install repaired setup, without dependency changes. No browser latency/performance acceptance is claimed from the build host.
VM measurements currently wait for the shared perf-bench.lock; evidence/addhost-fast/perf-lock-progress.log records13 flock holders/waiters. Compression and setup controller pairs are frozen/queued; commit-overlap release build and milestone verify are proceeding. No owner fixture, lock or other job process was changed. No external action needed while the queue progresses.
Completed locked-VM20-run comparisons with the same20355632-byte release static payload and separately frozen release controllers: compression
e2efb5c5; setup7ca68d54; commit overlap07481a86. Actual gzip input8987325 bytes; startup prepares hashes and encodings before Check (first delayed samples3010.386–3167.354ms, full startup values in rawlogs).LAN/150msRTT p50,p95 respectively: compression762/849 and6949.5/8584ms; compound setup680.5/913 and6177/6210ms; gated commit682.5/706 and6024/6051ms. LAN passes; RTT target remains unmet. Commit row is overlapped duration, not additive latency. Current RTT bottleneck: upload2084.561ms median; key1270ms; compound setup1077ms; facts356.839ms and readiness330.594ms. Full per-step tables below. Rawlogs/manifests: evidence/addhost-fast/{compression,setup,commit}*.
compression
RTT 0 ms, n=10; p95 uses nearest rank (maximum of ten).
RTT 150 ms, n=10; p95 uses nearest rank (maximum of ten).
setup
RTT 0 ms, n=10; p95 uses nearest rank (maximum of ten).
RTT 150 ms, n=10; p95 uses nearest rank (maximum of ten).
commit
RTT 0 ms, n=10; p95 uses nearest rank (maximum of ten).
RTT 150 ms, n=10; p95 uses nearest rank (maximum of ten).
Pinned HTTPS candidate (same8987325-byte gzip payload, existing production TLS admission, target decompressed SHA256 retained), n3 per LAN/150ms link and transport: SSH upload medians236.118/2082.420ms; HTTPS234.418/2353.089ms. Full sample logs evidence/addhost-fast/candidate-https/{ssh,https}-*.log. Every sampled qdisc reports dropped0. HTTPS is slower on the delayed link; do not choose it for production.
Next proposed additive implementation follows D198 build-time removability: make the existing server crate/component an optional CLI cargo feature, enabled by default. Measure a node build with existing host-facts/remote/SSH components and the same single infraternal executable/commands; default builds retain both D7 modes and all current behavior, node builds cannot create a server (D201). No new engine/library is selected. Move unchanged enrollment wire types into the existing remote plugin and re-export old server paths, retaining exact JSON/schema, pinning, uid/mode and CSR validation. Measure smaller release static payload before selecting it for artifact packaging. This is a build component split, not a second daemon or a new protocol. Ownership/check gating still precedes transfer/execution.
Milestone scripts/verify fast failed: clippy caught the diagnostic raw-string hashes (fixed), CLI reload-replaced-inode test hit its6s child timeout (isolated exact test passes), then compilation failed with ENOSPC before static gates finished. Verbatim log evidence/addhost-fast/milestone-fast2.log. No baseline waiver or final green claim. Final gate must rerun on branch head with serial tests after source stabilizes.
The build filesystem reached99percent/9.3GiB available; this job had duplicate development caches. Automatic review rejected rm-f-style deletion. Cargo clean --profile dev against this job target removed14263files/10.7GiB; no other job or owner fixture was touched. Current filesystem has177GiB available. Remote-plugin strict clippy passed; all12 plugin tests pass after retry. Pushed20be6298 reuses the existing optional workspace UUID dependency for unchanged shared wire types (no new engine). Enrollment storage tests5/0 with1 ignored and strict touched-crate clippy pass for the proposed shared models; CLI enrollment checks in progress.
Pushed9516785a: unchanged enrollment models in existing remote plugin, old server imports re-exported. Storage5/0 (1ignored), CLI enrollment9/0 and strict touched-crate clippy pass. Pushed8998a79e: default-enabled removable server component; node build retains enrollment, secure provider init, host facts, SSH helpers and shims; no server creation. Default CLI38/0 (3ignored), node CLI12/0 plus daemon/retention/reconnect integration and strict both-profile clippy pass.
10e04169preserves the fallible registry signature in the empty feature set; strict empty-profile clippy and3 tests pass.Node release payload11045696bytes, gzip4754025bytes; ten fresh targets per LAN/150ms profile: p50/p95 565/717ms and5759/5929ms. LAN passes, RTT still fails. Full table/rawlogs evidence/addhost-fast/node-build*. Default full payload remains supported; packaging choice not deployed.
Send-buffer candidates n3 at150ms: default upload median1757.983ms; explicit256KiB3808.367ms; explicit1MiB3816.774ms. Both are worse; retain kernel autotuning. No socket buffer change selected. Logs evidence/addhost-fast/sendbuf/*.log.
Pushedb31ab977 reuses one prepared verified upload plan;255eed3b streams exact public frame then private invitation without combined secret buffers;519b50e4 merges verified upload and existing setup in one SSH channel with raw/compressed head framing, unchanged SHA/journal and exact failure steps. Actual-shell raw/compressed/Join71/receipt tests pass, complete SSH suite,43 bootstrap tests, strict SSH/server clippy/fmt and decoder fuzz compile pass. Frozen framed controller comparison queued on the locked VM.
27486ed3removes the separate remote cache query: upload/setup negotiates an exact bounded TRANSFER receipt in one channel, checks raw SHA before execution and sends no invitation on malformed receipts. Strict SSH/server clippy, 43 bootstrap tests, full serial SSH tests and fuzz compilation pass.fb4668e3scopes remote identity fixtures to the selected job root; nine tests pass.e6d42378proves the real node CLI refuses server creation; three integration tests pass.Locked perf VM, ten fresh targets per profile, unchanged 11,045,696-byte node payload: LAN Check→Done p50/p95 571/590 ms; 150 ms RTT 4969/4983 ms. LAN meets the brief; RTT does not. Per-step table: evidence/addhost-fast/negotiated-setup-table.md; all 20 successful raw logs: evidence/addhost-fast/negotiated-setup/. Combined upload/setup median 2427 ms, SSH login 1264 ms, check 420 ms, facts 357 ms, terminal proof 335 ms; commit overlaps facts/proof and cannot be added as an independent phase.
Owned socket profiling on the locked VM finds BBR bulk startup/ramp; no shared kernel setting was changed. Three fresh 150 ms targets each: default upload/setup median 2430.499 ms versus per-socket CUBIC candidate 2214.959 ms, Done medians 4987 and 4749 ms. Both miss four seconds; production keeps the existing congestion setting. Raw diagnostic logs: evidence/addhost-fast/congestion/. Earlier explicit send-buffer and pinned HTTPS candidates were slower and remain diagnostic fixtures, not shipping choices. No engine/library change was selected.
Full fast gate is running serially, with the unchanged RTT self-test forwarded to the locked VM by evidence/addhost-fast/rt-timing-gate-wrapper.py. Negotiated retry tests now exercise verified reuse and corrupt-cache re-upload after actual shell activation refusal; final gate and exact-head acceptance remain pending. Release packaging is being updated to keep a full default server plus both matching node component builds, so the smaller measured payload is reproducible in a release bundle.
05de24ebfixes the supported-login-shell quoting regression;f9976c7aretains the real-engine byte oracle. The old helper changes literal backslashes on fish and breaks nested setup (upload status127); the static oracle is red before and green after across four shells × four nesting depths. Evidence: shell-quote-before2.log / shell-quote-after.log. Strict SSH clippy and the full serial SSH suite pass, including all59 installer tests.4a9ded9cpackages the full default server separately from matching x86_64/ARM node component payloads; actual static bundle identity, checksums and incomplete-publication tests pass.Current source runtime (quote-safe), locked perf VM, ten fresh targets per link, 75ms each way for RTT, static payload11,045,696 bytes / gzip4,754,025 bytes:
LAN meets1500ms; RTT misses4000ms. Commit overlaps facts/proof and cannot be added as a serial row. All20 Done proofs are in evidence/addhost-fast/quote-safe/. All13 real-SSH shell/root/rollback/refusal/retry/cancellation cases execute one live test and pass; separate sudo-root/refusal cases are queued. An earlier wrong-feature controller's zero-test batch is excluded;
137231eenow refuses such binaries before target creation.86072856adds opt-in fixed-name target profiling without argv/stdin logging. Forty later matched samples give before p50/p95885/977ms LAN,9107/9134ms RTT; after599/628ms LAN,4969/4994ms RTT. Remote child before→after RTT medians: upload2465.586→1360.634, join630.951→492.509, install27.155→26.581, start107.444→103.013, linger9.819→9.767ms. Full table/raw logs: evidence/addhost-fast/remote-step-table.md and steps/. This is an instrumented profile, separate from acceptance.Milestone full gate: fmt, VT native fmt, strict workspace clippy, Rust tests and cargo-deny PASS; static builds FAIL only on size: x86_6420,474,992/max16,404,816; ARM18,240,032/max13,817,816 bytes. Supplied production x86_64 was20,329,584 bytes (already over cap); current milestone delta145,408 bytes. Caps remain unchanged. Both static linkage checks and x86_64 protected key-memory initialization pass; ARM runtime is not claimed. Separate TS gate passes175 tracer/UI and36 protocol tests, compilers/build/transfer budgets. Final-head full gate is queued behind the shared perf-VM lock for its unchanged RTT self-test.
The owner budget and definition-of-done remain unmet: RTT latency, existing static-size caps, whole-server concurrency/RSS evidence and a new coverage-enabled fuzz campaign. Standalone receipt fuzz compilation with the SSH server feature enabled passes strict clippy; unsupported remote-without-SSH dependency dead-code warnings are recorded separately. No foundational engine was selected, no shared kernel/host-key/live owner fixture change, and no deployment. Transfer has not been moved ahead of read-only check/CA admission.
The full gate found a new compound retry failure: negotiated_retry_reuses_only_a_verified_cache_after_activation_refusal returned Join/status73 (quote-fast-gate.log:578). A separate full workspace run passed, exposing a scheduler-dependent race rather than a permitted gate waiver. The forked lease can still inherit fd9's parent-directory flock when the next fresh setup shell starts.
The real delayed-child descriptor oracle fails before: successful_stage_releases_the_parent_lock_from_its_lease_child leaves fd9 inherited after stage returns (lease-parent-before.log). The fix publishes the existing PID/start-time recovery receipt first, bounds checks until fd9 is closed, and validates fd7 against the exact transaction before relinquishing its parent copy. It retains foreign-writer refusal, lease ownership, rollback and status73. All60 installer tests, strict SSH/server clippy, fmt and shell syntax pass (lease-parent-all-tests.log / lease-parent-clippy.log).
The final source includes this repair; its release controller is rebuilding for a separate ten-target VM comparison and final-head gate. Prior quote-safe acceptance remains 645ms LAN p95 /5002ms RTT p95 and is not relabeled as post-repair evidence. Both existing static-size caps remain failing and unchanged. The earlier claim that every test row passed in quote-fast-gate is superseded by this finding; the independent quote-rust-gates run did pass its test row.
Work result remains partial; issue stays open. Branch addhost-fast, head
26ccb33ab4, pushed; no deployment.Locked perf VM,10 fresh targets per link: Check→Done LAN p50/p95 575.5/602 ms;150 ms RTT 4959/4982 ms. LAN meets1500 ms; RTT misses4000 ms. All16 real-SSH shell/root/sudo/refusal/rollback/retry/cancellation cases pass, plus60 installer tests,43 bootstrap tests and32 functional browser specs (4 intentional capture skips). Separate TS gate:175 tracer/UI tests and36 protocol tests pass, along with compiler/build/transfer budgets. Evidence and full before/after step tables are under evidence/addhost-fast/README.md and compact-setup-table.md. Owner reviewer checklist applied; no visual-quality or new coverage-enabled fuzz claim.
Final scripts/verify fast on this branch head exits1 only for existing static-size caps. Both artifacts are static; protected x86_64 key-memory initialization passes. Caps remain unchanged. Supplied production x86_64 was already20,329,584 bytes; current20,475,248 bytes (delta145,664), cap16,404,816. ARM18,240,416, cap13,817,816; ARM key-memory runtime is not claimed. The RTT self-test runs unchanged on the locked VM through the documented Python wrapper. Static failure stops the script before TS; the separate TS gate log is committed.
Remaining: RTT budget, static-size acceptance, whole-server8-target concurrency/RSS evidence, and public transfer overlap ahead of check without weakening CA/ownership admission. No foundational engine selected; no owner live fixture/shared kernel/host-key change. All implementation steps and evidence are atomic commits on the branch. Final gate output, verbatim:
Independent verification started on review-addhost-fast at
26ccb33ab4. Merge base with local dev:93b00f5ab9; approved lane baseb14a714600. Read #190/#169 histories and report. No push/deploy/perf VM; timing claims will be audited from retained evidence only, as the review brief forbids VM access. Functional checks and failing-test evidence proceed locally.Verification step at target
26ccb33a: real ownership-shell suite 16/16 PASS (ownership.log); retained compact-setup report validates 10 successful samples per link, p95 LAN602ms/150msRTT4982ms (audited-table.txt), audited rather than independently measured. Target-head fmt/VTfmt/strict workspace Clippy PASS. Initial native gate stopped before tests because runner umask002 would create group-writable executable fixtures, a documented #169 environment failure; owned artifacts normalized and final replay will use umask022. Functional browser first run and source-binding comparison remain in progress; no assertion/deadline changes. No perf VM or owner fixture access.Confirmed R190-01 P2; failing test committed on review-addhost-fast at
21c4ef4b8b. Native SSH with unavailable configured BindAddress makes zero target contacts, while the production descriptor connector makes one. Test connector_preserves_configured_bind_address_refusal: 0passed/1failed; assertion native_contact=false, connector_contact=true. Locations openssh.rs159/socket_connector.rs44. The helper dials without retained source-binding configuration, losing routing/refusal semantics. No authentication or host-key bypass claimed. Implementation unchanged; no push. Evidence will be archived under evidence/review-addhost-fast/source-policy-red.log; findings.md appended in the assigned job state directory. Formatting/whitespace checks pass; final target-head gate remains pending.Resumed independent correctness review on review-addhost-fast at
21c4ef4b, target26ccb33a, merge base93b00f5a. R190-01 P2 retained; restored its accidentally absent tracked fixture from the prior interrupted workspace. Unconfirmed IP-trust prototype preserved outside the repository and excluded from findings. Continuing batch exit-status, transfer/cache, proof-gated commit, rootless prelude and lease descriptor checks. No perf VM or implementation changes.R190-02 P2 committed and pushed at
bb8e093d: review_compound_refusal_preserves_receipt_when_invitation_pipe_closes, 0 passed/1 failed. Real shell closes stdin before TRANSFER reuse, emits canonical FAIL join 71, exits zero; process.rs143 discards the fixed refusal on invitation write failure. Expected Join/status71; actual generic pipe failure. No implementation changes. Default fast gate attempts stop at RTT self-test under host load (load 30.14/29.27/28.50); default and zero-RTT outputs retained. Running the unchanged target-head Rust rows separately for functional evidence, without waiving or changing the self-test.Committed and pushed
cce39fd4: five additional real-shell robustness tests; focused install review cohort 6/6 PASS, ownership shell 16/16 PASS. Covers Join1/70/71/72/73/255, immutable rootless prelude re-admission, proof/commit transaction change, invalid negotiated compressed stream before enrollment/cache, exact lease descriptor binding. Source P2 reproduced again; fixed-receipt P2 reproduced again. Target-head native gate initially stopped because reviewer fixture root exceeded AF_UNIX sun_path (121 bytes), not daemon behavior. Replaying with short owned scratch root r190-review. Direct Rust-row helper also missed the dispatcher Zig PATH; pinned Zig fmt separately passes. Full fast self-test remains failed, no waiver.Evidence committed and pushed at
a4638b7ca1: evidence/review-addhost-fast/README.md, both red reproductions, focused install6/6, ownership16/16, strict SSH ClippyPASS, decoder10000-input smoke, prior browser4/4 and protocol36/36, exact failed fast self-tests. Supplementary target-head serial native suite is still executing its10000-node/30000-rule pagination case, no failure so far; x86 static20,475,312bytes exceeds unchanged cap, stripped/no interpreter, key memory passes. Aarch static build remains in progress. No performance acceptance or gate waiver; no implementation changes.Independent review finished; review-addhost-fast head
821815e55b, pushed and remote SHA verified; worktree clean. Target26ccb33a; approved lane baseb14a7146, dev merge base93b00f5a. Only tests/evidence changed; no implementation repair, deploy or perf-VM access. Owned checkout/build targets/test roots cleaned.P2 R190-01: unavailable configured BindAddress is refused by native SSH, but descriptor connector contacts target; connector_preserves_configured_bind_address_refusal, commit21c4ef4b, red0/1. P2 R190-02: closed negotiated invitation input discards canonical FAIL join71; review_compound_refusal_preserves_receipt_when_invitation_pipe_closes, commitbb8e093d, red0/1. Both reproduced again.
Focused install6/6 and ownership16/16 PASS; strict SSH Clippy and fmtPASS. Added correctness checks at
cce39fd4. Raw logs, screenshot, artifact hashes and limits: evidence/review-addhost-fast/README.md at final head. Full logs are explicitly committed despite *.log ignore.Default scripts/verify fast on target head, verbatim (wrapper exit marker):
Supplementary native serial run663 passed/1 failed/65 ignored, stops at server crate: unchanged session_gone.rs112 socket assertion failed, then all3 isolated replays passed; cause not established, no waiver. Initial reviewer path and missing Zig PATH failures are retained and corrected replays recorded. Fresh stripped/no-interpreter static bytes: x86_64=20475312, aarch64=18240416; both unchanged caps exceeded (D205 size alone does not block). Author RTT target remains unmet; performance numbers audited, not re-measured. Full gate remains red.
Verdict: merge under D206; both P2 tests fixed forward.
MERGE (no P0/P1): P0=0, P1=0, P2=2, P3=0.
Review of addhost-fast (
26ccb33a): MERGE, P0=0 P1=0 P2=2. Failing tests on origin/review-addhost-fast (821815e5), evidence/review-addhost-fast/README.md:The addhost-instant job (D255) builds on addhost-fast: cherry-pick both failing tests and fix forward there.
Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Duplicate of #189; the addhost-fast review said MERGE and its follow-up fixes went in through addhost-instant (
53ef70af6), which is in dev and prod. Reopen if anything is still missing.kayg referenced this issue2026-10-28 17:53:55 +00:00