Skip to content

SDK context-safe recovery, atomic mutations, and portable coverage - #990

Merged
unbraind merged 2 commits into
mainfrom
feat/sdk-context-mutation-portability
Aug 12, 2026
Merged

unbraind merged 2 commits into
mainfrom
feat/sdk-context-mutation-portability

Conversation

@unbraind

@unbraind unbraind commented Aug 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • add a public grammar-aware recovery primitive so global option values never become help command names
  • reject ambiguous files/docs add-and-remove batches before item or history mutation and expose the primitive through the packed SDK
  • migrate 45 inline ENOENT catches to explicit optional-absence or exact-missing contracts and ratchet the raw catch census to zero
  • make Windows retry/path assertions platform-native and keep assertion output visible in coverage shard logs
  • make local coverage report independent test and exact-threshold verdicts, with a real all-package install budget

PM lineage

Verification

  • 486 test files and 7,251 tests pass
  • exact coverage is 100/100/100/100 with zero uncovered counts
  • lint, duplicate detection, contracts, public SDK surface, 100 percent docstrings, package boundaries, token/context gates, graph and record assurances pass
  • tracked-secret scan passes and pnpm audit reports no known vulnerabilities
  • fresh temporary tracker accepted both global-flag placements, atomic no-write refusal, valid follow-up mutations, packed SDK import, npx, and bunx
  • pm-changelog 2026.8.12 check reports CHANGELOG.md current

Closes #984
Closes #989

Summary by Sourcery

Enforce context-safe recovery and atomic linked-artifact mutations across the SDK and CLI, while tightening filesystem absence contracts and improving coverage gating behavior.

New Features:

  • Expose a grammar-aware recovery command resolver in the SDK so agents and CLI consistently infer the subcommand without leaking global option values.
  • Introduce a public linked-artifact mutation guard that rejects ambiguous add/remove/migrate batches before any item or history changes are applied.

Enhancements:

  • Refine test runner coverage mode to run coverage thresholds independently of test execution and return distinct exit codes and messages for test, coverage, and combined failures.
  • Standardize optional-file handling by centralizing ENOENT/ENOTDIR and missing-entry detection into shared helpers and applying them across locks, checkpoints, history, governance, telemetry, merge fences, and other subsystems.
  • Document new recovery and linked-artifact mutation contracts in the SDK guide, including guarantees about non-ambiguous transactions and help example resolution.
  • Adjust CI coverage-shard configuration to use a default reporter for more visible assertion output in shard logs.

Tests:

  • Add unit tests covering ambiguous files/docs add-and-remove/migrate batches, SDK mutation guard behavior, recovery command resolution across global flags, absence-tolerance gate CLI flags, and new test runner coverage verdict semantics.
  • Extend existing tests to reflect platform-sensitive recovery suggestions and updated filesystem absence helpers.

Summary by cubic

Makes SDK and CLI mutations safer and error guidance accurate: grammar-aware command recovery, atomic linked-artifact mutations, unified file-absence handling, and portable, exact coverage reporting.

  • New Features

  • Bug Fixes

    • Unified optional/missing file semantics with isFileAbsentError and isFileMissingError; removed 45 ENOENT-only catches and added a zero-tolerance gate. (pm-6xlyss)
    • Windows CI reliability: platform-native errno/path assertions and visible shard assertion output. (pm-j668gl)
    • Coverage is portable and independent of test success; exact-threshold verdicts and a real all-package install budget; CI adds default reporter for shard logs. (pm-h9gsix)

Written for commit 60e1ffc. Summary will update on new commits.

Review in cubic

Unify exact and optional filesystem absence semantics across CLI and SDK readers, ratchet raw ENOENT catches to zero, and expose the reviewed classifiers.

Add grammar-aware recovery command resolution, atomic linked-artifact conflict refusal, packed SDK exports, cross-platform nightly fixes, and complete coverage verdict reporting.

Tracks pm-lph0y6, pm-c6urop, pm-6xlyss, pm-j668gl, and pm-h9gsix.

@sourcery-ai sourcery-ai 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.

Sorry @unbraind, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@sourcery-ai

sourcery-ai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Reviewer's Guide

This PR hardens SDK and CLI behavior around filesystem absence and recovery semantics, adds an explicit conflict-check primitive for linked artifact mutations, refactors test runner child process handling with explicit combined coverage verdicts, and updates docs, contracts, and tests to reflect the new guarantees and public APIs.

Sequence diagram for linked artifact mutation conflict checking

