Conversation
tomusdrw
commented
Apr 7, 2026
- refactor: auto-scan specs and add --last/--dry CLI flags
- docs: split sprint-42 into two sprints and add all-ecalli fixture
- docs: align sprint-42/43 specs with graypaper-ab2cdbd
- feat: implement sprint-42 host call UX redesign and GP 0.7.2
- fix: E2E test button IDs and RegistersPanel min-height
- fix: preserve host-call-header/hint testids and fix sprint-20 storage detection
- test: add unit tests for parseAllCommands, safeFromHex, formatRegValue
- fix: use trace proposals for auto-continue instead of stale pending effects
- feat: implement sprint-43 fetch handler, JAM codec, and all-ecalli support
- refactor: clean up jam-codec comments, extract concatParts, fix require()
- fix: eagerly compute fetch default blob to fix initial effects race
- fix: use fixed u16 LE encoding for is_authorized core index
- feat: add GitHub Actions CI/CD, Biome lint, and Changesets release
- style: auto-fix biome lint and format across codebase
- fix: improve CI workflow and add changeset README
Replace hardcoded spec list with directory scanning so new specs are picked up automatically. Remove per-spec log file plumbing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Split the oversized sprint-42 spec into: - Sprint 42: Host Call UX Redesign, Handler Improvements, GP 0.7.2 - Sprint 43: Fetch Handler, JAM Codec Add all-ecalli.jam fixture and example entries for both sprints. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace incorrect "GP 0.7.2" references with the actual target graypaper revision (ab2cdbd). Fix sprint-43 spec to match the real GP data: correct fetch register layout (ω₇=dest, ω₁₀=kind), correct FetchKind enum (Entropy=1, AuthorizerTrace=2, etc.), correct ProtocolConstants field names and encoding order, correct ImportRef (u16 high-bit tag, not 1-byte prefix), ExtrinsicRef (u32, not VarU64), and WorkItem.exportcount (u16, not VarU64). Remove superseded sprint-42 stub file. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two-column HostCallTab layout with sidebar (registers, output preview, memory write count) and content area. Auto-apply replaces manual Apply button. NONE toggle for lookup/read/info handlers. GP-aligned HOST_CALL_NAMES (graypaper-ab2cdbd): refine 6-13, accumulate 14-26, log 100. Fixed refine entrypoint encoding (workPackageHash as fixed 32 bytes). Storage read with correct offset/maxLen slicing, service ID scoping, trace seeding. Generic handler with comments, line numbers, setgas. Pending changes coalescing and scrollable display. removeMemoryWrite added to usePendingChanges for stale write cleanup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix Playwright E2E tests to use correct test IDs (run-button, next-button instead of btn-run, btn-next). Add proper run-to-host-call pattern matching existing passing tests. Fix GP 0.7.2 badge test to pause on host calls first so trace entries are visible. Add min-h-[4.5rem] Tailwind class to RegistersPanel scroll area so registers maintain minimum height when pending changes are shown. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… detection Add data-testid="host-call-header" wrapping badge + index in the sidebar, and data-testid="host-call-hint" in the content area for backwards compatibility with sprint-19, sprint-20, and integration smoke E2E tests. Fix sprint-20 stepToStorageHostCall to detect storage host calls by checking for storage-host-call testid instead of matching host call names in the header (fetch/lookup matched but aren't StorageHostCall). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add 22 unit tests covering sprint-42 utility functions: - parseAllCommands: 12 tests covering setreg/memwrite/setgas parsing, comments, line-numbered errors, register sort, range validation - safeFromHex: 6 tests covering hex decoding, odd-length padding, invalid input fallback - formatRegValue: 3 tests covering hex/decimal/custom formats - NONE constant: 1 test verifying 2^64-1 Update spec edge cases to document backwards-compat testid requirements (host-call-header, host-call-hint) and sprint-20 storage detection fix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ffects During auto-continue in the run loop, resumeAllHostCalls was passing getHostCallEffects which returned stale pending changes from the auto-apply mechanism (set by HostCallTab for the previous host call). This caused incorrect effects to be applied during auto-continue, breaking tests that rely on always_continue policy. Fix: only use getHostCallEffects for the initial resume (where the user may have edited pending changes). For auto-continue resumes, fall back to trace proposals. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…pport Add JAM codec library (VarU64, LE primitives, variable-length containers) in packages/types. Implement all 16 fetch variant codecs with TypeScript interfaces, encode/decode per GP §B.5/Appendix D. Build FetchHostCall UI with Trace/Raw/Struct modes, per-variant struct editors (ProtocolConstants, WorkPackage, RefinementContext, TransferOrOperand, etc.), slice preview, and NONE toggle support. Add computeFetchEffects utility, fetch register metadata, and E2E tests using all-ecalli fixtures. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…re()
- Remove stale reasoning comments from VarU64 encode/decode in jam-codec.ts
- Extract concatParts helper in fetch-codec.ts (removes 6x inline concat)
- Replace require("@pvmdbg/types") with proper ESM import in test
- Remove unused tryDecode import from fetch-codec.ts
- Add WorkItem roundtrip test with nested imports/extrinsics
- Add Transfer memo truncation test
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
FetchHostCall previously initialized blob from empty traceData and relied on StructEditor's async effect to report encoded defaults. This caused ω₇=0 on first render because the parent's blob effect fired before the child's state update propagated. Now the initial blob is computed synchronously via computeDefaultEncodedBlob(), eliminating the race. Also gates "Use Trace Data" button on hasProposal so it doesn't appear when there is no trace data. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The GP spec defines the is_authorized entrypoint parameter as a fixed 2-byte little-endian core index, not a variable-length integer. Replace encodeVarU32/decodeVarU32 with encodeU16LE/decodeU16LE. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add three workflow files: CI (PR checks for lint, test, build, e2e, changeset), publish-next (npm next tag + GitHub Pages deploy on push to main), and release (Changesets version PR + latest tag publish). Configure Biome 2.0 for linting/formatting, Changesets for version management, and set the GitHub Pages base path in the web app. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Run `biome check --write .` to fix all auto-fixable issues (import sorting, formatting, template literals, etc.) and configure biome rules to downgrade a11y and React hook rules to warnings so CI passes on the existing codebase. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix ci.yml to build only packages/* (not apps/web) before lint/test, avoiding redundant web app build since it's built again explicitly later - Fix publish-next.yml to use subshells for safer directory handling - Add .changeset/README.md with contributor instructions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (217)
📝 WalkthroughWalkthroughThis pull request introduces comprehensive host-call infrastructure, fetch codec system, and tooling setup. It adds Changesets version management, Biome linting, GitHub Actions CI/CD workflows, new E2E test suites, and widespread code formatting standardization. The SPI entrypoint refactors the refine parameter from Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes The PR combines heterogeneous changes across multiple domains: widespread formatting (repetitive, low effort per file), new codec/utility modules (dense logic), breaking API changes (workPackageHash), new host-call feature surface (multiple interacting components), and E2E test coverage. While formatting changes dominate the file count, the logic density in fetch-codec, host-call handlers, and effect propagation requires careful review to ensure correctness and backward compatibility. Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
|