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

@jgouxjgoux 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
jgouxforce-pushed the lazy-stack/05-port-leases branch from e273d2d to 706b171CompareAugust 4, 2026 07:43
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from f1e0c43 to 64bea19CompareAugust 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 ownerAugust 4, 2026 07:51

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/StackLifecycleCoordinator.ts Outdated
Comment threadpackages/stack/src/layers.ts Outdated
Comment threadpackages/stack/src/RemoteStack.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 706b171 to a6e0729CompareAugust 4, 2026 08:05
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from 64bea19 to 89af0f2CompareAugust 4, 2026 08:05
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from a6e0729 to fad354dCompareAugust 4, 2026 08:48
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from 89af0f2 to e2dd44fCompareAugust 4, 2026 08:48

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/DaemonServer.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from fad354d to 4265a74CompareAugust 4, 2026 09:32
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from e2dd44f to f130bfdCompareAugust 4, 2026 09:32

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/DaemonServer.ts Outdated
Comment threadpackages/stack/src/StackLifecycleCoordinator.ts Outdated
Comment threadpackages/stack/src/RemoteStack.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 4265a74 to c2cdb81CompareAugust 4, 2026 09:41
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch 2 times, most recently from ce21004 to fb58086CompareAugust 4, 2026 10:20
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from c2cdb81 to ac00e70CompareAugust 4, 2026 10:20

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/docs/detach-mode.md
Comment threadpackages/stack/src/DaemonServer.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from ac00e70 to 3ea143aCompareAugust 4, 2026 10:37
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from fb58086 to e4738faCompareAugust 4, 2026 10:37

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/StackLifecycleCoordinator.ts
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 3ea143a to 1f4a18aCompareAugust 4, 2026 11:07
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from e4738fa to d958c83CompareAugust 4, 2026 11:07
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 1f4a18a to 2bd9fd1CompareAugust 4, 2026 11:25
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from d958c83 to 67ad946CompareAugust 4, 2026 11:25

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/daemon.ts Outdated
Comment threadpackages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 2bd9fd1 to d96ca0eCompareAugust 4, 2026 11:35
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from 67ad946 to b9891e0CompareAugust 4, 2026 11:35
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 86c6a70 to 9f2f7d4CompareAugust 4, 2026 12:03
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from 6b836fd to e1d2245CompareAugust 4, 2026 12:03

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 9f2f7d4 to 868f236CompareAugust 4, 2026 12:12
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from e1d2245 to f1319efCompareAugust 4, 2026 12:12

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/StateManager.ts Outdated
Comment threadpackages/stack/src/RemoteStack.ts
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 868f236 to 1ebb475CompareAugust 4, 2026 12:48
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from f1319ef to e532be6CompareAugust 4, 2026 12:48
Comment threadpackages/stack/src/StateManager.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 1ebb475 to cc5effcCompareAugust 4, 2026 12:58
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from eb66904 to 938ee92CompareAugust 4, 2026 12:58

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/DaemonServer.ts Outdated
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from cc5effc to 9639149CompareAugust 4, 2026 13:20
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from 938ee92 to 038fc01CompareAugust 4, 2026 13:20

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/ManagedPortLock.ts Outdated
Comment threadpackages/stack/src/daemon.ts
@jgoux
jgouxforce-pushed the lazy-stack/05-port-leases branch from 9639149 to 8d6ede9CompareAugust 4, 2026 14:06
@jgoux
jgouxforce-pushed the lazy-stack/06-detached-parity branch from 038fc01 to d486dd6CompareAugust 4, 2026 14:06

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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 threadpackages/stack/src/ManagedPortLock.ts
Comment threadpackages/stack/src/RemoteStack.ts
Comment threadpackages/stack/src/layers.ts
@jgouxChatGPT Codex Connector

jgoux commented Aug 5, 2026

Copy link
Copy Markdown
ContributorAuthor

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.

@jgouxjgoux closed this Aug 5, 2026
pullBot 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 freeto 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

@jgoux