Skip to content

feat(api): establish the v19 Runtime and Lane surface - #769

Merged
flyingrobots merged 3 commits into
mainfrom
v19/runtime-lane-observation
Jul 24, 2026
Merged

feat(api): establish the v19 Runtime and Lane surface#769
flyingrobots merged 3 commits into
mainfrom
v19/runtime-lane-observation

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Jul 24, 2026

Copy link
Copy Markdown
Member

Summary

  • make Runtime the production composition root and sole root runtime value
  • replace the public Timeline vocabulary with validated Lane, Observer, Observation, Reading, and Receipt runtime nouns
  • keep Observation execution dormant, single-start, single-consumer, and backpressure-drained for receipt-only consumption
  • expose advanced coordinate capture through a lifecycle-guarded Lane capability rather than leaking Timeline ownership
  • validate and aggregate Runtime/GitStorage open and cleanup failures without allowing unknown beyond the adapter boundary
  • align root exports, subpaths, generated consumer fixtures, migration guidance, and source-backed reference docs
  • raise the line-coverage ratchet from 92.89% to 92.93%

Validation

  • npm run lint
  • npm run lint:ratchet
  • npm run lint:sludge
  • npm run lint:quarantine-graduate
  • npm run lint:semgrep
  • npm run lint:contamination
  • npm run lint:md
  • npm run lint:md:code
  • npm run lint:links
  • npm run lint:docs-topology
  • npm run typecheck
  • npm run typecheck:policy
  • npm run typecheck:consumer
  • npm run typecheck:surface — 0 errors, 0 warnings
  • npm run build
  • npm run test:local — 7,150 passed, 2 skipped
  • npm run test:coverage — 7,310 passed, 2 skipped; 92.93% lines
  • npx vitest run test/integration/application/GitStorage.integration.test.ts — 2 passed
  • npm pack --dry-run --ignore-scripts --json — 2,067 files
  • pre-push IRONCLAD M9 hook — all gates passed

Manual SSJS scorecard

  • new concepts have runtime-backed, validated, immutable forms
  • boundary validation stays at constructors and application/adapter edges
  • behavior remains on the owning type or named composition module
  • behavior does not branch on parsed messages
  • no ambient time or entropy enters domain code
  • no fake shape trust or cast-cosplay was introduced

Advances #712

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@flyingrobots, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: d38bf1ca-a922-4cf0-9f57-368d50d36f7d

📥 Commits

Reviewing files that changed from the base of the PR and between 30fff43 and 7af7afc.

📒 Files selected for processing (10)
  • docs/topics/querying.md
  • src/application/Runtime.ts
  • src/application/RuntimeLaneAdapter.ts
  • src/domain/api/LaneIdentityFailure.ts
  • src/domain/api/LaneTick.ts
  • src/domain/api/ObservedReading.ts
  • src/domain/api/ReadingValueRuntime.ts
  • test/integration/application/Runtime.integration.test.ts
  • test/unit/application/Runtime.test.ts
  • test/unit/domain/ObservedReading.test.ts
📝 Walkthrough

Walkthrough

This PR replaces the v19 Warp/Timeline/Reading facade with a Runtime/Lane/Observer/Observation model. It adds domain contracts (Lane, Observer, Observation, ObservationReceipt, ObservedReading), a Runtime composition root backed by GitStorage/RuntimeActivity/RuntimeLaneAdapter, updates public exports, diagnostics, gate scripts, tests, fixtures, and documentation accordingly.

Changes

Runtime/Lane/Observation v19 API