sequenceDiagram
  actor User
  participant CLI_files_command as CLI_pm_files
  participant SDK_runFiles as sdk_runFiles
  participant AssertConflict as assertLinkedArtifactMutationIsUnambiguous
  participant ItemStore

  User->>CLI_files_command: pm files --add pathA --remove pathA
  CLI_files_command->>SDK_runFiles: runFiles(options)
  SDK_runFiles->>AssertConflict: assertLinkedArtifactMutationIsUnambiguous(adds, removes, migrations)
  alt [no conflicting normalized paths]
    AssertConflict-->>SDK_runFiles: return
    SDK_runFiles->>ItemStore: applyLinkedArtifactMutation(adds, removes, migrations)
    ItemStore-->>SDK_runFiles: ok
    SDK_runFiles-->>CLI_files_command: FilesResult
    CLI_files_command-->>User: mutation applied
  else [same path added and removed]
    AssertConflict-->>SDK_runFiles: throw PmCliError linked_artifact_mutation_conflict
    SDK_runFiles-->>CLI_files_command: error
    CLI_files_command-->>User: refusal, suggest separate add/remove commands
  end
Loading

Sequence diagram for context-safe recovery command name resolution

sequenceDiagram
  participant RecoveryPayload as PmCliErrorRecoveryPayload
  participant ErrorGuidance as inferCommandNameFromRecovery
  participant ResolveName as resolveRecoveryCommandName
  participant BootstrapParser as parseBootstrapCommandName

  RecoveryPayload-->>ErrorGuidance: normalized_args
  ErrorGuidance->>ResolveName: resolveRecoveryCommandName(normalized_args)
  ResolveName->>BootstrapParser: parseBootstrapCommandName(invocationArgv)
  alt [global options before or after command]
    BootstrapParser-->>ResolveName: commandName (e.g. files)
    ResolveName-->>ErrorGuidance: commandName
    ErrorGuidance-->>ErrorGuidance: renderPmCommand(commandName, flags)
  else [no subcommand found]
    BootstrapParser-->>ResolveName: undefined
    ResolveName-->>ErrorGuidance: undefined
  end
Loading

File-Level Changes

Change Details Files
Refactor the test runner to use a shared child-process helper and to report independent/combined verdicts for tests and coverage.
  • Introduce runChild helper wrapping spawn with consistent exit-code handling.
  • Update build, vitest, and coverage-threshold invocations in scripts/run-tests.mjs to use runChild.
  • Change coverage mode exit-code logic to distinguish: tests fail, coverage passes; tests pass, coverage fail; both fail; and update tests to assert new behavior.
scripts/run-tests.mjs
tests/unit/scripts/run-tests.spec.ts
.github/workflows/ci.yml
Introduce a grammar-aware recovery command resolver so global option values are never misinterpreted as command names, and wire it through CLI error guidance and SDK agent primitives.
  • Add resolveRecoveryCommandName using parseBootstrapCommandName in SDK agent command-recovery.
  • Use resolveRecoveryCommandName in CLI error-guidance instead of naive first-non-flag heuristics.
  • Extend tests to verify recovery examples do not leak pm-path values and that command resolution works across global flags.
  • Document the new primitive and recovery behavior in SDK.md.
src/sdk/agent/command-recovery.ts
src/cli/error-guidance.ts
tests/unit/cli/error-guidance.spec.ts
tests/unit/sdk/agent-command-primitives.spec.ts
docs/SDK.md
Add a public primitive to reject ambiguous linked artifact mutations that add and remove the same normalized path in one transaction, and integrate it into files/docs/deps workflows and documentation.
  • Implement assertLinkedArtifactMutationIsUnambiguous in linked-artifacts, performing path migration, set comparison, and sorted conflict reporting, throwing a structured PmCliError.
  • Call assertLinkedArtifactMutationIsUnambiguous from runLinkedArtifacts so conflicting add/remove batches fail before item or history mutation.
  • Add unit tests for files/docs commands and direct primitive behavior to confirm history immutability on conflict and detailed error context.
  • Expose the primitive via src/sdk/index and describe its contract and behavior in SDK.md, including PM lineage and refusal semantics.
