Skip to content

Preserve extension command contracts and recovery fidelity - #511

Merged
unbraind merged 8 commits into
mainfrom
feat/extension-contract-fidelity-recovery
Jul 11, 2026
Merged

unbraind merged 8 commits into
mainfrom
feat/extension-contract-fidelity-recovery

Conversation

@unbraind

@unbraind unbraind commented Jul 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • synthesize usable command contracts for importer/exporter registrations that omit optional metadata
  • inherit canonical help/flag contracts for verified same-extension flattened aliases
  • preserve nested extension failure recovery boundaries and honor extension flag arity in retry suggestions
  • update SDK harness and activation-summary expectations; refresh pm-changelog to 2026.7.11

Verification

  • pnpm lint
  • pnpm typecheck
  • node scripts/run-tests.mjs coverage — 5,533/5,533, 100/100/100/100
  • fresh tarball install and TypeScript extension dogfood in /tmp/pm-extension-contract-proof
  • pm validate --check-resolution --check-history-drift --json (history drift clean; known legacy resolution warnings)
  • pm health --check-only --summary --json
  • pnpm audit --audit-level moderate
  • pnpm changelog:pm:check
  • local Greptile review, feedback fixed, second review clean

Tracks pm-s9iu / GH-503, pm-0mjz / GH-504, pm-o71e / GH-505, and pm-9qcr / GH-507.


Summary by cubic

Preserves extension command contracts and recovery fidelity. Flattened aliases inherit canonical flags; importer/exporters get default contracts (even when options are omitted or {}); nested errors keep their recovery; and suggested retries use extension flag arity with path‑exact command matching (longest descriptor) and treat required untyped flags as value‑taking. Also syncs with main, keeps fixes under Unreleased, bumps pm-changelog to 2026.7.11, and removes stale tracker references from the README.

Written for commit dce511d. Summary will update on new commits.

Review in cubic

Inherit canonical option metadata across flattened aliases, synthesize usable contracts for handler-only importer/exporter registrations, preserve nested failure recovery boundaries, and honor extension flag arity in suggested retries.\n\nAdd SDK, loader, activation-summary, and CLI regression coverage; verify 5,532 tests at 100/100/100/100 coverage plus fresh installed-package dogfood. Update managed pm-changelog to 2026.7.11.\n\nTracks pm-s9iu, pm-0mjz, pm-o71e, and pm-9qcr.
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@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 please review the current head.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 59 minutes.

@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR updates extension import/export registration, canonical alias help resolution, CLI recovery suggestions, related tests, release documentation, managed-extension metadata, and PM tracking records.

Changes

Extension command behavior

