Close out the local-dev project: docs reconciled, evidence migrated, workspace removed - #168
Conversation
Reconciles the design docs with what shipped (the localTarget seam naming in ADR-0041, the ADR index, local-dev.md, deploy-cli.md; the warm-restart finding marked fixed in #164; Bundle.watch now populated by both build adapters), migrates the durable evidence into local-dev.md (a 'Proven against a real app' section recording the credential-free open-chat run and its designed failure boundary, plus the measured restart latency: median 3.24s over 5 runs), and removes the transient project workspace .drive/projects/local-dev/ — the implementation is on main via #158/#159/#160/#162/#164, and the raw proving assets live on the claude/local-dev-s6-proof branch. Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
WalkthroughThe local development documentation now uses 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/design/10-domains/local-dev.md`:
- Around line 37-39: Update the documented local-development pipeline hooks to
use the shipped ExtensionDescriptor.localTarget descriptor instead of the
nonexistent dev.container, dev.emulators, dev.providers(), and dev.attach
fields. Ensure every affected reference and reader consistently resolves hooks
through localTarget.
- Around line 37-39: Update the local development documentation around the
`localTarget` requirement to state that only non-build-only extensions must
provide a descriptor. Explicitly document that build-only extensions are exempt,
and ensure the extension factory guidance does not imply that every configured
extension must resolve a platform.
- Around line 272-276: Update the parenthetical note near the “Restart latency
is measured” sentence to remove the reference to the deleted implementation spec
and point readers to the retained ADR/domain documentation instead. Preserve the
existing settled behavior details and wording unrelated to the documentation
reference.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 9f7fcce5-2318-4762-8324-8968bedc6612
📒 Files selected for processing (6)
.drive/projects/local-dev/plan.md.drive/projects/local-dev/spec.mddocs/design/10-domains/deploy-cli.mddocs/design/10-domains/local-dev.mddocs/design/90-decisions/ADR-0041-local-dev-runs-the-deploy-pipeline-against-local-providers.mddocs/design/90-decisions/README.md
💤 Files with no reviewable changes (2)
- .drive/projects/local-dev/plan.md
- .drive/projects/local-dev/spec.md
…pec reference CodeRabbit on #168: - the pipeline steps still named dev.container/dev.emulators/dev.providers()/ dev.attach — the shipped field is ExtensionDescriptor.localTarget; renamed, plus two more the review missed (dev.teardown, dev.preflight in ADR-0041), and the quoted config error now matches local-target.ts verbatim. - the config step said EVERY extension must carry localTarget — build-only extensions are exempt (local-target.ts's isBuildOnlyExtension); say so. - the settled-mechanics note pointed at the now-deleted implementation spec; point at this doc and ADR-0041 instead. Signed-off-by: willbot <w.a.madden+machine@gmail.com> Signed-off-by: Will Madden <madden@prisma.io> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This PR closes the local-dev project: the feature is shipped and proven, so the transient project workspace comes out of the repo, and everything durable moves into the design docs.
The implementation landed through #158 (watch + directory builds), #159 (the S3 wire protocol package), #160 (the emulator daemons), #162 (the
localTargetseam), and #164 (thedevcommand). The diff here is docs-only by nature — a close-out — and does three things:Reconciles the design docs with what shipped. ADR-0041, the ADR index,
local-dev.md, anddeploy-cli.mdstill described the pre-rename seam (devfield,DevDescriptor); they now describeExtensionDescriptor.localTargetandLocalTargetDescriptor, the names actually in the code. The warm-restart finding is marked fixed (feat(cli): prisma-composer dev — bring the whole app up locally, credential-free #164), and the watch-path caveat is updated: both build adapters populateBundle.watchnow.Migrates the durable evidence into
local-dev.md. A "Proven against a real app" section records what the proving pass established: open-chat — a real, pre-existing Composer app in its own repo — came up credential-free underprisma-composer dev(sign-in, history, live-tail all working), failing at exactly one place, the outbound OpenRouter call, where a placeholder stood in for the unset secret. That is the designed failure boundary, observed end to end. Restart latency is recorded beside it: median 3.24s per edit-rebuild-reconverge cycle (5 runs,examples/store, Apple M3 Max).Deletes
.drive/projects/local-dev/(the spec and plan, ~1,100 lines). The spec's job was zero-ambiguity implementation contracts; the implementation now on main is that contract, and the repo's rule is that transient project artifacts do not outlive their project. The raw proving assets (port friction log, patch, latency script) live on theclaude/local-dev-s6-proofbranch if ever needed.Acceptance, verified
The project's acceptance criteria are all enforced or recorded: credential-free bring-up with a served HTTP round-trip, one-service-restart on rebuild, data surviving Ctrl-C and warm restart,
--freshclearing it, the bucket round-trip through plain files, the placeholder-secret and missing-env-param behaviors — each is a required CI integration test on main (local-dev.integration.ts,local-dev-store.integration.ts,local-dev-criteria-4-5.integration.ts). The real-app port and the latency target are the recorded proof now inlocal-dev.md.Alternatives considered
🤖 Generated with Claude Code