src/sdk/linked-artifacts.ts
src/sdk/index.ts
tests/unit/commands/files-docs-command.spec.ts
docs/SDK.md
.agents/pm/*
Centralize filesystem absence/missing-entry semantics via isFileAbsentError and isFileMissingError and migrate callers away from ad-hoc ENOENT checks.
  • Introduce isFileMissingError in fs-utils and redefine isFileAbsentError in terms of it plus ENOTDIR.
  • Replace local isErrno/isNodeErrorWithCode helpers with isFileMissingError/isFileAbsentError across lock GC, checkpoint GC, drift scan, governance GC, workspace transaction GC, vector-stores, relationship-history, telemetry, merge/install, validate/governance, workspace-snapshot, workspace-transaction, annotations/comments/guide/workspace-memory/context-signal-store/extension-managed-state/query/activity/schema-migration/workspace, compile-cache, item-metadata-cache, test/execution, etc.
  • Update absence-tolerance gate messaging and CLI flags to reference isFileAbsentError/isFileMissingError, add a root flag, and adjust tests and baselines to expect the new behavior and stricter zero-inline-ENOENT policy.
  • Extend fs-utils unit tests to cover isFileMissingError and absence semantics.
src/core/fs/fs-utils.ts
scripts/release/absence-tolerance-gate.mjs
scripts/release/absence-tolerance-baseline.json
src/core/lock/lock-gc.ts
src/core/checkpoint/checkpoint-gc.ts
src/core/search/vector-stores.ts
src/core/history/drift-scan.ts
src/sdk/governance/gc.ts
src/sdk/workspace-transaction-gc.ts
src/core/lock/lock.ts
src/core/telemetry/runtime.ts
src/sdk/merge/install.ts
src/sdk/workspace-snapshot.ts
src/sdk/governance/health.ts
src/sdk/relationship-history.ts
src/core/history/drift-cache.ts
src/core/store/item-metadata-cache.ts
src/sdk/annotations.ts
src/sdk/extension/install-runtime.ts
src/sdk/governance/validate.ts
src/sdk/guide.ts
src/sdk/test/execution.ts
src/sdk/workspace-memory.ts
src/sdk/workspace-transaction.ts
src/sdk/comments.ts
src/sdk/compile-cache.ts
src/sdk/context-signal-store.ts
src/sdk/extension/managed-state.ts
src/sdk/query/activity.ts
src/sdk/schema-migration.ts
src/sdk/workspace.ts
tests/unit/core/fs/fs-utils.spec.ts
tests/unit/scripts/release/absence-tolerance-gate.spec.ts
scripts/release/surface-replication-sets.json
Adjust various contracts, tests, and timeouts to align with new behavior and platform-specific details.
  • Make register-commands mutation command recovery suggestion platform-aware between POSIX and Windows shells.
  • Increase extension command runtime test timeout to accommodate slower CI.
  • Fix validate-command collections cache key to use path.join for portability.
  • Ensure coverage shard workflow includes the default reporter for human-readable logs.
  • Update generated catalogs, fixtures, and public-surface metadata to include new exports and error codes.
tests/unit/commands/register-commands.spec.ts
tests/unit/extensions/extension-command.spec.ts
tests/unit/commands/validate-command.spec.ts
.github/workflows/ci.yml
src/sdk/generated/generated-error-code-catalog-part-1.ts
tests/fixtures/contracts/full.json
sdk/public-surface.json

Assessment against linked issues

Issue Objective Addressed Explanation
#984 Ensure that recovery help examples derive the command name from parsed/normalized arguments so that global option values (e.g., --pm-path) are never treated as the command, regardless of flag ordering. ✅
#989 Resolve the failure in the nightly validation workflow for the windows-latest / Node 24 job so the pipeline can reliably pass again. ✅

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c4c6e641-9070-43c1-b646-d53c8d05e402

📥 Commits

Reviewing files that changed from the base of the PR and between 49f54ec and bdd380a.

⛔ Files ignored due to path filters (1)
  • src/sdk/generated/generated-error-code-catalog-part-1.ts is excluded by !**/generated/**
📒 Files selected for processing (60)
  • .agents/pm/chores/pm-j668gl.toon
  • .agents/pm/history/pm-6xlyss.jsonl
  • .agents/pm/history/pm-c6urop.jsonl
  • .agents/pm/history/pm-h9gsix.jsonl
  • .agents/pm/history/pm-j668gl.jsonl
  • .agents/pm/history/pm-lph0y6.jsonl
  • .agents/pm/issues/pm-6xlyss.toon
  • .agents/pm/issues/pm-c6urop.toon
  • .agents/pm/issues/pm-h9gsix.toon
  • .agents/pm/issues/pm-lph0y6.toon
  • .github/workflows/ci.yml
  • docs/SDK.md
  • scripts/release/absence-tolerance-baseline.json
  • scripts/release/absence-tolerance-gate.mjs
  • scripts/release/surface-replication-sets.json
  • scripts/run-tests.mjs
  • sdk/public-surface.json
  • src/cli/error-guidance.ts
  • src/core/checkpoint/checkpoint-gc.ts
  • src/core/fs/fs-utils.ts
  • src/core/history/drift-cache.ts
  • src/core/history/drift-scan.ts
  • src/core/lock/lock-gc.ts
  • src/core/lock/lock.ts
  • src/core/search/vector-stores.ts
  • src/core/store/item-metadata-cache.ts
  • src/core/telemetry/runtime.ts
  • src/sdk/agent/command-recovery.ts
  • src/sdk/annotations.ts
  • src/sdk/comments.ts
  • src/sdk/compile-cache.ts
  • src/sdk/context-signal-store.ts
  • src/sdk/extension/install-runtime.ts
  • src/sdk/extension/managed-state.ts
  • src/sdk/governance/gc.ts
  • src/sdk/governance/health.ts
  • src/sdk/governance/validate.ts
  • src/sdk/guide.ts
  • src/sdk/index.ts
  • src/sdk/linked-artifacts.ts
  • src/sdk/merge/install.ts
  • src/sdk/query/activity.ts
  • src/sdk/relationship-history.ts
  • src/sdk/schema-migration.ts
  • src/sdk/test/execution.ts
  • src/sdk/workspace-memory.ts
  • src/sdk/workspace-snapshot.ts
  • src/sdk/workspace-transaction-gc.ts
  • src/sdk/workspace-transaction.ts
  • src/sdk/workspace.ts
  • tests/fixtures/contracts/full.json
  • tests/unit/cli/error-guidance.spec.ts
  • tests/unit/commands/files-docs-command.spec.ts
  • tests/unit/commands/register-commands.spec.ts
  • tests/unit/commands/validate-command.spec.ts
  • tests/unit/core/fs/fs-utils.spec.ts
  • tests/unit/extensions/extension-command.spec.ts
  • tests/unit/scripts/release/absence-tolerance-gate.spec.ts
  • tests/unit/scripts/run-tests.spec.ts
  • tests/unit/sdk/agent-command-primitives.spec.ts

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added clearer validation for linked-resource changes, rejecting conflicting add/remove paths before any changes are applied.
    • Improved command recovery so global options and their values are interpreted correctly.
    • Added structured error guidance for conflicting linked-resource updates.
  • Bug Fixes

    • Improved handling of missing files while preserving errors caused by corrupted or invalid paths.
    • Enhanced cross-platform command, path, and test behavior.
  • CI Improvements

    • Coverage checks now run independently and report whether test, coverage, or both stages failed.

Walkthrough

The PR centralizes filesystem absence handling, adds atomic linked-artifact conflict validation, fixes recovery command parsing around global options, and separates test and coverage results. It also updates CI reporting, portability tests, SDK contracts, documentation, and project records.

Changes

Filesystem absence handling

Layer / File(s) Summary
Centralized filesystem absence classification
src/core/fs/fs-utils.ts, src/core/**, src/sdk/**, scripts/release/*, tests/unit/core/fs/*, tests/unit/scripts/release/*
Adds isFileMissingError for ENOENT and keeps isFileAbsentError inclusive of ENOTDIR. Core and SDK catches now use the shared classifiers. The release baseline allows zero direct ENOENT absence catches.

Linked-artifact mutation validation

Layer / File(s) Summary
Linked-artifact mutation conflict contract
src/sdk/linked-artifacts.ts, src/sdk/index.ts, sdk/public-surface.json, tests/fixtures/contracts/full.json, tests/unit/commands/files-docs-command.spec.ts, docs/SDK.md
Normalized paths that appear in both add and remove sets now fail before item or history writes. The new linked_artifact_mutation_conflict contract and SDK export are covered by tests.

Recovery command resolution

Layer / File(s) Summary
Grammar-aware recovery command resolution
src/sdk/agent/command-recovery.ts, src/cli/error-guidance.ts, tests/unit/sdk/agent-command-primitives.spec.ts, tests/unit/cli/error-guidance.spec.ts, docs/SDK.md
Recovery guidance now resolves commands with bootstrap grammar and ignores global option values such as --pm-path. Tests cover option ordering, missing commands, and platform-specific quoting.

Test and coverage portability

Layer / File(s) Summary
Test and coverage execution portability
scripts/run-tests.mjs, .github/workflows/ci.yml, tests/unit/scripts/run-tests.spec.ts, tests/unit/extensions/extension-command.spec.ts, tests/unit/commands/*, .agents/pm/*
Child-process execution uses a shared helper. Coverage runs after test failures and returns distinct codes for test-only, coverage-only, and combined failures. CI retains default and blob reporters. Portability tests use platform-native paths, quoting, and longer installation timeouts.

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

Possibly related PRs

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The linked-artifact mutation, ENOENT migration, and coverage-runner changes are not covered by the linked issues #984 and #989. Remove unrelated changes or link the issues that define the mutation, filesystem absence, and coverage requirements.
Docstring Coverage ⚠️ Warning Docstring coverage is 38.46% 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
Linked Issues check ✅ Passed The changes address #984 recovery parsing and #989 Windows portability and validation reliability objectives.
Title check ✅ Passed The title clearly summarizes the main recovery, mutation safety, and coverage portability changes.
Description check ✅ Passed The description directly explains the implemented recovery, mutation, filesystem, portability, coverage, and verification changes.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch

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.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 59 minutes.

@codspeed

codspeed Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 11 untouched benchmarks


Comparing feat/sdk-context-mutation-portability (60e1ffc) with main (49f54ec)

Open in CodSpeed

@codecov

codecov Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@unbraind

Copy link
Copy Markdown
Owner Author

Acknowledged: the guide accurately captures the broad SDK/CLI tranche and the linked #984/#989 objectives. The exact-head hosted gates are green, including Windows, coverage, static, security, and runtime smoke.

@unbraind

Copy link
Copy Markdown
Owner Author

Triaged the two warnings. The repository-native docstring gates report 100% source/export/member coverage, and the broader changes are explicitly governed by PM items pm-c6urop, pm-6xlyss, and pm-h9gsix linked in the PR body alongside pm-lph0y6 and pm-j668gl. CodeRabbit generated no actionable inline findings; its full-review attempt was rate limited.

@unbraind

Copy link
Copy Markdown
Owner Author

Acknowledged as a provider limitation: this review request was rate limited and produced no substantive review. It is not being counted as approval; exact-head CI and the other available review surfaces are assessed independently.

@unbraind

Copy link
Copy Markdown
Owner Author

Acknowledged: the exact-head benchmark report confirms all 11 tracked benchmarks are unchanged.

@unbraind

Copy link
Copy Markdown
Owner Author

Acknowledged: Codecov confirms every modified coverable line is tested and all tests passed; the repository-wide local coverage gate also reports 100/100/100/100.

@unbraind

Copy link
Copy Markdown
Owner Author

Sourcery review limitation acknowledged: the provider hit its weekly diff-character limit and returned no findings. This is recorded as unavailable review coverage, not approval; the generated guide and all exact-head executable gates were reviewed separately.

Record exact-head hosted evidence, resolutions, and released ownership for the five SDK/CLI items. Regenerate the managed changelog with the latest pm-changelog package and preserve working main-branch tracker links.
@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.


Your included review limit is currently reached under our Fair Usage Limits Policy. This review may still proceed through usage-based billing if eligible. Your next included review will be available in 42 minutes.

@unbraind

Copy link
Copy Markdown
Owner Author

Final-head request acknowledged: CodeRabbit remained rate limited and produced no new actionable review. This is retained as an external reviewer limitation, not approval; every executable check on 60e1ffc passed.

@unbraind

Copy link
Copy Markdown
Owner Author

Final-head follow-up for CodeRabbit's edited summary (60e1ffc): zero inline findings were generated. The two heuristic warnings remain rejected with repository-native evidence: all source/export/member docstring gates passed at 100%, and the broad scope is governed by the five PM records linked in the PR body. The final exact-head static gate passed.

@unbraind

Copy link
Copy Markdown
Owner Author

Final-head follow-up for CodSpeed's edited report (60e1ffc): acknowledged; all 11 tracked benchmarks remain unchanged and the final benchmark check passed.

@unbraind

Copy link
Copy Markdown
Owner Author

Final-head follow-up for Codecov's edited report (60e1ffc): acknowledged; all modified coverable lines remain covered, all four shards and the aggregate coverage gate passed, and local repository-wide coverage is exact 100/100/100/100.

@unbraind

Copy link
Copy Markdown
Owner Author

Final review-provider disposition at 60e1ffc: Sourcery's check reached success but its only review body is the already-acknowledged weekly rate-limit notice; CodeRabbit is rate limited; Greptile emitted no comment, review, thread, or check surface after two explicit requests. These unavailable providers are not counted as approvals. The fresh inventory has zero review threads and all available executable checks are green.

@unbraind
unbraind merged commit d775585 into main Aug 12, 2026
32 checks passed
@unbraind
unbraind deleted the feat/sdk-context-mutation-portability branch August 12, 2026 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant