Skip to content

fix: optimize agent list/search UX and smoke cleanup reliability - #147

Merged
unbraind merged 2 commits into
mainfrom
fix/agent-ux-compact-tags-mcp-smoke-cleanup
Jun 8, 2026
Merged

fix: optimize agent list/search UX and smoke cleanup reliability#147
unbraind merged 2 commits into
mainfrom
fix/agent-ux-compact-tags-mcp-smoke-cleanup

Conversation

@unbraind

@unbraind unbraind commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • improve list/search agent UX by accepting --tags as a declared read-command alias, extending parser/contracts/completion parity, and preventing never-block retry false positives
  • support MCP top-level filter key ingestion for pm_list/pm_search narrow actions and preserve nested options precedence when both are supplied
  • trim compact list/search trailers to omit default metadata (projection/sorting/now) while retaining active filter summaries, and harden smoke pack temp cleanup retry behavior for ENOTEMPTY/EBUSY/EPERM paths
  • refresh docs, runtime contracts snapshot, and linked pm tracking/evidence for pm-vhx6, pm-6l17, pm-jozc, and pm-i2xg

Test plan

  • node scripts/run-tests.mjs coverage
  • pnpm contracts:check
  • pnpm quality:static
  • pnpm security:scan
  • pnpm audit --audit-level moderate --json
  • pnpm outdated (only outdated root dependency: commander 14.0.3 -> 15.0.0)
  • node dist/cli.js health --check-only --check-telemetry --summary --json
  • node dist/cli.js telemetry status --json
  • manual temp-directory dogfood run for init/create/list/search/update/close/package catalog plus MCP pm_list top-level filters
  • GitHub security surfaces checked via gh (dependabot, code-scanning, secret-scanning all open=0)
  • Sentry CLI probe attempted (403 scope limitation), local telemetry+health evidence used per approved execution mode

Summary by Sourcery

Optimize agent-facing list/search UX and MCP filter handling while hardening smoke-pack temp cleanup and updating docs/contracts.

New Features:

  • Allow pm_list/pm_search MCP tools to accept key filters at the top level while preserving nested options precedence.
  • Support --tags as a first-class alias for --tag on list/search commands, including parsing, contracts, and shell completions.

Bug Fixes:

  • Prevent compact list/search JSON output from including unnecessary projection, sorting, and timestamp metadata that add token overhead for agents.
  • Improve smoke pack temporary directory cleanup to be more reliable on ENOTEMPTY/EBUSY/EPERM filesystem conditions without masking test failures.

Enhancements:

  • Expose active filters in compact list/search responses via a trimmed filters block for agent consumption.
  • Refine MCP list/search schemas and option normalization to better align with runtime behavior.
  • Update agent and command documentation plus runtime contracts and tracking artifacts to reflect the new list/search behaviors and aliases.

Tests:

  • Add integration and unit coverage for --tags alias behavior, MCP top-level filter handling, compact metadata trimming, and smoke pack cleanup retries.

Align read-command ergonomics by supporting --tags alias handling and MCP top-level filter ingestion while trimming compact list/search metadata to reduce agent token overhead. Harden pack-smoke temp cleanup retries and capture pm/docs/contracts/test evidence, including full 100% coverage and local telemetry health verification.
@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 commented Jun 7, 2026

Copy link
Copy Markdown

Reviewer's Guide

Extends list/search agent UX by treating --tags as a first-class alias for --tag across parsing, contracts, and shell completion; trims compact list/search JSON trailers to only active filters while omitting projection/sorting/now; enhances MCP pm_list/pm_search to hoist selected top-level filter keys into options with correct precedence; and hardens smoke pack temp-directory cleanup retries for more reliable CI.

Sequence diagram for MCP pm_list/pm_search top-level filter hoisting