Layer / File(s) Summary
Lane/Observer/Observation domain contracts
src/domain/api/Lane.ts, LaneRuntime.ts, LaneTick.ts, Observer.ts, ObserverRuntime.ts, Observation.ts, ObservationReceipt.ts, ObservedReading.ts, PublicReceipt.ts, ReadingResult.ts, ReadingValue.ts, ReadingValueRuntime.ts, WriteReceipt.ts, WriteRuntime.ts, captureCoordinate.ts
New Lane/Observer/Observation/Reading/Receipt types with validation, cardinality rules, and lane-runtime binding; WriteReceipt and captureCoordinate switch from timeline to lane.
Runtime composition, storage, and lane adapter
src/application/GitStorage.ts, Runtime.ts, RuntimeActivity.ts, RuntimeLaneAdapter.ts, src/infrastructure/adapters/GitPlumbingRuntimeAdapter.ts, storage.ts
New GitStorage/Runtime open/close lifecycle with aggregated cleanup errors, RuntimeActivity state machine, and RuntimeLaneAdapter wiring lane write/observe to timeline runtime; storage.ts becomes a re-export shim.
Public exports and diagnostics
index.ts, diagnostics.ts, advanced.ts
Root exports switch to Runtime-centered surface; ReceiptInspection/inspectReceipt report lane instead of timeline.
Domain unit tests
test/unit/domain/Lane.test.ts, Observation.test.ts, ObservedReading.test.ts, ReceiptDiagnostics.test.ts, ReceiptOutcome.test.ts, WarpFacade.test.ts, test/conformance/v18FirstUseOpticsHonesty.test.ts
New/updated tests for Lane validation, Observation lifecycle/backpressure, ObservedReading coordinates, and receipt field renames.
Application-level tests
test/unit/application/GitStorage.test.ts, Runtime.test.ts, RuntimeActivity.test.ts, RuntimeLaneAdapter.test.ts, WarpStorageRegistry.test.ts, test/integration/application/GitStorage.integration.test.ts
New unit/integration tests covering GitStorage cleanup aggregation and Runtime/lane end-to-end flows.
Type-check fixtures
test/type-check/generated-users.ts, v19-consumer.ts, v19-first-use.ts, v19-subpaths.ts
Compile-only fixtures updated to Runtime/Lane/Observation contract usage.
Vocabulary gate scripts
scripts/check-source-backed-reference.ts, scripts/v19-root-declaration-gate.ts, test/unit/scripts/v19-public-api-boundary.test.ts, v19-root-declaration-gate.test.ts, vitest.config.ts
Updated error-class filtering, allowlisted formal identifiers, and boundary tests for the new export contract.
Documentation
README.md, docs/migrations/v19/README.md, docs/topics/api/README.md, docs/topics/querying.md, docs/topics/reference.md
Rewritten guidance and generated reference reflecting Runtime/Lane/Observer/Observation vocabulary.

Estimated code review effort: 4 (Complex) | ~75 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Consumer
  participant Runtime
  participant Lane
  participant Observer
  participant Observation
  Consumer->>Runtime: Runtime.open({ at, writer })
  Runtime->>Runtime: GitStorage.open + openWarp
  Consumer->>Runtime: runtime.lane(name)
  Runtime->>Lane: createWorldlineLane
  Consumer->>Lane: lane.write(intent)
  Lane-->>Consumer: WriteReceipt
  Consumer->>Lane: lane.observe(observer)
  Lane->>Observation: construct dormant execution
  Consumer->>Observation: iterate readings / one()
  Observation-->>Consumer: Reading values + ObservationReceipt
  Consumer->>Runtime: runtime.close()
Loading

Possibly related PRs

  • git-stunts/git-warp#728: Both PRs directly modify the root index.ts public export surface for openWarp/Warp/Timeline vs the new Runtime model.
  • git-stunts/git-warp#729: The referenced Timeline facade work (Timeline.write/read, WriteReceipt, ReadReceipt) is directly revised here into the Lane/Runtime model.
  • git-stunts/git-warp#744: Both PRs rework storage composition around GitStorage.open()/WarpStorage, which the new Runtime entry point builds on.

Poem

