Skip to content

feat(lab): CL-03 bounded live-route probes - #1352

Merged
Wibias merged 47 commits into
lidge-jun:devfrom
Wibias:feat/cl-03-live-route-probes
Aug 9, 2026
Merged

feat(lab): CL-03 bounded live-route probes#1352
Wibias merged 47 commits into
lidge-jun:devfrom
Wibias:feat/cl-03-live-route-probes

Conversation

@Wibias

@Wibias Wibias commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds CL-03 live manifest authority (023/024) with 10 frozen live_route_compatibility scenarios, 7-day freshness, and live-v1-default failure rules that classify auth/quota/network/transient/timeout as blockers.
  • Implements bounded live sandbox: immutable LabDestinationV1, opaque credential leases, proxy-env rejection, DNS/address pinning, connect deadlines, inert tools, and MCP lab stub.
  • Adds exact RouteSubjectV1 identity, host-issued trusted execution authority, opaque trusted-result receipts before persistence, and fail-closed route/claim applicability without changing the frozen V1 subject schema.
  • Hardens live evidence privacy: sanitized diagnostic codes only, response-header allowlist, byte-identical normative/runtime live authority gate, and atomic durable installation-salt publication.

Architectural seams

  • src/lab/subject/ — installation salt, behavior fingerprint, route subject freeze
  • src/lab/live/ — destination, sandbox, transport, manifest, executor, runner
  • src/lib/lab-live-host.ts / lab-live-execution-authority.ts — host-issued execution capability boundary
  • src/lab/observe/from-live.ts — receipt-gated live evidence persistence
  • src/lab/projection/verification.ts / verdicts.ts — fail-closed live route applicability from validated claim state
  • src/lab/conformance/fixtures/live-v1-cases.json — byte-checked runtime authority copy

Live scenarios (10)

  • responses-core.live.basic-turn
  • chat-core.live.basic-turn
  • anthropic-core.live.basic-turn
  • tools-core.live.function-round-trip
  • tools-core.live.custom-freeform-round-trip
  • codex-core.live.tool-turn
  • codex-core.live.custom-tool-turn
  • vision-core.live.synthetic-ocr
  • reasoning-core.live.replay
  • mcp-core.live.synthetic-tool

Test plan

  • bun x tsc --noEmit
  • bun test tests/lab-conformance-harness.test.ts (17/17)
  • bun test tests/lab-evidence-ledger.test.ts (37/41 — 4 Windows SQLite EPERM flakes on rebuild, pre-existing)
  • bun test tests/lab-live-probe.test.ts (19/19)
  • bun test tests/lab-live-sandbox.test.ts (17/17)
  • bun run privacy:scan
  • Latest CodeRabbit inline findings reconciled; zero unresolved review threads

Out of scope

  • CL-04 CLI/API not started
  • CL-05 UI not started
  • CL-06 Routing Profile compatibility controls not started
  • Frozen CL-00/CL-01/CL-02 semantics preserved

Summary by CodeRabbit

  • New Features
    • Added live compatibility testing across eight protocol suites and ten scenarios.
    • Added authoritative manifests, fixture tracking, digest verification, route applicability, and structured results.
    • Added secure sandboxing, destination validation, credential budgets, pinned transport, inert tools, and MCP loopback support.
    • Added persistence for live observations, artifacts, assertions, and diagnostic outcomes.
    • Added route identity, behavior fingerprinting, and claim-based verification.
  • Documentation
    • Documented implementation scope, authority rules, validation results, and remaining work.
  • Tests
    • Added coverage for execution, security, routing, persistence, failure handling, receipt integrity, and privacy protections.

Add live manifest authority, sandboxed runner with injectable transport, RouteSubjectV1 builder, live persistence seam, and projection applicability for ten frozen live_route_compatibility scenarios.
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR adds CL-03 live-route compatibility execution. It defines authoritative scenarios, immutable route identities, sandbox and transport controls, trusted evidence persistence, route applicability, projection verdicts, and validation coverage.

Changes

CL-03 live route compatibility