sequenceDiagram
  participant Client
  participant McpServer
  participant optionsWithAuthor
  participant normalizeMcpOptionsArrays

  Client->>McpServer: call pm_list args{status, type, tag, options}
  McpServer->>optionsWithAuthor: optionsWithAuthor(args, action=list)
  optionsWithAuthor->>optionsWithAuthor: baseOptions = asRecordClone(args.options)
  optionsWithAuthor->>optionsWithAuthor: hoistKey(status|type|tag|priority|limit|offset)
  optionsWithAuthor->>optionsWithAuthor: merged = { ...hoistedTopLevel, ...baseOptions }
  optionsWithAuthor->>normalizeMcpOptionsArrays: normalizeMcpOptionsArrays(merged, list)
  normalizeMcpOptionsArrays-->>optionsWithAuthor: options
  optionsWithAuthor-->>McpServer: optionsWithAuthor result
  McpServer-->>Client: pm_list result

  Client->>McpServer: call pm_search args{mode, status, tag, options}
  McpServer->>optionsWithAuthor: optionsWithAuthor(args, action=search)
  optionsWithAuthor->>optionsWithAuthor: hoistKey(mode|status|type|tag|priority|limit)
  optionsWithAuthor->>normalizeMcpOptionsArrays: normalizeMcpOptionsArrays(merged, search)
  normalizeMcpOptionsArrays-->>optionsWithAuthor: options
  optionsWithAuthor-->>McpServer: optionsWithAuthor result
  McpServer-->>Client: pm_search result
Loading

Flow diagram for smoke pack cleanupTempRoot retry logic

flowchart TD
  A["cleanupTempRoot(tempRoot)"] --> B["attempt = 1"]
  B --> C{"attempt <= 8?"}
  C -->|No| N{"existsSync(tempRoot)?"}
  N -->|No| O["Return"]
  N -->|Yes| P["Throw lastError or<br>new Error"]

  C -->|Yes| D["rmSync(tempRoot,<br>recursive, force,<br>maxRetries=8, retryDelay=120)"]
  D --> E{"rmSync threw?"}

  E -->|No| F{"existsSync(tempRoot)?"}
  F -->|No| G["Return"]
  F -->|Yes| H["Increment attempt"]

  E -->|Yes| I["readErrorCode(error)"]
  I --> J{"code in<br>CLEANUP_RETRYABLE_CODES?"}
  J -->|No| Q["Set lastError,<br>break loop"]
  J -->|Yes| K["Set lastError"]

  K --> L{"existsSync(tempRoot)?"}
  L -->|No| M["Return"]
  L -->|Yes| R["Try readdirSync(tempRoot)<br>and rmSync children"]
  R --> S["sleepSync(attempt * 120)"]
  S --> H

  Q --> N
Loading

File-Level Changes

Change Details Files
Add first-class --tags alias support for list/search, wired through bootstrap, commander contracts, completions, and tests.
  • Normalize list/search invocations so --tags is treated as a declared alias for --tag in bootstrap argument handling.
  • Extend CLI contracts and commander option alias maps so list/search tag filters accept both --tag and --tags consistently.
  • Update bash/zsh/fish completion generators to suggest tags for both --tag and --tags flags.
  • Add integration/unit tests verifying --tags alias behavior and help/runtime coverage, and refresh agent/docs guidance about the alias.
src/cli/register-list-query.ts
src/sdk/cli-contracts.ts
src/sdk/cli-contracts/commander-types.ts
src/cli/commands/completion.ts
tests/unit/bootstrap-args.spec.ts
tests/unit/completion-command.spec.ts
tests/integration/help-runtime.spec.ts
docs/AGENT_GUIDE.md
docs/COMMANDS.md
Make compact list/search JSON responses token-light by omitting projection/sorting/now metadata while still returning active filters and warnings.
  • Introduce helper functions to build compact filter summaries for list and search, capturing only user-specified filters and runtime field filters.
  • Gate compact summary behavior on compact projection mode plus --compact, returning items/count plus optional filters/warnings instead of full trailers.
  • Adjust empty-search result paths to use the same compact filter summarization, including runtime-field filters.
  • Update integration/unit tests and release-readiness checks to assert absence of projection/sorting/now keys in compact outputs and to validate filters content.
src/cli/commands/list.ts
src/cli/commands/search.ts
tests/unit/list-command.spec.ts
tests/unit/search-command.spec.ts
tests/integration/cli.integration.spec.ts
tests/integration/mcp-dynamic-package-actions.spec.ts
tests/integration/release-readiness-runtime.spec.ts
docs/AGENT_GUIDE.md
docs/COMMANDS.md
Support MCP pm_list/pm_search top-level filter keys, hoisting them into options with correct precedence and schema exposure.
  • Expand MCP tool input schemas for pm_list and pm_search with top-level filter properties (status/type/tag/priority/limit, plus mode/offset where applicable).
  • Enhance optionsWithAuthor to hoist specific top-level filter keys into the options object for list/search, letting nested options override hoisted values.
  • Normalize MCP options arrays after hoisting, preserving existing author inference.
  • Add integration coverage for pm_list/pm_search to validate top-level filter ingestion and options precedence behavior under MCP.
src/mcp/server.ts
tests/integration/mcp-handshake.spec.ts
Harden smoke pack temp-directory cleanup with retry/backoff logic and extract reusable cleanup helper.
  • Introduce cleanupTempRoot utility that repeatedly attempts rmSync with maxRetries/retryDelay, handling ENOTEMPTY/EBUSY/EPERM as retryable and opportunistically clearing child entries.
  • Add a small synchronous sleep helper using Atomics.wait for backoff between attempts, and guard final failure with a descriptive error.
  • Wrap cleanup invocation in try/catch so cleanup failures surface as warnings without masking smoke test results.
  • Add an integration test file to exercise or document the improved cleanup behavior and make script main execution conditional on direct invocation via import.meta.url.
scripts/smoke-npx-from-pack.mjs
tests/integration/smoke-pack-cleanup.integration.spec.ts
Refresh agent tracking/evidence artifacts and contracts snapshot to reflect new behaviors.
  • Update MCP/agent feature and issue .toon/.jsonl files for pm-vhx6, pm-6l17, pm-jozc, and pm-i2xg to capture new UX and behavior changes.
  • Refresh managed extensions metadata as needed for the agent environment.
  • Regenerate CLI contracts snapshot fixture to stay in sync with new flag aliases and MCP schemas.
.agents/pm/extensions/.managed-extensions.json
.agents/pm/features/pm-vhx6.toon
.agents/pm/history/pm-6l17.jsonl
.agents/pm/history/pm-jozc.jsonl
.agents/pm/history/pm-vhx6.jsonl
.agents/pm/history/pm-i2xg.jsonl
.agents/pm/issues/pm-6l17.toon
.agents/pm/issues/pm-jozc.toon
.agents/pm/issues/pm-i2xg.toon
tests/fixtures/contracts/full.json

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 Jun 7, 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: CHILL

Plan: Pro

Run ID: 7e4477bd-fe7d-4c07-978b-65c5131908ae

📥 Commits

Reviewing files that changed from the base of the PR and between 911912b and effa918.

📒 Files selected for processing (6)
  • .agents/pm/features/pm-vhx6.toon
  • .agents/pm/history/pm-vhx6.jsonl
  • src/cli/commands/comments-audit.ts
  • src/cli/commands/list.ts
  • src/cli/commands/normalize.ts
  • src/cli/commands/search.ts
✅ Files skipped from review due to trivial changes (2)
  • src/cli/commands/comments-audit.ts
  • .agents/pm/history/pm-vhx6.jsonl
🚧 Files skipped from review as they are similar to previous changes (1)
  • .agents/pm/features/pm-vhx6.toon

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Added --tags as an accepted alias for --tag in list/search flows
    • Compact mode now returns compact items plus only active/user-supplied filters (omits default projection/sorting/now)
  • Bug Fixes

    • Improved smoke test cleanup to retry transient filesystem errors for greater CI reliability
    • Tooling now hoists and respects top-level list/search filter aliases when provided
  • Documentation

    • Clarified compact-mode output and flag-accumulation/alias semantics in command docs

Walkthrough

This PR implements four interrelated features across the pm-cli codebase: adds --tags as a never-block alias for --tag in list/search commands, trims compact mode output to exclude projection/sorting/now metadata, hoists top-level filter keys in MCP tool schemas, and hardens temp directory cleanup in smoke tests with retry logic.

Changes

CLI Enhancements: --tags Alias and Compact Output

Layer / File(s) Summary
CLI contracts and flag definitions
src/sdk/cli-contracts.ts, src/sdk/cli-contracts/commander-types.ts, tests/fixtures/contracts/full.json
Updated exported flag contracts to declare --tags as an alias for --tag in list and search commands; commander-types now recognize both "tag" and "tags" keys.
--tags alias registration and completion
src/cli/register-list-query.ts, src/cli/commands/completion.ts
Registers hidden --tags CLI alias for list and search; bash, zsh, and fish completion scripts all updated to offer tag value suggestions when --tags is used.
Compact filter-summary builders for list and search
src/cli/commands/list.ts, src/cli/commands/search.ts
Introduces buildCompactListFilterSummary and buildCompactSearchFilterSummary helpers that assemble active-filters-only objects; adds early-return paths in runList and runSearch to emit compact envelopes (items, count, filters, warnings) while omitting projection/sorting/now.
CLI enhancement tests and documentation
tests/unit/bootstrap-args.spec.ts, tests/unit/completion-command.spec.ts, tests/unit/list-command.spec.ts, tests/unit/search-command.spec.ts, tests/integration/cli.integration.spec.ts, tests/integration/help-runtime.spec.ts, docs/COMMANDS.md, docs/AGENT_GUIDE.md
Unit and integration tests updated to verify --tags alias resolution and compact output shape assertions (projection/sorting/now undefined, filters included); new test case for --tags read-command behavior; documentation clarifies compact mode behavior and --tags alias availability.

Infrastructure: MCP Filter Hoisting and Cleanup Hardening

Layer / File(s) Summary
Cleanup hardening with retry logic
scripts/smoke-npx-from-pack.mjs
Centralizes temp cleanup into exported cleanupTempRoot(tempRoot) function that retries rmSync with configurable sleep for transient errors (ENOENT, EMFILE), opportunistically deletes first-level entries before retrying, and updates module entrypoint to only execute when called directly (not on import).
Cleanup integration tests
tests/integration/smoke-pack-cleanup.integration.spec.ts
Adds integration test suite verifying cleanupTempRoot correctly removes nested temp directories and safely handles missing directory paths.
MCP filter hoisting schema and implementation
src/mcp/server.ts
Defines LIST_ALIAS_PROPS and SEARCH_ALIAS_PROPS maps documenting top-level filter aliases (status/type/tag/priority/pagination); spreads them into MCP tool inputSchema definitions; modifies optionsWithAuthor to hoist supported top-level keys into options object with precedence rules (nested options win).
MCP handshake and response shape tests
tests/integration/mcp-handshake.spec.ts, tests/integration/mcp-dynamic-package-actions.spec.ts, tests/integration/release-readiness-runtime.spec.ts
Adds comprehensive handshake test exercising filter hoisting and precedence semantics; updates existing MCP assertions to reflect removed projection/now from default list/search responses.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • unbraind/pm-cli#78: Overlaps on compact output filter/projection shape changes to src/cli/commands/list.ts and src/cli/commands/search.ts.
  • unbraind/pm-cli#75: Both PRs modify list-query command registration (src/cli/register-list-query.ts) and runtime parity tests (tests/integration/help-runtime.spec.ts, tests/integration/release-readiness-runtime.spec.ts).
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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
Title check ✅ Passed The title accurately summarizes the main changes: agent list/search UX optimization (--tags alias, compact metadata trimming) and smoke cleanup reliability improvements.
Description check ✅ Passed The description is directly related to the changeset, providing a detailed summary of improvements to list/search UX, MCP filter handling, compact output optimization, and smoke cleanup reliability.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 and usage tips.

@unbraind

unbraind commented Jun 7, 2026

Copy link
Copy Markdown
Owner Author

@codex review\n/gemini review\n@gemini-code-assist please review

@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!

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create a Codex account and connect to github.

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

Hey - I've left some high level feedback:

  • The isNonEmptyRecord helper is now duplicated in both list.ts and search.ts; consider moving it into a shared utility module to avoid divergence and keep behavior consistent.
  • The MCP top-level filter hoisting logic in optionsWithAuthor and the LIST_TOP_LEVEL_OPTION_PROPERTIES/SEARCH_TOP_LEVEL_OPTION_PROPERTIES schemas need to stay in lockstep; it might be worth centralizing the allowed hoisted keys to a single source of truth to reduce the chance of future drift.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `isNonEmptyRecord` helper is now duplicated in both `list.ts` and `search.ts`; consider moving it into a shared utility module to avoid divergence and keep behavior consistent.
- The MCP top-level filter hoisting logic in `optionsWithAuthor` and the `LIST_TOP_LEVEL_OPTION_PROPERTIES`/`SEARCH_TOP_LEVEL_OPTION_PROPERTIES` schemas need to stay in lockstep; it might be worth centralizing the allowed hoisted keys to a single source of truth to reduce the chance of future drift.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@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: 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/cli/commands/list.ts`:
- Around line 695-711: The branch that returns a compact payload when
compactSummaryMode is true builds a different shape (uses projected, count,
filters, warnings) but force-casts it to ListResult, hiding a real type
mismatch; replace the unsafe cast by introducing an explicit CompactListResult
type (e.g., { items: typeof projected; count: number; filters?: ...; warnings?:
... }), change the function/handler return signature to return ListResult |
CompactListResult (or add an overload) and return the compact object as
CompactListResult (no cast), and update any callers to narrow on
compactSummaryMode (or the presence of filters/warnings) before accessing
ListResult-only fields like projection/sorting/now; reference symbols:
compactSummaryMode, buildCompactListFilterSummary, projected, warnings, and
ListResult.

In `@src/cli/commands/search.ts`:
- Around line 978-998: The compact-mode branch (controlled by compactSummaryMode
/ projection.mode === "compact") constructs an abbreviated object and
force-casts it to SearchResult, violating the SearchResult contract (missing
projection, now and sometimes filters) and risking runtime undefined access; fix
by removing the unsafe cast and either (A) return an object that fully satisfies
SearchResult (include projection and now and any required fields such as
filters/warnings) in the compact branch or (B) introduce an explicit union type
(e.g., CompactSearchResult | FullSearchResult) and change the function's return
type so the compact branch returns a proper CompactSearchResult (constructed via
buildCompactSearchFilterSummary and including required minimal fields) and
update callers to handle the union instead of relying on a cast; ensure you
update any usages that assume projection/now to handle the compact union form.
🪄 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: Repository UI (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: fc813747-9b5d-458a-8ec3-5315c3c1df8e

📥 Commits

Reviewing files that changed from the base of the PR and between 45dd695 and 911912b.

📒 Files selected for processing (30)
  • .agents/pm/extensions/.managed-extensions.json
  • .agents/pm/features/pm-vhx6.toon
  • .agents/pm/history/pm-6l17.jsonl
  • .agents/pm/history/pm-i2xg.jsonl
  • .agents/pm/history/pm-jozc.jsonl
  • .agents/pm/history/pm-vhx6.jsonl
  • .agents/pm/issues/pm-6l17.toon
  • .agents/pm/issues/pm-i2xg.toon
  • .agents/pm/issues/pm-jozc.toon
  • docs/AGENT_GUIDE.md
  • docs/COMMANDS.md
  • scripts/smoke-npx-from-pack.mjs
  • src/cli/commands/completion.ts
  • src/cli/commands/list.ts
  • src/cli/commands/search.ts
  • src/cli/register-list-query.ts
  • src/mcp/server.ts
  • src/sdk/cli-contracts.ts
  • src/sdk/cli-contracts/commander-types.ts
  • tests/fixtures/contracts/full.json
  • tests/integration/cli.integration.spec.ts
  • tests/integration/help-runtime.spec.ts
  • tests/integration/mcp-dynamic-package-actions.spec.ts
  • tests/integration/mcp-handshake.spec.ts
  • tests/integration/release-readiness-runtime.spec.ts
  • tests/integration/smoke-pack-cleanup.integration.spec.ts
  • tests/unit/bootstrap-args.spec.ts
  • tests/unit/completion-command.spec.ts
  • tests/unit/list-command.spec.ts
  • tests/unit/search-command.spec.ts

Comment thread src/cli/commands/list.ts
Comment thread src/cli/commands/search.ts
Replace compact-mode list/search unsafe casts with explicit compact/verbose result unions while preserving token-light compact payloads. Add deterministic timestamp fallbacks in downstream list consumers and record review-loop verification evidence with full 100% coverage and static/contracts/security reruns.
@unbraind

unbraind commented Jun 8, 2026

Copy link
Copy Markdown
Owner Author

@codex review\n/gemini review\n@gemini-code-assist please review latest commit effa918

@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!

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create a Codex account and connect to github.

@unbraind

unbraind commented Jun 8, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review latest changes

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown

@unbraind Sure, I'll kick off a review of the latest changes now!

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@unbraind
unbraind merged commit d05b21d into main Jun 8, 2026
15 checks passed
@unbraind
unbraind deleted the fix/agent-ux-compact-tags-mcp-smoke-cleanup branch June 8, 2026 06:25
unbraind added a commit that referenced this pull request Jun 8, 2026
Record merged PR #147 evidence and finalize lifecycle transitions for pm-vhx6, pm-6l17, pm-jozc, and pm-i2xg by closing each item and releasing active claims on main.
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