Skip to content

fix: close preview and idle hibernate gaps - #83

Closed
CMGS wants to merge 1 commit into
codex/close-repo-reviewfrom
codex/pr81-close-loop
Closed

fix: close preview and idle hibernate gaps#83
CMGS wants to merge 1 commit into
codex/close-repo-reviewfrom
codex/pr81-close-loop

Conversation

@CMGS

@CMGS CMGS commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • route every preview request through live-claim authorization, activity stamping, wake serialization, and a fresh guest dial
  • reject idle-hibernate settings on egress pools, which cannot resume safely
  • align deploy docs and audit event naming with the implemented contract

Why

Guest connection pooling let a reused preview request skip PreviewDial. If idle hibernation had already entered its transition, that request could reach the stopped connection instead of waiting for wakeResolved; non-replayable requests could fail. The narrow fix removes guest-side keep-alive reuse instead of adding connection generations or more lifecycle state.

Egress pools accepted idle-hibernate configuration even though Hibernate intentionally rejects that lane, so the setting could never provide the documented behavior.

This PR is stacked on #81 and contains one commit.

Validation

  • make go-test
  • GOLANGCI_LINT_CACHE=/tmp/sandbox-pr81-golangci-cache make go-lint
  • GOOS=linux|darwin GOWORK=off asl ./... across all Go modules
  • macOS: make lint && make test
  • Linux Rust container: rustfmt, clippy with -D warnings, and tests for boot/init and silkd

@CMGS
CMGS force-pushed the codex/pr81-close-loop branch from 2bb1147 to 83c7687 Compare August 13, 2026 18:52
@CMGS
CMGS marked this pull request as ready for review August 13, 2026 19:02
@CMGS

CMGS commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Squash-merged into codex/close-repo-review as 4183bb3, together with the residual this PR's config gate could not reach: the node-wide idle sweep still selected unpooled egress claims (template/checkpoint claims on the egress lane), which hibernateLocked then refused every tick. idleOnce now skips the lane outright.

No test rides that last part: hibernateLocked returns ErrNoEgressHibernate before touching any state, so a mutation test confirmed no state-level assertion can tell the two behaviours apart — the only symptom was a logged error per sweep. The invariant itself stays covered by TestEgressLaneDoesNotHibernate.

Reviewed and agreed on the preview reasoning: the pooled path bypassed Transition, which is the only serialization point between a claim and its own hibernation. Closing in favour of the squashed commit.

@CMGS CMGS closed this Aug 13, 2026
@CMGS
CMGS deleted the codex/pr81-close-loop branch August 13, 2026 19:21
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.

1 participant