Skip to content

fix(stack): preserve lazy lifecycle in detached mode - #6046

Closed
jgoux wants to merge 7 commits into
lazy-stack/05-port-leasesfrom
lazy-stack/06-detached-parity
Closed

fix(stack): preserve lazy lifecycle in detached mode#6046
jgoux wants to merge 7 commits into
lazy-stack/05-port-leasesfrom
lazy-stack/06-detached-parity

Conversation

@jgoux

@jgoux jgoux commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Stack layer 6 of 7, based on #6045.

Makes daemon-backed stacks preserve foreground lazy lifecycle semantics:

  • tracks the real activated dependency closure and clears it across restarts
  • fails readiness checks immediately outside the running phase or for dormant lazy services
  • delegates remote readiness to dedicated daemon endpoints
  • preserves typed lifecycle errors across the HTTP boundary
  • validates and bounds the parent-child startup handshake

@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from e273d2d to 706b171 Compare August 4, 2026 07:43
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from f1e0c43 to 64bea19 Compare August 4, 2026 07:43
@jgoux
jgoux marked this pull request as ready for review August 4, 2026 07:51
@jgoux
jgoux requested a review from a team as a code owner August 4, 2026 07:51

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 64bea19f14

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
Comment thread packages/stack/src/layers.ts Outdated
Comment thread packages/stack/src/RemoteStack.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 706b171 to a6e0729 Compare August 4, 2026 08:05
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from 64bea19 to 89af0f2 Compare August 4, 2026 08:05
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from a6e0729 to fad354d Compare August 4, 2026 08:48
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from 89af0f2 to e2dd44f Compare August 4, 2026 08:48

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e2dd44f795

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/DaemonServer.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from fad354d to 4265a74 Compare August 4, 2026 09:32
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from e2dd44f to f130bfd Compare August 4, 2026 09:32

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f130bfd263

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/DaemonServer.ts Outdated
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
Comment thread packages/stack/src/RemoteStack.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 4265a74 to c2cdb81 Compare August 4, 2026 09:41
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch 2 times, most recently from ce21004 to fb58086 Compare August 4, 2026 10:20
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from c2cdb81 to ac00e70 Compare August 4, 2026 10:20

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb580862d7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/docs/detach-mode.md
Comment thread packages/stack/src/DaemonServer.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from ac00e70 to 3ea143a Compare August 4, 2026 10:37
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from fb58086 to e4738fa Compare August 4, 2026 10:37

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e4738fa597

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/StackLifecycleCoordinator.ts
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 3ea143a to 1f4a18a Compare August 4, 2026 11:07
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from e4738fa to d958c83 Compare August 4, 2026 11:07
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 1f4a18a to 2bd9fd1 Compare August 4, 2026 11:25
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from d958c83 to 67ad946 Compare August 4, 2026 11:25

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 67ad946444

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/daemon.ts Outdated
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 2bd9fd1 to d96ca0e Compare August 4, 2026 11:35
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from 67ad946 to b9891e0 Compare August 4, 2026 11:35
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 86c6a70 to 9f2f7d4 Compare August 4, 2026 12:03
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from 6b836fd to e1d2245 Compare August 4, 2026 12:03

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e1d2245753

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 9f2f7d4 to 868f236 Compare August 4, 2026 12:12
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from e1d2245 to f1319ef Compare August 4, 2026 12:12

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f1319efa81

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/StateManager.ts Outdated
Comment thread packages/stack/src/RemoteStack.ts
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 868f236 to 1ebb475 Compare August 4, 2026 12:48
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from f1319ef to e532be6 Compare August 4, 2026 12:48
Comment thread packages/stack/src/StateManager.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 1ebb475 to cc5effc Compare August 4, 2026 12:58
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from eb66904 to 938ee92 Compare August 4, 2026 12:58

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 938ee92d68

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/DaemonServer.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from cc5effc to 9639149 Compare August 4, 2026 13:20
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from 938ee92 to 038fc01 Compare August 4, 2026 13:20

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 038fc012de

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/ManagedPortLock.ts Outdated
Comment thread packages/stack/src/daemon.ts
@jgoux
jgoux force-pushed the lazy-stack/05-port-leases branch from 9639149 to 8d6ede9 Compare August 4, 2026 14:06
@jgoux
jgoux force-pushed the lazy-stack/06-detached-parity branch from 038fc01 to d486dd6 Compare August 4, 2026 14:06

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d486dd6436

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/stack/src/ManagedPortLock.ts
Comment thread packages/stack/src/RemoteStack.ts
Comment thread packages/stack/src/layers.ts

jgoux commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #6070 in the simplified replacement stack #6069#6070#6071. The daemon now owns port allocation and atomically claims live state in the configured stack directory, without a second state-lock lifecycle. Every remaining review thread has been answered and resolved. Closing this PR so review continues on the replacement.

@jgoux jgoux closed this Aug 5, 2026
pull Bot pushed a commit to oogalieboogalie/cli that referenced this pull request Aug 5, 2026
Consolidates the complete lazy-stack v2 implementation and its
architecture hardening into one reviewable change.

The implementation replaces the earlier user-space coordination
protocols with explicit ownership boundaries and operating-system
primitives:

- centralizes Docker and native artifact policy in one service catalog
- publishes complete native caches through private staging directories
and atomic rename
- models lifecycle intent directly on each service as inactive, running,
or explicitly stopped
- activates HTTP services at the existing proxy boundary while keeping
direct-listener services eager
- reserves real TCP ports until each service reaches its spawn boundary
- gives foreground and detached stacks the same allocation, readiness,
and lifecycle behavior
- enables lazy startup for CLI-managed local stacks while preserving
eager startup as the package default

The hardening pass makes each service's stable state stream the single
lifecycle coordination primitive, removes generation-specific waiter and
relaunch machinery, keeps healthy requests off the global lifecycle
lock, starts independent eager roots concurrently, recovers incomplete
artifact-cache destinations, and makes service port mappings exhaustive.

This keeps the simpler v2 architecture while closing the highest-impact
concurrency, recovery, and shutdown races identified during review.
Realtime remains eager because the HTTP proxy does not bridge its
WebSocket traffic, and concurrent artifact downloaders may duplicate
work while still publishing through an atomic winner.

Supersedes supabase#6041
Supersedes supabase#6042
Supersedes supabase#6043
Supersedes supabase#6044
Supersedes supabase#6045
Supersedes supabase#6046
Supersedes supabase#6047
Supersedes supabase#6069
Supersedes supabase#6070
Supersedes supabase#6071
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