A rabbit hops through timelines old,
And finds new Lanes of green and gold. 🐇
Observe, and Read, and keep your Receipt—
No Warp, no ghost of code deceit.
Runtime opens, closes clean,
The finest burrow this code has seen!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning Core Runtime/Lane/Observation work is present, but major #712 items like settlement preview/revalidation and /charts or CLI/MCP alignment are not evidenced. Implement or document the missing #712 acceptance items, especially settlement preview/revalidation and the remaining surface and vocabulary integrations.
Docstring Coverage ⚠️ Warning Docstring coverage is 3.08% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed The changes are centered on the v19 API migration, docs, tests, and coverage ratchet, with no obvious unrelated edits.
Title check ✅ Passed The title clearly and concisely summarizes the main change: establishing the v19 Runtime and Lane API surface.
Description check ✅ Passed The description is substantive and on-topic, with a solid summary and validation list, but it omits the template’s explicit Issue and ADR checks sections.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Release Preflight

  • package version: 18.2.1
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If this PR is from a release/* branch and merges to main, Main Push Release Branch Check will run final preflight and create v18.2.1. A maintainer who is a JSR @git-stunts scope member must then dispatch the Release workflow manually.

@coderabbitai coderabbitai 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.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
test/integration/application/GitStorage.integration.test.ts (1)

1-47: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

File name no longer matches its content.

The suite now targets Runtime composition end-to-end ("Runtime public composition", Line 7) rather than GitStorage in isolation, but the file is still named GitStorage.integration.test.ts. Consider renaming to Runtime.integration.test.ts for discoverability.

🤖 Prompt for 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.

In `@test/integration/application/GitStorage.integration.test.ts` around lines 1 -
47, Rename the integration test file from GitStorage.integration.test.ts to
Runtime.integration.test.ts so its filename matches the Runtime public
composition suite defined by describe('Runtime public composition').
🤖 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/topics/querying.md`:
- Around line 114-115: Rewrite the querying guide’s examples and instructions to
use the v19 Runtime/Lane API: replace removed openWarp, reading.*,
timeline.read(), and explicit storage-lifecycle usage with Runtime.open(),
runtime.lane(), generated observers, Lane.observe(), Observation.receipt, and
runtime.close().

In `@src/application/Runtime.ts`:
- Around line 53-59: Update Runtime.lane to use a dedicated lane-identity
failure descriptor instead of OPEN_WARP_IDENTITY_FAILURE when calling
assertTimelineNameIdentity. Define or reuse the lane-specific descriptor so
runtime.lane('') reports the lane validation contract and error metadata without
changing the existing timeline execution flow.

In `@src/application/RuntimeLaneAdapter.ts`:
- Around line 71-90: Extract the shared accepted-receipt evidence validation
from readingFrom and completedObservationReceipt into a requireEvidence(receipt)
helper. Have both functions call this helper and reuse its existing
E_OBSERVATION_EVIDENCE_INVARIANT WarpError behavior, removing their duplicated
undefined checks.

In `@src/domain/api/LaneTick.ts`:
- Around line 1-7: Replace the exported Tick shape in LaneTick with a frozen
class that validates both id and lane in its constructor, exposes them as
readonly properties, and freezes each instance after validation. Update any
boundary checks using Tick to require instanceof Tick rather than structural or
shape-based validation, while preserving the existing default export contract.

In `@src/domain/api/ObservedReading.ts`:
- Around line 44-55: Update the constructor logic in ObservedReading to snapshot
options.value after isReadingValue validation, recursively copying mutable
arrays and plain objects and copying Uint8Array data into an immutable
representation. Assign the materialized snapshot to this.value so later caller
mutations cannot affect the Reading while preserving the validated value shape.

---

Outside diff comments:
In `@test/integration/application/GitStorage.integration.test.ts`:
- Around line 1-47: Rename the integration test file from
GitStorage.integration.test.ts to Runtime.integration.test.ts so its filename
matches the Runtime public composition suite defined by describe('Runtime public
composition').
🪄 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: f2428e56-1cf5-4eca-96ad-a1894df1430e

📥 Commits

Reviewing files that changed from the base of the PR and between dbc8651 and 30fff43.

📒 Files selected for processing (51)
  • README.md
  • advanced.ts
  • diagnostics.ts
  • docs/migrations/v19/README.md
  • docs/topics/api/README.md
  • docs/topics/querying.md
  • docs/topics/reference.md
  • index.ts
  • scripts/check-source-backed-reference.ts
  • scripts/v19-root-declaration-gate.ts
  • src/application/GitStorage.ts
  • src/application/Runtime.ts
  • src/application/RuntimeActivity.ts
  • src/application/RuntimeLaneAdapter.ts
  • src/domain/api/Lane.ts
  • src/domain/api/LaneRuntime.ts
  • src/domain/api/LaneTick.ts
  • src/domain/api/Observation.ts
  • src/domain/api/ObservationReceipt.ts
  • src/domain/api/ObservedReading.ts
  • src/domain/api/Observer.ts
  • src/domain/api/ObserverRuntime.ts
  • src/domain/api/PublicReceipt.ts
  • src/domain/api/ReadingResult.ts
  • src/domain/api/ReadingValue.ts
  • src/domain/api/ReadingValueRuntime.ts
  • src/domain/api/WriteReceipt.ts
  • src/domain/api/WriteRuntime.ts
  • src/domain/api/captureCoordinate.ts
  • src/infrastructure/adapters/GitPlumbingRuntimeAdapter.ts
  • storage.ts
  • test/conformance/v18FirstUseOpticsHonesty.test.ts
  • test/integration/application/GitStorage.integration.test.ts
  • test/type-check/generated-users.ts
  • test/type-check/v19-consumer.ts
  • test/type-check/v19-first-use.ts
  • test/type-check/v19-subpaths.ts
  • test/unit/application/GitStorage.test.ts
  • test/unit/application/Runtime.test.ts
  • test/unit/application/RuntimeActivity.test.ts
  • test/unit/application/RuntimeLaneAdapter.test.ts
  • test/unit/application/WarpStorageRegistry.test.ts
  • test/unit/domain/Lane.test.ts
  • test/unit/domain/Observation.test.ts
  • test/unit/domain/ObservedReading.test.ts
  • test/unit/domain/ReceiptDiagnostics.test.ts
  • test/unit/domain/ReceiptOutcome.test.ts
  • test/unit/domain/WarpFacade.test.ts
  • test/unit/scripts/v19-public-api-boundary.test.ts
  • test/unit/scripts/v19-root-declaration-gate.test.ts
  • vitest.config.ts
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: test-node (22)
  • GitHub Check: coverage-threshold
  • GitHub Check: preflight
🧰 Additional context used
📓 Path-based instructions (4)
src/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (AGENTS.md)

src/**/*.{ts,tsx,js,jsx}: Do not introduce any, as any, as unknown as, unknown (outside adapters), Record<string, unknown> (outside adapters), *Like placeholder types, JSON.parse/JSON.stringify (outside adapters), fetch (outside adapters), process.env (outside adapters), @ts-ignore, or z.any() in core code; use validated boundary models and ports instead.
Use constructor-injected ports for external capabilities; do not rely on ambient dependencies for I/O, clocks, persistence, or entropy.
Do not create utils.ts, helpers.ts, misc.ts, or common.ts; name files after the actual concept they model.
Prefer one file per class, type, or object; if a file accumulates peer concepts, split it.
Keep helper corridors, fake shape trust, transitional duplication, and compile-time theater out of the codebase; runtime-honest TypeScript must reflect actual behavior.
No enum usage; prefer runtime-backed domain forms and unions.
Do not use boolean trap parameters; prefer named option objects or separate methods.
Avoid magic strings or numbers when a named constant should exist.
Keep domain bytes as Uint8Array; Buffer belongs in infrastructure adapters.