Layer / File(s) Summary
Import/export command registration
src/core/extensions/loader.ts, tests/unit/core/extensions/activation-summary.spec.ts, tests/unit/extensions/extension-loader.spec.ts, tests/unit/sdk/*
Import/export commands now use resolved default options, validate normalized flags, conditionally attach metadata, and appear in activation registration summaries.
Canonical alias help resolution
src/cli/extension-command-help.ts, src/cli/main.ts, tests/unit/extensions/extension-loader.spec.ts
Flattened extension aliases resolve canonical command metadata and flags through runtime-generated alias mappings.
Extension-aware recovery retries
src/cli/main.ts, tests/unit/cli/cli-main-errors.spec.ts
Recovery suppresses retries for nested extension failures and infers whether missing extension flags require values.
Release documentation
CHANGELOG.md, README.md
The changelog records the fixes, while README sections for deprecated integrations, release automation, and tracker references are removed.

Project tracking metadata

Layer / File(s) Summary
Managed extension version metadata
.agents/pm/extensions/.managed-extensions.json
The pm-changelog managed extension version and update timestamps are refreshed.
PM execution records
.agents/pm/history/*, .agents/pm/issues/*
Issue histories and records include workflow transitions, implementation notes, affected files, test commands, and verification evidence.

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

Sequence Diagram(s)

sequenceDiagram
  participant CLI
  participant RuntimeSnapshot
  participant HelpDescriptors
  participant ExtensionHandler
  CLI->>RuntimeSnapshot: load extension command definitions
  RuntimeSnapshot->>RuntimeSnapshot: build canonical alias mappings
  RuntimeSnapshot->>HelpDescriptors: collect descriptors with aliases
  HelpDescriptors-->>CLI: return canonical help metadata
  ExtensionHandler-->>CLI: report missing option or nested failure
  CLI->>CLI: infer flag arity and recovery retry
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 71.43% 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
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.
Title check ✅ Passed The title clearly summarizes the main change: preserving extension command contracts and recovery behavior.
Description check ✅ Passed The description matches the changeset and its verification steps, covering contract synthesis, recovery fidelity, and related updates.
✨ Finishing Touches
📝 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.

@greptile-apps

greptile-apps Bot commented Jul 11, 2026 •

Copy link
Copy Markdown

Greptile Summary

This PR improves extension command contracts and recovery behavior. The main changes are:

  • Synthesizes usable default command metadata for importer/exporter registrations with omitted or empty options.
  • Lets verified same-extension flattened aliases inherit canonical help, argument, and flag contracts.
  • Preserves nested extension failure recovery instead of inventing outer retry suggestions.
  • Renders extension retry suggestions from active flag contracts, including boolean, typed value, required, and repeated-token cases.
  • Updates SDK, activation-summary, changelog, README, tracker, and test expectations.

Confidence Score: 5/5

This PR appears safe to merge with low risk.

The changed code is focused on extension command metadata and recovery construction, with tests covering the reported alias, importer/exporter, nested recovery, typed flag, required flag, and repeated-token cases.

No files require special attention.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex performed focused unit validation of extension contracts and confirmed the Vitest results in the extension-contracts-01-focused-unit.log, including 5 test files passed, 443 tests passed, and an exit code of 0.
  • T-Rex examined the extension-contracts-03-help-runtime-only.log to verify runtime help behavior, noting 1 test file and 41 tests passed with exit code 0, and capturing guidance on missing-required-option handling, retry on flag typos, and unknown-command guidance.
  • T-Rex reviewed the broader integration context described in extension-contracts-02-runtime-help.log, recognizing that it lacks a final exit code and serves as supplementary context rather than the primary pass/fail proof.
  • T-Rex documented the command-schema validation and related details across the logs, including loader schema metadata, canonicalized command names, and SDK command registration contracts as part of the contract-validation evidence.
  • T-Rex assembled a reviewer-friendly artifact bundle linking the five log files for inspection and cross-reference across unit, runtime-help, and integration contexts.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
src/cli/extension-command-help.ts Adds verified same-extension flattened alias mapping and extension flag arity lookup used by help and recovery.
src/cli/main.ts Updates recovery construction to preserve nested failures and render extension missing-flag retries from active command contracts.
src/core/extensions/loader.ts Synthesizes default command definitions and optional file arguments for importer/exporter registrations with omitted or empty metadata.
tests/unit/cli/cli-main-errors.spec.ts Adds tests for nested recovery preservation, alias mapping, command-token collisions, and extension flag arity.
tests/unit/extensions/extension-loader.spec.ts Adds loader tests for rich, empty, and handler-only importer/exporter command metadata.
tests/unit/core/extensions/activation-summary.spec.ts Updates activation summary expectations for synthesized importer/exporter command contracts.
tests/unit/sdk/sdk-index.spec.ts Updates SDK barrel and harness assertions for importer/exporter default command contracts.
CHANGELOG.md Adds unreleased changelog entries for extension contract and recovery fidelity fixes.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant Ext as Extension activate(api)
participant Loader as Extension loader
participant Help as Command contract/help builder
participant CLI as CLI runtime recovery

Ext->>Loader: registerImporter/registerExporter(name, handler, options?)
Loader->>Loader: validate options and synthesize default description + [file] arg
Loader->>Help: expose command definitions, handlers, flags
Help->>Help: map verified flattened aliases to canonical descriptors
CLI->>Help: collect active runtime command descriptors
Ext-->>CLI: command error or nested typed failure
CLI->>CLI: preserve existing nested recovery when present
CLI->>Help: resolve missing extension flag arity from descriptor
CLI-->>Ext: structured recovery with executable suggested_retry
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant Ext as Extension activate(api)
participant Loader as Extension loader
participant Help as Command contract/help builder
participant CLI as CLI runtime recovery

Ext->>Loader: registerImporter/registerExporter(name, handler, options?)
Loader->>Loader: validate options and synthesize default description + [file] arg
Loader->>Help: expose command definitions, handlers, flags
Help->>Help: map verified flattened aliases to canonical descriptors
CLI->>Help: collect active runtime command descriptors
Ext-->>CLI: command error or nested typed failure
CLI->>CLI: preserve existing nested recovery when present
CLI->>Help: resolve missing extension flag arity from descriptor
CLI-->>Ext: structured recovery with executable suggested_retry
Loading

Reviews (12): Last reviewed commit: "fix(extension): make retry arity path-ex..." | Re-trigger Greptile

@greptile-apps

greptile-apps Bot commented Jul 11, 2026

Copy link
Copy Markdown

Greptile Summary

This PR improves extension CLI command contracts and recovery behavior. The main changes are:

  • Default [file] command metadata for handler-only importer/exporter registrations.
  • Canonical command contract inheritance for verified same-extension flattened aliases.
  • Extension-aware retry recovery that preserves nested failure boundaries and boolean flag arity.
  • Updated issue history, activation summaries, SDK expectations, and tests for these paths.

Confidence Score: 5/5

Safe to merge with minimal risk.

The changed code is scoped to extension command metadata and recovery assembly, with tests covering the affected loader, CLI error handling, activation summary, and SDK paths. No functional or security issues were identified.

No files require special attention.

T-Rex T-Rex Logs

What T-Rex did

  • Ran the Vitest suite for PR511 and confirmed all tests passed, with 5 test files and 443 tests reported as passed, exit code 0.
  • Checked the health check JSON for PR511; the response remained parseable and indicated ok for the extension check, with exit code 0.
  • Validated the history drift check for PR511; the result was ok with zero drifted items and exit code 0.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
src/cli/extension-command-help.ts Adds canonical alias descriptor inheritance so flattened extension aliases receive command args, metadata, and flags.
src/cli/main.ts Adds extension-aware recovery behavior, same-extension canonical alias mapping, and flag arity lookup for suggested retries.
src/core/extensions/loader.ts Synthesizes default command metadata for handler-only importer/exporter registrations.
tests/unit/cli/cli-main-errors.spec.ts Adds tests for retry arity, same-extension alias mapping, and nested extension failure recovery.
tests/unit/extensions/extension-loader.spec.ts Adds tests for flattened alias inheritance and handler-only importer/exporter contracts.
tests/unit/sdk/sdk-index.spec.ts Updates SDK harness expectations for default importer/exporter command contracts.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
  participant Ext as Extension activate()
  participant Loader as ExtensionApiRegistrar
  participant CLI as CLI runtime
  participant Help as Command descriptor collector
  participant Recovery as Recovery builder

  Ext->>Loader: registerImporter/exporter or registerCommand/Flags
  Loader->>Loader: synthesize default [file] contract when options omitted
  Loader-->>CLI: activation registrations and command handlers
  CLI->>CLI: build same-extension flattened alias map
  CLI->>Help: collect descriptors with canonical alias inheritance
  Help-->>CLI: active command descriptors and flags
  CLI->>Ext: run extension command with validated args/options
  Ext-->>Recovery: structured error or handler failure
  Recovery->>CLI: preserve nested recovery and use extension flag arity for retry
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
  participant Ext as Extension activate()
  participant Loader as ExtensionApiRegistrar
  participant CLI as CLI runtime
  participant Help as Command descriptor collector
  participant Recovery as Recovery builder

  Ext->>Loader: registerImporter/exporter or registerCommand/Flags
  Loader->>Loader: synthesize default [file] contract when options omitted
  Loader-->>CLI: activation registrations and command handlers
  CLI->>CLI: build same-extension flattened alias map
  CLI->>Help: collect descriptors with canonical alias inheritance
  Help-->>CLI: active command descriptors and flags
  CLI->>Ext: run extension command with validated args/options
  Ext-->>Recovery: structured error or handler failure
  Recovery->>CLI: preserve nested recovery and use extension flag arity for retry
Loading

Reviews (1): Last reviewed commit: "fix(extension): preserve command contrac..." | Re-trigger Greptile

@codecov

codecov Bot commented Jul 11, 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!

Move verified extension alias mapping into the command-contract module after CI surfaced the main.ts file-length ratchet. Preserve focused behavior and exact 100/100/100/100 coverage.\n\nTracks pm-s9iu and PR #511 review feedback.
@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai please review the current head b03a135.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 30 minutes.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request implements extension contract fidelity and recovery improvements, ensuring that flattened extension-command aliases inherit canonical option contracts, bare importer/exporter registrations receive default contracts, and suggested retries respect extension flag arity. Feedback on these changes highlights two issues: first, a potential bug in src/cli/main.ts where indexOf returning -1 leads to an incorrect slice of invocationArgv; second, a matching issue in src/cli/extension-command-help.ts where single-word commands can result in a trailing space in the expected alias template, preventing successful matches.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread src/cli/main.ts Resolved
Comment thread src/cli/extension-command-help.ts Resolved
Comment thread src/cli/main.ts Resolved
Honor value_type/type arity, guard missing invocation command tokens, support single-token flattened aliases, and keep shared helpers inside the command-contract module.\n\nCovers all Greptile and Gemini findings on PR #511 with exact 100/100/100/100 coverage.\n\nTracks pm-s9iu and pm-9qcr.
@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai please review the current head 2e5956a after all inline findings were addressed.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 59 minutes.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request enhances extension command contract fidelity and error recovery. It provides default command contracts for bare importer/exporter registrations, resolves canonical extension aliases, and ensures suggested retries respect extension flag arity while preventing incorrect retries from nested failures. Feedback on the changes highlights two issues: first, the default options for importers/exporters are bypassed if an empty object is passed, which can be resolved by merging defaults with the provided options; second, using indexOf to locate the command name in the arguments list is fragile and can be corrupted if the command name matches a preceding flag value.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread src/core/extensions/loader.ts Resolved
Comment thread src/cli/extension-command-help.ts Resolved
Merge importer/exporter defaults even when package authors pass empty metadata, and resolve the actual extension command occurrence when global option values repeat the command token. Add regression coverage for both bot findings, close the four linked PM issues with exact coverage evidence, and regenerate the package-owned changelog.
@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai please review current head 6afb546. All prior findings are addressed; please report any remaining actionable issues.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 21 minutes.

@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai please review current head cdbf467 after main synchronization and changelog ancestry correction. Please report any remaining actionable issues.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 58 seconds.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request implements usable default contracts for handler-only importer/exporter registrations, resolves canonical nested commands behind auto-generated flattened extension aliases, preserves nested extension recovery payloads without inventing top-level retries, and respects extension flag arity in suggested retries. Feedback is provided regarding a potential bug in extensionFlagTakesValueForInvocation where using lastIndexOf(commandName) to locate the command token is fragile if the command name is repeated as an argument or option value later in the invocation, and a more robust iteration-based matching approach is suggested.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread src/cli/extension-command-help.ts Resolved
Comment thread src/cli/extension-command-help.ts Resolved
Select the longest extension command descriptor across every matching token occurrence, honor required untyped flags as value-taking, add regressions for leading and trailing command-token collisions, preserve the intentional README cleanup, and record final PM evidence.
@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai please review current head dce511d. The final required-arity and repeated-token findings are fixed with exact coverage; please report any remaining actionable issues.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026 •

Copy link
Copy Markdown
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 59 minutes.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request addresses several issues related to extension command contracts and error recovery. Specifically, it ensures that bare or empty-options importer/exporter registrations receive safe default command metadata (including descriptions and optional positional file arguments). It also implements flattened extension-command alias contract inheritance, allowing aliases to inherit descriptions, arguments, and options from their canonical nested commands. Additionally, error recovery suggestions (suggested_retry) now consult active extension command contracts to correctly format boolean flags (bare) versus value-taking flags, and nested extension failures are wrapped cleanly without synthesizing irrelevant top-level missing flags. I have no feedback to provide as there are no review comments.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@unbraind

Copy link
Copy Markdown
Owner Author

Final review accounting on dce511d: all Gemini and Greptile inline findings received direct replies and usefulness reactions, all review threads are resolved, Gemini reports no remaining comments, Greptile passes, CodeRabbit completed but was rate-limited, and the Codecov plus all required CI gates pass. Rate-limit/quota-only notifications were marked not useful; substantive summaries and coverage reports were marked useful.

@unbraind
unbraind merged commit f1dafef into main Jul 11, 2026
25 checks passed
@unbraind
unbraind deleted the feat/extension-contract-fidelity-recovery branch July 11, 2026 09:49
@unbraind

unbraind commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

Tracked in PM: pm-0mjz, pm-9qcr, pm-o71e, pm-s9iu.

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