fix(streams): resolve Aspire VITE service references in the browser stream resolver - #1559
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TKxrWGp5uxEHQ2NyZiZSMF
|
@openhands-agent model=openrouter/minimax/minimax-m3 output=pr-comment iterations=500 phase=plan head=4ee94aa4deb08e2d7bd620447c93d067a79f141e Trusted base SHA: f99cb4f use harness SKILL
Act as the formal PLAN-EVAL session for this pull request. Do not edit files, create commits, push, Return concise findings with exact evidence and required amendments. End with exactly one supported |
OpenHands Agent — CompletedOPENHANDS_VERDICT: PASS Model: PLAN-EVAL Summary — #1548 / PR #1559SummaryEvaluated the plan for issue #1548 ("Aspire VITE service references invisible to the Fresh Streams browser resolver") at head The plan's diagnostic — two independent reasons the value cannot be statically substituted (the D1 (use literal ChangesNo source changes (PLAN-EVAL, evaluation only). One deliverable file written:
Validation
Responses to review comments or issue commentsNo PR review-thread replies (output mode is Remaining risks
VerdictOPENHANDS_VERDICT: PASS Run: https://github.com/rickylabs/netscript/actions/runs/31591064684 |
…he slice branch Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TKxrWGp5uxEHQ2NyZiZSMF
|
[PHASE: IMPL] Implementation slice landed at Shipped
Tests added
Test 4 is an explicit source-shape surrogate. Test 5 simulates textual replacement. Neither is a real Vite build, and neither is claimed to prove Vite substitution. Gate evidence (verbatim)
|
|
[PHASE: REVIEW] Tier-A slice review by the orchestrator. Verified in the worktree, not read off the report. Conformance to the plan and its PLAN-EVAL amendments
The guard does what it was specified to doThis is the part worth demonstrating rather than asserting. I regressed the reader from literal member expressions back to a computed index — a change that is behaviourally identical (the value still resolves in Deno; every precedence test still passes) but destroys Vite substitutability, which is the actual defect. Restored → 38 passed, 0 failed, tree clean. That is exactly the regression class the plan named: a future refactor that reintroduces the bug while all behavioural tests stay green. A behaviour-only suite would have shipped that silently. The shape guard is doing real work, not decorating the diff. FindingsNone blocking. On the limits of this proof — restated, not quietly droppedNo test here proves Vite's Also carried forward from PLAN-EVAL and not fixed here: NextFlipping to ready, which fires the initial automatic IMPL-EVAL exactly once. Deliberately not also swapping to |
|
@openhands-agent model=openrouter/deepseek/deepseek-v4-flash-0731 output=pr-comment iterations=800 phase=impl head=ccfa5407eb2c0291a67f650baffb1c3163b514e2 Trusted base SHA: 5db37e7 use harness SKILL
Act as the formal IMPL-EVAL session for this pull request. Do not edit files, create commits, push, Return concise, severity-ranked findings with exact evidence and required action. End with exactly |
OpenHands Agent — CompletedOPENHANDS_VERDICT: PASS Model: OPENHANDS_VERDICT: PASS IMPL-EVAL — PR #1559 — fix(streams): resolve Aspire VITE service references in the browser stream resolver
SummaryThis is the formal IMPL-EVAL for the #1548 browser stream-discovery fix. The implementation makes the I independently re-ran every gate at the immutable head rather than trusting the report:
Changes (verified)
Validation of plan/protocol obligations
Responses to review / issue commentsNo open review threads or unresolved review comments exist on the PR (checked Findings (severity-ranked; none blocking)
Remaining risks
VerdictOPENHANDS_VERDICT: PASS Run: https://github.com/rickylabs/netscript/actions/runs/31593936968 |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TKxrWGp5uxEHQ2NyZiZSMF
Summary
Makes the zero-configuration browser stream factory resolve Aspire's canonical Vite service
reference using literal static member expressions that the repo's Vite
defineentries can reach.The server and browser precedence order is unchanged, and the package's published export surface did
not grow.
Scope
packages/plugin-streams-core— browser environment resolutionImplementation
import.meta.env.VITE_services__streams__http__0andimport.meta.env.VITE_STREAMS_URLas literal static member expressions.getBrowserStreamsUrlFromEnv()lookup from the impureimport.meta.envreader. The SDK is a structural precedent for this separation only; its ownreader has the same substitutability defect and is not treated as a solved precedent.
DURABLE_STREAMS_URL→services__streams__http__0→ browser full key → browser shorthand→ throw.
mod.ts, the Fresh call site, Vite transforms, and scaffold templates unchanged.Slices
4ee94aa4dccfa5407eValidation
deno task --cwd packages/plugin-streams-core test— exit 0; 38 passed, 0 faileddeno task doc:lint --root packages/plugin-streams-core --pretty— exit 0; 0 errorsdeno task quality:gate— exit 0, but its configured roots omit this packagescan-code-quality.ts --root packages/plugin-streams-core/src— exit 0;findings=[],allowCount=0The package-quality verdict rests on the explicit package source scan, not the green repo gate,
because
arch:checkdoes not coverpackages/plugin-streams-core.Harness
.llm/runs/release-0.0.6-features--orchestration/slices/worklog-1548.mdslices/plan-1548.mdProof boundary
The source-shape guard is deliberately a surrogate for Vite substitution. The tests prove lookup
precedence, preserve the exact substitutable source expressions, and exercise the browser branch
through
getStreamsUrl()using a text-substituted module fixture. They do not prove that a realVite build performs the substitution.
Drift / Debt
not changed in this slice.
e2e:cli: this slice does not change scaffold output.Definition of Done
definemechanism can reachimport.metaor computedenv indexing
getStreamsUrl()reaches the browser branch and preserves browser keyorder
proof