Skip to content

feat(stack): start HTTP services through lazy proxy - #6043

Closed
jgoux wants to merge 8 commits into
lazy-stack/02-lifecyclefrom
lazy-stack/03-http-proxy
Closed

feat(stack): start HTTP services through lazy proxy#6043
jgoux wants to merge 8 commits into
lazy-stack/02-lifecyclefrom
lazy-stack/03-http-proxy

Conversation

@jgoux

@jgoux jgoux commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Stack layer 3 of 7, based on #6042.

Adds lazy startup as an optional stack-package lifecycle mode:

  • activates HTTP services at the central proxy boundary before forwarding
  • gates activation on the running lifecycle phase and returns 503 outside it
  • keeps eager startup as the package default
  • exposes only central proxy URLs to callers
  • resets lifecycle state correctly when startup fails

@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from 65c35b5 to 9f9ea46 Compare August 4, 2026 07:43
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from b0dfc78 to 0355a4d Compare August 4, 2026 07:43
@jgoux
jgoux marked this pull request as ready for review August 4, 2026 07:50
@jgoux
jgoux requested a review from a team as a code owner August 4, 2026 07:50
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated

@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

export const eagerServices = (enabled: ReadonlyArray<ServiceName>): ReadonlyArray<ServiceName> =>
enabled.filter((service) => SERVICE_ACTIVATION_POLICY[service].access === "direct");

P2 Badge Start Studio's analytics companions in lazy mode

When startupMode is "lazy" and Studio, Analytics, and Vector are enabled, this filter starts Studio but leaves Analytics and Vector dormant. StackBuilder.ts configures Studio with a direct LOGFLARE_URL and enables its logs UI, so Studio bypasses the API proxy that would activate Analytics; consequently its logging features remain unavailable until an unrelated client happens to request /analytics/v1. Expand the eager targets for Studio to include Analytics and Vector, or route that dependency through an activation boundary.

ℹ️ 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/ApiProxy.ts
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
Comment thread packages/stack/src/StackLifecycleCoordinator.ts
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from 9f9ea46 to ee5c7e6 Compare August 4, 2026 08:04
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 0355a4d to 23de12e Compare August 4, 2026 08:04

@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: ee5c7e67b1

ℹ️ 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/ApiProxy.ts
Comment thread packages/stack/src/StackLifecycleCoordinator.ts
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from ee5c7e6 to 50d42df Compare August 4, 2026 08:48
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 23de12e to 6174ffd 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: 50d42df932

ℹ️ 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
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from 50d42df to 7f1da24 Compare August 4, 2026 09:32
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 6174ffd to b3ef005 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: 7f1da2452e

ℹ️ 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/StackLifecycleCoordinator.ts Outdated
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from b3ef005 to 423ce02 Compare August 4, 2026 09:41
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from 7f1da24 to b7d9850 Compare August 4, 2026 09:41

@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: b7d9850fe0

ℹ️ 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/README.md
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 423ce02 to f0fc42d Compare August 4, 2026 10:20
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from b7d9850 to 0b23678 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: 0b23678017

ℹ️ 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/02-lifecycle branch from f0fc42d to eab5a5f Compare August 4, 2026 10:37
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from 0b23678 to f0b757c 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: f0b757c0b8

ℹ️ 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/StackLifecycleCoordinator.ts
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from eab5a5f to 7c34456 Compare August 4, 2026 11:07
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from f0b757c to 508bb5e Compare August 4, 2026 11:07
Comment thread packages/stack/src/StackLifecycleCoordinator.ts Outdated
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 8d89478 to 12a7ac8 Compare August 4, 2026 12:02
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from b130301 to e56d367 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: e56d3672f9

ℹ️ 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
Comment thread packages/stack/src/StackLifecycleCoordinator.ts
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 12a7ac8 to 9c77220 Compare August 4, 2026 12:12
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from e56d367 to d3b1451 Compare August 4, 2026 12:12
Comment thread packages/stack/src/layers.ts

@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: d3b1451de8

ℹ️ 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/02-lifecycle branch from 9c77220 to 7e44bb5 Compare August 4, 2026 12:48
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from d3b1451 to c168d30 Compare August 4, 2026 12: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: c168d30187

ℹ️ 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

@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: d6a0dbe301

ℹ️ 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
Comment thread packages/stack/src/StackLifecycleCoordinator.ts
Comment thread packages/stack/src/StackLifecycleCoordinator.ts
@jgoux
jgoux force-pushed the lazy-stack/03-http-proxy branch from d6a0dbe to c4c3caf 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: c4c3caf667

ℹ️ 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/03-http-proxy branch from c4c3caf to 98a18a7 Compare August 4, 2026 14:06
@jgoux
jgoux force-pushed the lazy-stack/02-lifecycle branch from 589b65c to 5838abe 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: 98a18a7910

ℹ️ 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
Comment thread packages/stack/src/StackLifecycleCoordinator.ts
Comment thread packages/stack/src/StackLifecycleCoordinator.ts

jgoux commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #6070 in the simplified replacement stack #6069#6070#6071. The HTTP activation boundary remains, but duplicate activation markers, manual-stop sets, and restart-intent bookkeeping were removed. 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