Layer / File(s) Summary
Authority, contracts, and scenario manifests
devlog/_plan/260807_compatibility_lab/023_live_v1_manifest_authority.md, devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json, src/lab/conformance/*, src/lab/live/types.ts, src/lab/live/manifest.ts, src/lab/live/suite-manifest.ts
Defines live authority, failure classifications, execution contracts, suite metadata, resource defaults, fixture digests, and ten compatibility scenarios.
Destination, identity, and capability controls
src/lab/live/destination.ts, src/lab/live/credential-lease.ts, src/lab/subject/*, src/lib/lab-live-*.ts, src/lib/lab-live-pinned-sender.ts, src/lib/pinned-http.ts
Adds immutable DNS-pinned destinations, scoped credential leases, behavior and route fingerprints, installation salts, trusted executors, authorized pinned requests, and connection timeouts.
Sandbox, transport, and scenario execution
src/lab/live/sandbox.ts, src/lab/live/transport.ts, src/lab/live/executor.ts, src/lab/live/runner.ts, src/lab/live/inert-tools.ts, src/lab/live/mcp-loopback.ts
Adds sandbox limits, proxy rejection, mock and pinned transports, response normalization, timeout handling, live execution, inert tools, MCP loopback, and suite aggregation.
Observation persistence and route applicability
src/lab/observe/*, src/lab/projection/*, src/lab/paths.ts, src/lab/index.ts
Persists trusted results as ledger observations, maps environmental failures to blocked outcomes, applies route claims, computes projection verdicts, and exports the new APIs.
Validation, fixtures, and implementation records
scripts/gen-live-digests.ts, tests/lab-live-*.test.ts, devlog/_plan/260807_compatibility_lab/*, structure/09_compatibility-lab.md
Adds digest generation, execution and security tests, privacy and persistence checks, CL-03 scope specifications, and validation records.

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

Sequence Diagram(s)

sequenceDiagram
  participant LiveRunner
  participant LiveExecutor
  participant PinnedTransport
  participant TrustedSender
  participant ObservationLedger
  LiveRunner->>LiveExecutor: runLiveScenario(case, route)
  LiveExecutor->>PinnedTransport: execute request with limits and lease
  PinnedTransport->>TrustedSender: send pinned GET or POST
  TrustedSender-->>PinnedTransport: return status, headers, and body
  PinnedTransport-->>LiveExecutor: return normalized transport result
  LiveExecutor-->>LiveRunner: return scenario result and classification
  LiveRunner->>ObservationLedger: persist trusted live result
Loading

Possibly related PRs

Suggested reviewers: ingwannu, lidge-jun

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 22.86% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding bounded CL-03 live-route probes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the enhancement New feature or request label Aug 9, 2026
@Wibias
Wibias marked this pull request as ready for review August 9, 2026 17:29

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 16

🤖 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 `@devlog/_plan/260807_compatibility_lab/001_pr_stack_status.md`:
- Around line 183-184: Correct both live-test result records to use the verified
totals for the 13 top-level tests in tests/lab-live-probe.test.ts and
tests/lab-live-sandbox.test.ts, or rerun both commands and record their exact
output. Update devlog/_plan/260807_compatibility_lab/001_pr_stack_status.md
lines 183-184 and
devlog/_plan/260807_compatibility_lab/054_cl03_implementation_record.md lines
50-51 consistently.

In `@devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json`:
- Around line 1-6: The live manifest currently lacks a parity check with the
runtime fixture. Update the authority-loading or conformance test flow around
loadLiveCaseAuthority() to assert that the documented manifest and
runtime-loaded cases are byte-identical, or generate the runtime copy from the
documented authority so drift is detected and prevented.

In `@src/lab/conformance/fixtures/live-v1-cases.json`:
- Around line 143-153: Update vision-core.live.synthetic-ocr in
src/lab/conformance/fixtures/live-v1-cases.json lines 143-153 and
devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json lines 143-153 so
requirements.upstreamProtocols uses ["openai-responses"], matching the existing
Responses-shaped upstream_response fixture; keep both manifest copies
byte-identical and do not re-author the fixture.
- Around line 34-50: Remove the redundant maxArtifactBytes entry from
executionLimits, retaining perArtifactBytes as the single typed and observed
per-artifact limit. Apply the identical change in
src/lab/conformance/fixtures/live-v1-cases.json (lines 34-50) and
devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json (lines 34-50); keep
artifactPolicy unchanged.

In `@src/lab/live/destination.ts`:
- Around line 93-95: Update the catch block around resolvePublicAddresses in the
destination resolution flow to throw LabDestinationError with a fixed, host-free
message instead of error.message. Preserve the existing "network_blocked" code
and match the fixed-string pattern used by the other LabDestinationError
instances; do not propagate external error text into diagnostics.
- Around line 117-121: Update assertDestinationAddressSet so both
destination.addresses and addresses are passed through canonicalAddresses before
mapping and joining them for comparison. Remove the direct map/sort
canonicalization on side a, preserving the existing mismatch error and canonical
representation.

In `@src/lab/live/executor.ts`:
- Around line 200-205: Update the catch path in the live executor around
classifyTransportError and complete so diagnostics contains only an allowlisted
error code, never error.name or error.message. Preserve raw errors only through
a non-exported local logging path that applies secret redaction, and ensure
complete cannot serialize the raw error or provider response details.
- Around line 159-163: Move the routePreconditionFailure check in the live-run
flow before createLabDestination and buildRouteSubjectV1. Return the existing
inconclusive complete result immediately when a precondition fails, preserving
its current fields and ensuring destination construction only occurs for
approved routes.

In `@src/lab/live/types.ts`:
- Around line 184-197: Narrow LiveScenarioRunResult.classification from string
to FailureClassification and import FailureClassification in the live
observation conversion flow. Update from-live.ts to use the typed classification
with explicit in checks, preserving the existing "protocol_failure" route
attribution and preventing environment/test-fault or inconclusive
classifications from being stored as route failures.

In `@src/lab/observe/from-live.ts`:
- Around line 31-33: Replace the caller-controlled executionAuthority check in
observationFromLiveResult with validation of a module-private trusted-result
receipt created by the executor. Bind and verify the receipt against the
canonical authority digest, scenario ID, suite ID, and routeSubject before any
artifact writes, rejecting missing or mismatched receipts and case/authority
combinations; keep the receipt inaccessible to public callers.

In `@src/lab/projection/verification.ts`:
- Around line 55-72: Update RouteSubjectV1 to persist canonical route claims,
then change routeSubjectApplicableToRequirements to derive required-claim
applicability exclusively from that subject and remove caller-controlled
routeRequiredClaims input. In the live_route_compatibility verification flow,
return canVerify: false when opts.subject is absent or has subjectKind
"protocol" instead of evaluating live-route evidence. Add coverage for omitted
claims and protocol subjects.
- Around line 102-105: Update the requiredClaims handling in the scenario
verification flow to default to an empty array only when row.requiredClaims is
undefined; when the field is present, call parseStringArray and return null if
parsing fails. Preserve the existing valid-array behavior and fail-closed
handling used by the other required arrays.

In `@src/lab/subject/installation-salt.ts`:
- Around line 10-21: Update readInstallationSalt to create the salt file
exclusively instead of using the existsSync check-then-write flow. Handle an
EEXIST failure by re-reading and validating the existing file, while preserving
the current permissions, salt length validation, and returned bytes; add a
focused regression test alongside the existing salt/subject tests covering
repeated reads for the same configDir.

In `@src/lib/lab-live-execution-authority.ts`:
- Around line 23-35: Remove the exported createTrustedLabRouteExecutor factory
as a caller-forgeable trust boundary, and move trusted-executor capability
issuance into the trusted host integration that can verify actual sandbox
enforcement. Update the TRUSTED_EXECUTORS registration flow and consumers such
as the live executor’s trusted_route handling to accept only host-issued
capabilities, while preserving boundary validation internally. Add a regression
test proving adapters or other untrusted runtime code cannot construct a trusted
capability.

In `@src/lib/lab-live-pinned-sender.ts`:
- Around line 24-27: Update the response-header handling in the pinned sender to
copy only the allowlisted headers required by live assertions, currently
`content-type`, instead of iterating over every provider header. Preserve
case-insensitive lookup by normalizing the selected header name, and ensure no
credential, cookie, account, organization, or rate-limit headers enter
`LabTransportResponse.headers`.
- Around line 14-20: Propagate the configured connect timeout through the pinned
live transport: add a connect-timeout field to PinnedHttpRequestOptions, pass
limits.connectTimeoutMs from the options created in the pinned sender, and
enforce it during DNS lookup and request connection before idleTimeoutMs begins.
Preserve the existing connect_timeout boundary advertisement only once this
deadline is actually enforced.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 99a0fef2-89e3-42f6-bae0-2e541b12658b

📥 Commits

Reviewing files that changed from the base of the PR and between 4f746d1 and ffc9958.

📒 Files selected for processing (31)
  • devlog/_plan/260807_compatibility_lab/001_pr_stack_status.md
  • devlog/_plan/260807_compatibility_lab/023_live_v1_manifest_authority.md
  • devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json
  • devlog/_plan/260807_compatibility_lab/054_cl03_implementation_record.md
  • scripts/gen-live-digests.ts
  • src/lab/conformance/fixtures/live-v1-cases.json
  • src/lab/conformance/types.ts
  • src/lab/index.ts
  • src/lab/live/credential-lease.ts
  • src/lab/live/destination.ts
  • src/lab/live/executor.ts
  • src/lab/live/inert-tools.ts
  • src/lab/live/manifest.ts
  • src/lab/live/mcp-loopback.ts
  • src/lab/live/runner.ts
  • src/lab/live/sandbox.ts
  • src/lab/live/suite-manifest.ts
  • src/lab/live/transport.ts
  • src/lab/live/types.ts
  • src/lab/observe/from-conformance.ts
  • src/lab/observe/from-live.ts
  • src/lab/paths.ts
  • src/lab/projection/verification.ts
  • src/lab/subject/behavior-fingerprint.ts
  • src/lab/subject/installation-salt.ts
  • src/lab/subject/route-subject.ts
  • src/lib/lab-live-execution-authority.ts
  • src/lib/lab-live-pinned-sender.ts
  • tests/lab-live-probe.test.ts
  • tests/lab-live-review-regressions.test.ts
  • tests/lab-live-sandbox.test.ts

Comment thread devlog/_plan/260807_compatibility_lab/001_pr_stack_status.md Outdated
Comment thread devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json
Comment thread src/lab/conformance/fixtures/live-v1-cases.json
Comment thread src/lab/conformance/fixtures/live-v1-cases.json
Comment thread src/lab/live/destination.ts
Comment thread src/lab/projection/verification.ts Outdated
Comment thread src/lab/subject/installation-salt.ts Outdated
Comment thread src/lib/lab-live-execution-authority.ts Outdated
Comment thread src/lib/lab-live-pinned-sender.ts
Comment thread src/lib/lab-live-pinned-sender.ts
@Wibias
Wibias marked this pull request as draft August 9, 2026 17:51

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 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 `@src/lab/subject/installation-salt.ts`:
- Around line 21-25: Update the installation-salt creation flow around
writeFileSync and readExisting so the salt is fully written to a unique
same-directory staging file before publishing the final path. Publish atomically
(for example, linkSync) and treat an existing final path as another process’s
winner, then read that completed file; ensure cleanup handles staging files. Add
a multiprocess initialization regression test verifying both first-run runners
return the same persisted 32-byte salt.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: fa0ed991-a3ce-4f53-805c-3380184f7dda

📥 Commits

Reviewing files that changed from the base of the PR and between ffc9958 and 30f2df0.

📒 Files selected for processing (2)
  • src/lab/live/destination.ts
  • src/lab/subject/installation-salt.ts

Comment thread src/lab/subject/installation-salt.ts Outdated

Wibias commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@Wibias
Wibias marked this pull request as ready for review August 9, 2026 19:12

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 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 `@src/lab/live/executor.ts`:
- Around line 38-67: The trusted receipt currently authenticates only route
metadata, allowing persisted execution outcomes to be mutated after sealing.
Update receiptFor and TrustedLiveResultReceipt to include a canonical digest
covering every persisted LiveScenarioRunResult field, recompute it in
assertTrustedLiveResultReceipt, and reject mismatches before observation
persistence; add a regression test that mutates passed or an assertion result
after sealing and verifies persistence fails.

In `@src/lab/observe/from-live.ts`:
- Around line 39-51: Update failureFromLiveResult to persist the selected rule’s
retry policy instead of always setting retryable to false. Propagate the rule’s
retry state through LiveScenarioRunResult or resolve the selected FailureRule
during persistence, mapping "bounded" to retryable true while preserving
terminal failures as false.

In `@src/lab/subject/installation-salt.ts`:
- Around line 47-49: Update the successful publication path in the
installation-salt flow after linkSync to open dirname(path), flush the directory
using the existing fsyncDir pattern, and only then return the salt. Add a
crash-consistency regression test or document the supported filesystem guarantee
as requested.

In `@src/lib/pinned-http.ts`:
- Around line 158-174: Update the connection-timeout failure path in the pinned
HTTP request flow around the socket connect timer so it produces a
TransportError with status "connect_timeout" instead of a generic Error. Ensure
this typed error is preserved through pinnedHttpPost/pinnedHttpGet and
createLabAuthorizedPinnedSender so the executor classifies the failure as
connect_timeout.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6ae0fb1f-43e0-4dba-b386-39929dd778da

📥 Commits

Reviewing files that changed from the base of the PR and between 30f2df0 and a80f79a.

📒 Files selected for processing (21)
  • devlog/_plan/260807_compatibility_lab/001_pr_stack_status.md
  • devlog/_plan/260807_compatibility_lab/024_live_v1_cases.json
  • devlog/_plan/260807_compatibility_lab/054_cl03_implementation_record.md
  • src/lab/conformance/fixtures/live-v1-cases.json
  • src/lab/conformance/types.ts
  • src/lab/live/destination.ts
  • src/lab/live/executor.ts
  • src/lab/live/manifest.ts
  • src/lab/live/transport.ts
  • src/lab/live/types.ts
  • src/lab/observe/from-live.ts
  • src/lab/projection/verdicts.ts
  • src/lab/projection/verification.ts
  • src/lab/subject/installation-salt.ts
  • src/lib/lab-live-execution-authority.ts
  • src/lib/lab-live-host.ts
  • src/lib/lab-live-pinned-sender.ts
  • src/lib/pinned-http.ts
  • structure/09_compatibility-lab.md
  • tests/lab-live-probe.test.ts
  • tests/lab-live-sandbox.test.ts

Comment thread src/lab/live/executor.ts Outdated
Comment thread src/lab/observe/from-live.ts Outdated
Comment thread src/lab/subject/installation-salt.ts
Comment thread src/lib/pinned-http.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 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 `@src/lab/observe/from-live.ts`:
- Around line 39-45: Update the live execution receipt flow so the exact failure
rule selected by executor.ts is stored as a trusted rule ID or retry policy,
then have failureFromLiveResult() reuse that value during persistence. Remove
the independent selectedFailureRule() classification fallback and do not
rederive the persisted retryability from result.classification.

In `@src/lab/subject/installation-salt.ts`:
- Around line 23-30: Update fsyncDirectory to recognize and ignore
platform/filesystem errors indicating directory fsync is unsupported, treating
the already completed atomic link plus staging-inode sync as sufficient durable
publication. Preserve fail-closed behavior for unexpected I/O errors, and
document the supported-runtime/filesystem cases handled as unsupported so the
caller does not report harness_failure after publication.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7b6d8d97-ccb8-4834-8204-43e640a18d02

📥 Commits

Reviewing files that changed from the base of the PR and between a80f79a and d53fde7.

📒 Files selected for processing (4)
  • src/lab/observe/from-live.ts
  • src/lab/subject/installation-salt.ts
  • src/lib/lab-live-pinned-sender.ts
  • src/lib/pinned-http.ts

Comment thread src/lab/observe/from-live.ts Outdated
Comment thread src/lab/subject/installation-salt.ts Outdated
@Wibias
Wibias merged commit 68c71a4 into lidge-jun:dev Aug 9, 2026
38 of 40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant