Conversation
Composition planning, service defaults and stack lookup move from the CLI into the stack package, which exposes them through find and plan APIs. The CLI keeps only its project and config boundary, and composition options pass stack keys as `keys`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Sep 25, 2026
jgoux
marked this pull request as ready for review
September 25, 2026 21:39
Contributor
There was a problem hiding this comment.
🤖 AI Review
Five distinct findings were verified: one major and four minor. The runtime finding holds for schema shadows, but its claim about db dump --local does not. The credential comparison finding holds for the stack package; the cited REST JWKS example is not exposed through CLI configuration.
Findings
| Severity | Location | Category | Sources | Claim |
|---|---|---|---|---|
| 🟠 MAJOR | apps/cli/src/commands/experimental/stack/start/start.handler.ts:398 |
selection |
codex | Adding a service fails as ambiguous when one stopped candidate is unchanged and another stopped candidate has changeable settings. |
| 🟡 MINOR | apps/cli/src/command-internal/stack-local-database.ts:106 |
error-handling |
claude | An unreadable project stack state is treated as an absent runtime, allowing schema shadows without an explicit runtime to fall back to the default runtime. |
| 🟡 MINOR | packages/stack/src/composition/Supabase.ts:129 |
correctness |
codex | The composition plan ignores changes to explicit credential-related inputs, including REST JWKS, even when those inputs change the effective service configuration. |
| 🟡 MINOR | apps/cli/src/commands/experimental/stack/status/status.handler.ts:324 |
error-handling |
codex | An unreadable Functions dotenv file makes all configuration drift unavailable even when Functions is absent from the saved composition. |
| 🟡 MINOR | packages/stack/src/effect.ts:905 |
input-validation |
codex | The public find operation does not enforce the exported StackId format for an explicit ID before lookup. |
Stats
Claude findings: 1 · Codex findings: 4 · Confirmed: 5 · Refuted: 0 · Uncertain: 0
Models: claude-opus-5-5 + gpt-6-sol · Trigger: auto · Workflow run
This review runs once per PR. A maintainer can request another with a /ai-review comment.
…-composition-policy # Conflicts: # apps/cli/src/commands/experimental/stack/stop/SIDE_EFFECTS.md
- Read the Functions dotenv for status drift only when Functions is a saved composition member, so a dotenv the stack backend rejects no longer blanks drift for every member. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
AI review triage Fixed in 0d5f417:
Every review thread on this PR has been answered and resolved. 🤖 Addressed by Claude Code |
…-composition-policy
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The CLI re-derived policy the package owns:
Starting a stopped stack with changed configuration was rejected with a suggestion to destroy it.
Change
findreads one stack by identity or id. CLI target resolution uses it, so an unreadable state file surfaces as an error instead of "not found".composition.planreports, per member, whether a requested configuration is unchanged, changed or incompatible. Aneageroption replaces the CLI's copy of the activation policy, andstack statusreports drift from the plan.stack start,db start,db resetand schema shadows.identityoption is renamed tokeys.Stack
Part 7 of 8 of the stack package simplification, based on #6839. Review and merge in order:
🤖 Generated with Claude Code