Files:

  • src/domain/api/PublicReceipt.ts
  • src/domain/api/LaneTick.ts
  • src/domain/api/ReadingValue.ts
  • src/domain/api/captureCoordinate.ts
  • src/domain/api/WriteRuntime.ts
  • src/domain/api/LaneRuntime.ts
  • src/domain/api/Observer.ts
  • src/domain/api/ObservedReading.ts
  • src/domain/api/ObserverRuntime.ts
  • src/domain/api/WriteReceipt.ts
  • src/application/RuntimeActivity.ts
  • src/domain/api/ObservationReceipt.ts
  • src/application/RuntimeLaneAdapter.ts
  • src/application/Runtime.ts
  • src/domain/api/ReadingValueRuntime.ts
  • src/application/GitStorage.ts
  • src/domain/api/Lane.ts
  • src/infrastructure/adapters/GitPlumbingRuntimeAdapter.ts
  • src/domain/api/Observation.ts
  • src/domain/api/ReadingResult.ts
src/domain/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (AGENTS.md)

src/domain/**/*.{ts,tsx,js,jsx}: In src/domain/**, do not use Date.now(), new Date(), Date(), performance.now(), Math.random(), crypto.randomUUID(), crypto.getRandomValues(), setTimeout, setInterval, raw new Error(...)/new TypeError(...), or direct imports from Node built-ins; time, entropy, and external capabilities must enter through ports or parameters, and domain errors should extend WarpError.
Construct domain objects only in core when doing so establishes validated runtime truth; do not build infrastructure adapters, host APIs, persistence implementations, wall clocks, or entropy sources inside core.
Prefer discriminated unions and explicit result types instead of boolean-flag bags, and model expected failures as return values rather than exceptions.
src/domain/ must not import host APIs or Node-specific globals; hexagonal architecture boundaries are mandatory.
Domain code must not use the wall clock directly; time must enter through a port or parameter.

Files:

  • src/domain/api/PublicReceipt.ts
  • src/domain/api/LaneTick.ts
  • src/domain/api/ReadingValue.ts
  • src/domain/api/captureCoordinate.ts
  • src/domain/api/WriteRuntime.ts
  • src/domain/api/LaneRuntime.ts
  • src/domain/api/Observer.ts
  • src/domain/api/ObservedReading.ts
  • src/domain/api/ObserverRuntime.ts
  • src/domain/api/WriteReceipt.ts
  • src/domain/api/ObservationReceipt.ts
  • src/domain/api/ReadingValueRuntime.ts
  • src/domain/api/Lane.ts
  • src/domain/api/Observation.ts
  • src/domain/api/ReadingResult.ts
src/domain/**/!(*.test).{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (AGENTS.md)

Use explicit domain concepts with validated constructors, Object.freeze, and instanceof dispatch; domain objects should be runtime-backed nouns, not ad hoc shape bags.

Files:

  • src/domain/api/PublicReceipt.ts
  • src/domain/api/LaneTick.ts
  • src/domain/api/ReadingValue.ts
  • src/domain/api/captureCoordinate.ts
  • src/domain/api/WriteRuntime.ts
  • src/domain/api/LaneRuntime.ts
  • src/domain/api/Observer.ts
  • src/domain/api/ObservedReading.ts
  • src/domain/api/ObserverRuntime.ts
  • src/domain/api/WriteReceipt.ts
  • src/domain/api/ObservationReceipt.ts
  • src/domain/api/ReadingValueRuntime.ts
  • src/domain/api/Lane.ts
  • src/domain/api/Observation.ts
  • src/domain/api/ReadingResult.ts
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx,js,jsx}: Do not use direct imports from src/infrastructure/** in src/domain/** or src/ports/**; depend on a port instead.
Do not use direct Node built-ins in src/domain/** or src/ports/**; use a port instead.

Files:

  • src/domain/api/PublicReceipt.ts
  • src/domain/api/LaneTick.ts
  • test/unit/application/WarpStorageRegistry.test.ts
  • test/unit/application/RuntimeLaneAdapter.test.ts
  • vitest.config.ts
  • test/unit/application/RuntimeActivity.test.ts
  • test/conformance/v18FirstUseOpticsHonesty.test.ts
  • advanced.ts
  • src/domain/api/ReadingValue.ts
  • test/unit/scripts/v19-root-declaration-gate.test.ts
  • test/type-check/generated-users.ts
  • test/unit/domain/ReceiptOutcome.test.ts
  • src/domain/api/captureCoordinate.ts
  • storage.ts
  • test/type-check/v19-first-use.ts
  • test/unit/application/Runtime.test.ts
  • test/unit/domain/ObservedReading.test.ts
  • src/domain/api/WriteRuntime.ts
  • scripts/check-source-backed-reference.ts
  • test/type-check/v19-subpaths.ts
  • src/domain/api/LaneRuntime.ts
  • src/domain/api/Observer.ts
  • src/domain/api/ObservedReading.ts
  • src/domain/api/ObserverRuntime.ts
  • test/unit/domain/Lane.test.ts
  • test/integration/application/GitStorage.integration.test.ts
  • test/unit/domain/ReceiptDiagnostics.test.ts
  • scripts/v19-root-declaration-gate.ts
  • test/type-check/v19-consumer.ts
  • src/domain/api/WriteReceipt.ts
  • test/unit/application/GitStorage.test.ts
  • diagnostics.ts
  • src/application/RuntimeActivity.ts
  • src/domain/api/ObservationReceipt.ts
  • src/application/RuntimeLaneAdapter.ts
  • src/application/Runtime.ts
  • test/unit/scripts/v19-public-api-boundary.test.ts
  • src/domain/api/ReadingValueRuntime.ts
  • index.ts
  • src/application/GitStorage.ts
  • test/unit/domain/Observation.test.ts
  • src/domain/api/Lane.ts
  • src/infrastructure/adapters/GitPlumbingRuntimeAdapter.ts
  • src/domain/api/Observation.ts
  • test/unit/domain/WarpFacade.test.ts
  • src/domain/api/ReadingResult.ts
🔇 Additional comments (47)
index.ts (1)

6-40: LGTM!

test/type-check/generated-users.ts (1)

1-29: LGTM!

test/type-check/v19-consumer.ts (1)

1-39: LGTM!

Also applies to: 56-86

test/type-check/v19-first-use.ts (1)

1-23: LGTM!

README.md (1)

40-40: LGTM!

Also applies to: 56-100, 109-121, 144-145, 292-296

docs/migrations/v19/README.md (1)

1-310: LGTM!

docs/topics/api/README.md (1)

6-9: LGTM!

Also applies to: 248-253, 333-335

docs/topics/reference.md (1)

25-83: LGTM!

diagnostics.ts (1)

29-32: LGTM!

Also applies to: 51-60

advanced.ts (1)

4-4: LGTM!

test/type-check/v19-subpaths.ts (1)

9-9: LGTM!

Also applies to: 21-42

scripts/check-source-backed-reference.ts (1)

182-187: LGTM!

Also applies to: 265-267

scripts/v19-root-declaration-gate.ts (1)

22-28: LGTM!

Also applies to: 57-60

test/unit/scripts/v19-public-api-boundary.test.ts (1)

7-34: LGTM!

Also applies to: 175-175, 243-248

test/unit/scripts/v19-root-declaration-gate.test.ts (1)

73-94: LGTM!

vitest.config.ts (1)

33-33: LGTM!

src/domain/api/Lane.ts (1)

1-173: LGTM!

src/domain/api/LaneRuntime.ts (1)

1-29: LGTM!

src/domain/api/PublicReceipt.ts (1)

1-5: LGTM!

src/domain/api/ReadingResult.ts (1)

3-6: LGTM!

src/domain/api/ReadingValue.ts (1)

1-3: LGTM!

src/domain/api/ReadingValueRuntime.ts (1)

1-87: LGTM!

src/domain/api/WriteReceipt.ts (1)

11-11: LGTM!

Also applies to: 28-35, 48-48

src/domain/api/WriteRuntime.ts (1)

126-126: LGTM!

Also applies to: 171-171

src/domain/api/captureCoordinate.ts (1)

2-9: LGTM!

src/domain/api/Observer.ts (1)

1-48: LGTM!

src/domain/api/ObserverRuntime.ts (1)

1-41: LGTM!

src/domain/api/Observation.ts (1)

1-211: LGTM!

src/domain/api/ObservationReceipt.ts (1)

1-116: LGTM!

test/unit/domain/Lane.test.ts (1)

1-219: LGTM!

test/unit/domain/Observation.test.ts (1)

1-302: LGTM!

test/unit/domain/ObservedReading.test.ts (1)

1-50: LGTM!

test/unit/domain/ReceiptDiagnostics.test.ts (1)

58-58: LGTM!

Also applies to: 161-161, 180-180

test/unit/domain/ReceiptOutcome.test.ts (1)

102-102: LGTM!

Also applies to: 120-120, 152-152

test/unit/domain/WarpFacade.test.ts (1)

5-7: LGTM!

Also applies to: 22-42, 308-308, 453-455

test/conformance/v18FirstUseOpticsHonesty.test.ts (1)

6-7: LGTM!

src/application/Runtime.ts (1)

1-52: LGTM!

Also applies to: 61-79

src/application/RuntimeActivity.ts (1)

1-48: LGTM!

src/application/RuntimeLaneAdapter.ts (1)

1-70: LGTM!

Also applies to: 92-114, 135-153

storage.ts (1)

1-5: LGTM!

test/unit/application/GitStorage.test.ts (1)

1-177: LGTM!

test/unit/application/Runtime.test.ts (1)

1-113: LGTM!

test/unit/application/RuntimeActivity.test.ts (1)

1-29: LGTM!

test/unit/application/RuntimeLaneAdapter.test.ts (1)

1-135: LGTM!

test/unit/application/WarpStorageRegistry.test.ts (1)

3-3: LGTM!

src/infrastructure/adapters/GitPlumbingRuntimeAdapter.ts (1)

3-3: 🗄️ Data Integrity & Integration

No change needed for GitPlumbing imports. GitPlumbingTimeHistoryAdapter.ts re-exports GitPlumbing from ./gitErrorClassification.ts, so GitStorage.ts and GitPlumbingRuntimeAdapter.ts both resolve to the same type source.

src/application/GitStorage.ts (1)

24-48: 🩺 Stability & Availability

Confirm plumbing disposal semantics with the vendored package.

plumbing is created once and passed into both history and CAS; the local adapters only call history.close(), the CAS close returned by ContentAddressableStore.createCbor(), and materialization closes. If @git-stunts/plumbing 3.2.0 exposes close()/Symbol.asyncDispose or owns file/lock handles that must be released, add an explicit disposal point for it.

Comment thread docs/topics/querying.md Outdated
Comment thread src/application/Runtime.ts
Comment thread src/application/RuntimeLaneAdapter.ts
Comment thread src/domain/api/LaneTick.ts Outdated
Comment thread src/domain/api/ObservedReading.ts
@github-actions

Copy link
Copy Markdown

Release Preflight

  • package version: 18.2.1
  • prerelease: false
  • npm dist-tag on release: latest
  • npm pack dry-run: passed
  • jsr publish dry-run: passed

If this PR is from a release/* branch and merges to main, Main Push Release Branch Check will run final preflight and create v18.2.1. A maintainer who is a JSR @git-stunts scope member must then dispatch the Release workflow manually.

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