Skip to content

feat(sdk): own workspace customization and author provenance - #565

Merged
unbraind merged 12 commits into
mainfrom
feat/sdk-workspace-customization-author-attribution
Jul 15, 2026
Merged

unbraind merged 12 commits into
mainfrom
feat/sdk-workspace-customization-author-attribution

Conversation

@unbraind

@unbraind unbraind commented Jul 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • move config, profile, init, agent-guidance, templates, and command rendering into public SDK ownership while retaining thin CLI compatibility adapters
  • export reusable CLI construction and invocation-author scoping primitives, add global --author, and persist non-empty init author defaults
  • scan append-only history for missing provenance and surface non-blocking health/validate remediation
  • remove 54 obsolete CLI-to-core import-boundary allowances and document the composable customization surface

pm items

Closes #444

Verification

  • all-source coverage: 291 files / 5,709 tests, exact 100% statements (36,933), branches (26,518), functions (7,451), and lines (36,048)
  • strict ESLint, zero-clone jscpd, 100% module/export/member docstrings, package boundary, token budgets, contracts, context evaluation, secret scan, and dependency audit
  • packed npm install plus clean temporary consumer proof for SDK exports, config/profile/init, global author precedence, and advisory diagnostics
  • packed npx smoke and 88-command package-first dogfood
  • pre-push Greptile: confidence 5/5, safe to merge, no comments after both initial findings were fixed

Observability

Telemetry is healthy at 0.34% finish errors with zero failures missing error codes. The aggregate release gate stops only on two pre-existing handled external-integration Sentry highs already tracked as pm-d4ns (PM-CLI-2B) and pm-7n5a (PM-CLI-29); neither implementation belongs to this bundle.


Summary by cubic

Moves workspace customization and extension lifecycle into the public SDK with thin CLI adapters. Adds global --author with default persistence, unknown-author advisories with remediation in pm health/pm validate, and enforces exact static-quality budgets (165 ESLint suppressions, 477 coverage pragmas) (addresses #444).

  • New Features

    • SDK exports: runConfig, runInit, runInitAgentGuidance, runProfile{List,Show,Apply,Lint}, runTemplates{List,Show,Save}, runExtension, createPmCliProgram, applyInvocationAuthorOverride, quoteCommandArg/renderPmCommand, EXECUTABLE_COMMAND_ALIASES.
    • Author provenance: global --author, pm init writes author_default, scanHistoryAuthorAttribution powers advisories history_unknown_author_events and validate_history_unknown_author_events with remediation entries.
    • Hardening: serialized extension installs with scoped transactions and activation verification; active install locks lease via heartbeat; --author empty/missing value errors unified; corrected completion metadata; CodeQL-safe extension slug normalization; atomic guidance writes; workspace targeting in init; stricter config integer parsing; removed unreachable config paths; DeepSource module_system = "es-modules"; static-quality and release/readiness gates pinned to 165/477.
    • Docs: docs/SDK_CUSTOMIZATION_PRIMITIVES.md describes the composition surface.
  • Migration

    • Embedded hosts should import from @unbrained/pm-cli/sdk instead of spawning pm.
    • To avoid unknown authors: set PM_AUTHOR, pass --author, or run pm config project set author_default <id>.
    • CLI flags and behavior remain compatible; internal CLI-to-core import allowances reduced.

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

Review in cubic

Move config, profile, init, guidance, templates, and command rendering into public SDK ownership while preserving CLI compatibility adapters. Add reusable CLI construction, invocation-wide author scoping, non-empty init defaults, and append-only history provenance diagnostics across health and validate.

Ratchet 54 CLI-to-core boundary edges, document the composition contract, preserve exact 100% all-source coverage, and record packed-install, dogfood, security, telemetry, and live tracker evidence for pm-3mna and pm-cpja.

@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, your pull request is larger than the review limit of 150000 diff characters

@unbraind

Copy link
Copy Markdown
Owner Author

@greptileai please review the complete current head.

@unbraind

Copy link
Copy Markdown
Owner Author

/gemini review

@unbraind

Copy link
Copy Markdown
Owner Author

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

1 similar comment
@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 15, 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.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

The PR promotes configuration, initialization, profile, and extension implementations into the SDK, retains CLI compatibility through re-exports, adds global author attribution and unknown-history diagnostics, strengthens extension installation locking, and updates tests, documentation, quality gates, and PM tracking records.

Changes

SDK ownership and author attribution

Layer / File(s) Summary
Author attribution and diagnostics
src/sdk/author-attribution.ts, src/sdk/invocation-author.ts, src/cli/bootstrap-args.ts, src/cli/commands/health.ts, src/cli/commands/validate.ts
Adds global --author parsing, scoped environment overrides, unknown-author history scanning, advisory health/validation warnings, and remediation mappings.
Configuration, initialization, and profiles
src/sdk/config.ts, src/sdk/init.ts, src/sdk/init-agent-guidance.ts, src/sdk/profile.ts
Adds SDK command engines for typed configuration, initialization, agent guidance, and profile listing, inspection, linting, and application.
Extension runtime and scaffolding
src/sdk/extension.ts, src/sdk/extension/*
Moves extension lifecycle, diagnostics, describe output, manifest validation, install locking, and imperative/declarative scaffolding into SDK modules.
CLI compatibility boundary
src/cli/commands/*, src/cli/argv-utils.ts, src/sdk/runtime.ts, scripts/release/sdk-import-boundary-baseline.json
Replaces promoted CLI implementations with SDK re-exports, redirects runtime imports, and removes obsolete private-core import allowances.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CLI
  participant SDK
  participant Storage
  participant Extensions
  CLI->>SDK: invoke config, init, profile, or extension command
  SDK->>Storage: read or update settings, schemas, and managed state
  SDK->>Extensions: load hooks or install bundled packages when requested
  Extensions-->>SDK: return lifecycle results and warnings
  SDK-->>CLI: return structured result or rendered output
Loading

Possibly related PRs

  • unbraind/pm-cli#444 — Directly defines the global author attribution and unknown-author diagnostics implemented here.
  • unbraind/pm-cli#431 — Introduced the SDK import-boundary ratchet that this PR advances by removing CLI allowances.
  • unbraind/pm-cli#362 — Overlaps with the SDK profile runners and CLI compatibility re-exports.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR also includes large unrelated SDK/extension/profile/template migrations and boundary cleanup beyond #444. Split the unrelated SDK/extension/profile/template migration and import-boundary cleanup into a separate PR or linked issue.
Docstring Coverage ⚠️ Warning Docstring coverage is 29.64% 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 PR covers #444 by adding global --author, persisting author_default in init, and surfacing unknown-author warnings in health/validate.
Title check ✅ Passed The title clearly summarizes the SDK ownership shift and author provenance work.
Description check ✅ Passed The description matches the changeset and covers SDK migration, author attribution, and validation.
✨ 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.

@deepsource-io

deepsource-io Bot commented Jul 15, 2026 •

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in ccd87e9...c27465d on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

Important

Some issues found as part of this review are outside of the diff in this pull request and aren't shown in the inline review comments due to GitHub's API limitations. You can see those issues on the DeepSource dashboard.

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
JavaScript Jul 15, 2026 4:57a.m. Review ↗
Shell Jul 15, 2026 4:57a.m. Review ↗
Secrets Jul 15, 2026 4:57a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@codspeed

codspeed Bot commented Jul 15, 2026 •

Copy link
Copy Markdown

Merging this PR will degrade performance by 0.01%

⚡ 2 improved benchmarks
❌ 9 regressed benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
❌ decodeQueryCursor 116 µs 116.1 µs -0.06%
❌ normalizeLowercaseWhitespace 135.8 µs 135.9 µs -0.04%
❌ encodeQueryCursor 100.9 µs 100.9 µs -0.03%
❌ stableStringify (nested contract) 161.3 µs 161.3 µs -0.03%
❌ build index (200 docs x 40 words) 8.4 ms 8.4 ms -0.02%
❌ build index (2000 docs x 80 words) 162 ms 162.1 ms -0.02%
❌ jaccardSimilarity 153.2 µs 153.3 µs -0.02%
❌ tokenizeAlphaNumeric 367.4 µs 367.4 µs -0.02%
❌ score query over 2000 docs 5.6 ms 5.6 ms 0%
⚡ createQueryFingerprint 514.4 µs 513.7 µs +0.13%
⚡ tokenize + score query over 2000 docs 7.5 ms 7.5 ms 0%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing feat/sdk-workspace-customization-author-attribution (c27465d) with main (ccd87e9)

Open in CodSpeed

Comment thread src/cli/bootstrap-args.ts Resolved
Comment thread src/cli/bootstrap-args.ts Resolved
Comment thread src/cli/bootstrap-args.ts Resolved
Comment thread src/cli/bootstrap-args.ts Resolved
Comment thread src/cli/bootstrap-args.ts Resolved
Comment thread src/cli/main.ts Resolved
Comment thread src/cli/main.ts Resolved
Comment thread src/cli/main.ts Resolved
Comment thread src/cli/main.ts Resolved
Comment thread src/cli/main.ts Resolved
@codecov

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

@greptile-apps

greptile-apps Bot commented Jul 15, 2026 •

Copy link
Copy Markdown

Greptile Summary

This PR moves workspace customization and author provenance into the public SDK. The main changes are:

  • SDK-owned config, init, profile, templates, and extension command engines.
  • Thin CLI adapters over the new SDK surfaces.
  • Global --author handling with persisted init defaults.
  • Unknown-author history advisories in health and validation flows.
  • Updated SDK exports, docs, and tests.

Confidence Score: 5/5

This looks safe to merge.

No blocking issues found in the changed code.

T-Rex T-Rex Logs

What T-Rex did

  • Verified that npm pack completed with exit code 0 and produced the tarball.
  • Verified the clean consumer install, SDK import, and runInit/scanHistoryAuthorAttribution executed with exit code 0.
  • Verified the CLI author diagnostics showed authors persisted (init-author, env-author, global-author) and health advisory outputs including history_unknown_author_events:1 and validate_history_unknown_author_events:1, with exit code 0.
  • Documented that an earlier CLI run with --format on mutation commands was superseded by the successful no-format package CLI proof.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
src/cli/commands/validate.ts Unknown-author validation warnings now run only with the history drift check.
src/cli/bootstrap-args.ts Global author bootstrap parsing now handles required values without consuming flag-like tokens.
src/cli/main.ts Invocation author overrides now run inside the central CLI lifecycle and restore environment state.
src/sdk/cli-program.ts The reusable CLI program now registers --author <id> as a required-value global option.
src/sdk/cli-contracts/flag-contracts.ts Global author flag metadata now separates the flag from its value name.

Reviews (20): Last reviewed commit: "docs(pm): close SDK customization delive..." | Re-trigger Greptile

Comment thread src/cli/commands/validate.ts Resolved
@greptile-apps

greptile-apps Bot commented Jul 15, 2026

Copy link
Copy Markdown

Greptile Summary

This PR moves workspace customization into the public SDK. The main changes are:

  • SDK-owned config, profile, init, guidance, template, and command rendering modules.
  • Thin CLI compatibility re-exports over the SDK implementations.
  • A reusable CLI root program and global invocation author override.
  • Unknown-author history diagnostics in health and validate.
  • Updated SDK customization docs and import-boundary baselines.

Confidence Score: 4/5

The changed CLI author path needs a small fix before merging.

Bare --author is accepted and ignored, and that can still write mutations with fallback provenance. The rest of the inspected author scoping and diagnostics paths look contained.

src/sdk/cli-program.ts

T-Rex T-Rex Logs

What T-Rex did

  • Reproduced the bare --author flow by running the built CLI with a bare global --author before --json, and the create mutation completed successfully, with the author shown as fallback-env-author in the output.
  • The CLI provenance confirms the created item pm-w7lm had author explicit-cli-author and the persisted history and files reflect explicit-cli-author, while settings.json retains the author_default value.
  • The SDK validation log shows all required public exports are present with the expected types and ok=true.
  • Diagnostics show a healthy state: drift checks report history_drift=1 and drifted_items_count=0, and the health output confirms ok=true with a non-blocking telemetry warning.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
src/sdk/cli-program.ts Adds the reusable Commander root and global --author option; the option currently accepts a missing value.
src/cli/main.ts Applies and restores the invocation author override around command execution.
src/cli/bootstrap-args.ts Adds bootstrap parsing and stripping for global author tokens.
src/sdk/author-attribution.ts Adds a bounded scan for missing or unknown authors in history streams.
src/cli/commands/health.ts Adds an advisory storage warning for unknown-author history events.
src/cli/commands/validate.ts Adds validate warnings for unknown-author history events.
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
src/sdk/cli-program.ts:51
**Bare Author Is Ignored**

When a caller passes `--author` without a value, Commander accepts the optional flag and stores a boolean instead of a string. The bootstrap path also applies no override, so the mutation silently falls back to `PM_AUTHOR`, `author_default`, or `unknown` instead of rejecting the malformed provenance input.

Reviews (1): Last reviewed commit: "feat(sdk): own workspace customization a..." | Re-trigger Greptile

Comment thread src/sdk/cli-program.ts Resolved

@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: 8

🤖 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/sdk/cli-contracts/flag-contracts.ts`:
- Line 119: Align required-argument parsing for --author across all affected
sites: in src/sdk/cli-contracts/flag-contracts.ts lines 119-119, define the flag
with the <id> placeholder; in src/cli/bootstrap-args.ts lines 26-28, make
consumesBootstrapAuthorValue return true for any string next token, including
values beginning with "-"; and in tests/unit/sdk/author-attribution.spec.ts
lines 137-144, update flagFollowingAuthor to expect author "--json" and json
false.

In `@src/sdk/command-line.ts`:
- Around line 15-18: Update renderPmCommand to return exactly "pm" when argv is
empty, while preserving the existing quoted-and-joined argument rendering for
non-empty argv values.

In `@src/sdk/config.ts`:
- Around line 1041-1053: Update the activityLimit validation in the options
handling around ctx.activity_limit, including the corresponding logic at the
additionally noted range, to reject values with non-numeric trailing characters
by validating the complete trimmed string rather than relying only on parseInt.
Require the resulting value to be a safe positive integer before updating
ctx.activity_limit or changed.

In `@src/sdk/init-agent-guidance.ts`:
- Around line 376-385: Update writeGuidanceFile to write changed guidance
through the repository’s writeFileAtomic helper instead of fs.writeFile,
preserving the existing file path, UTF-8 encoding, and unchanged-content
behavior.

In `@src/sdk/init.ts`:
- Around line 52-55: The SDK still depends on CLI implementations, so move both
operations behind SDK/core primitives. In src/sdk/init.ts lines 52-55, replace
the runExtension dependency with an SDK/core extension-installation primitive
and update its callers; in src/sdk/profile.ts line 73, move type-folder
scaffolding out of the CLI schema command into SDK/core and use that primitive
instead.
- Around line 1167-1175: Move normalizeInitCommandOptions(options) before the
ensureInitDirectories call in the initialization flow, so invalid --preset,
--author, --agent-guidance, or --type-preset values are rejected before any
directories, files, or write hooks are created. Preserve the existing
createdDirs and warnings collection behavior after successful normalization.
- Around line 1188-1194: Update the applyInitAgentGuidance call in the
initialization flow to pass the resolved workspace derived from
invocation.target instead of cwd, while continuing to pass pmRoot as the tracker
root. Reuse the existing workspaceRoot value later in the function rather than
redeclaring it.

In `@tests/helpers/withTempPmPath.ts`:
- Around line 404-406: Remove the global author_default mutation from the shared
withTempPmPath fixture setup. Preserve the non-empty default from fresh
initialization, and move the empty-value mutation into an explicitly opt-in
legacy fixture or only the specific tests requiring legacy settings.
🪄 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: ASSERTIVE

Plan: Pro

Run ID: 050bd476-b3db-43e6-af2d-488e95a6330e

📥 Commits

Reviewing files that changed from the base of the PR and between ccd87e9 and e143f0a.

📒 Files selected for processing (48)
  • .agents/pm/epics/pm-qwoy.toon
  • .agents/pm/features/pm-3mna.toon
  • .agents/pm/features/pm-cpja.toon
  • .agents/pm/features/pm-gnzh.toon
  • .agents/pm/history/pm-3mna.jsonl
  • .agents/pm/history/pm-7n5a.jsonl
  • .agents/pm/history/pm-9x6e.jsonl
  • .agents/pm/history/pm-cpja.jsonl
  • .agents/pm/history/pm-d4ns.jsonl
  • .agents/pm/history/pm-gnzh.jsonl
  • .agents/pm/history/pm-qwoy.jsonl
  • .agents/pm/issues/pm-7n5a.toon
  • .agents/pm/issues/pm-d4ns.toon
  • .agents/pm/tasks/pm-9x6e.toon
  • README.md
  • docs/SDK_CUSTOMIZATION_PRIMITIVES.md
  • eslint-suppressions.json
  • scripts/release/sdk-import-boundary-baseline.json
  • src/cli/argv-utils.ts
  • src/cli/bootstrap-args.ts
  • src/cli/commands/config.ts
  • src/cli/commands/health.ts
  • src/cli/commands/index.ts
  • src/cli/commands/init-agent-guidance.ts
  • src/cli/commands/init.ts
  • src/cli/commands/profile.ts
  • src/cli/commands/validate.ts
  • src/cli/main.ts
  • src/cli/registration-helpers.ts
  • src/core/diagnostics/remediation.ts
  • src/core/shared/command-types.ts
  • src/sdk/author-attribution.ts
  • src/sdk/cli-contracts/flag-contracts.ts
  • src/sdk/cli-program.ts
  • src/sdk/command-line.ts
  • src/sdk/config.ts
  • src/sdk/index.ts
  • src/sdk/init-agent-guidance.ts
  • src/sdk/init.ts
  • src/sdk/invocation-author.ts
  • src/sdk/profile.ts
  • src/sdk/runtime.ts
  • src/sdk/templates.ts
  • tests/helpers/withTempPmPath.ts
  • tests/unit/cli/cli-main-errors.spec.ts
  • tests/unit/commands/templates-command.spec.ts
  • tests/unit/mcp/mcp-server-branch-residual.spec.ts
  • tests/unit/sdk/author-attribution.spec.ts
💤 Files with no reviewable changes (1)
  • scripts/release/sdk-import-boundary-baseline.json

Comment thread src/sdk/cli-contracts/flag-contracts.ts Resolved
Comment thread src/sdk/command-line.ts Resolved
Comment thread src/sdk/config.ts Resolved
Comment thread src/sdk/init-agent-guidance.ts Resolved
Comment thread src/sdk/init.ts Resolved
Comment thread src/sdk/init.ts Resolved
Comment thread src/sdk/init.ts Resolved
Comment thread tests/helpers/withTempPmPath.ts Resolved
unbraind added 2 commits July 15, 2026 03:08
Move the extension lifecycle engine and helper modules behind the public SDK boundary, preserve CLI compatibility shims, and ratchet the private-core baseline down by 45 edges.

Apply PR review hardening across author parsing, scoped validation, atomic guidance writes, init validation, config integer parsing, workspace targeting, and exact fallback coverage. Record tracker evidence and reduce the ESLint suppression budget to 167.
@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975375955: Gemini quota exhaustion is recorded as an external service limit. The latest head is still covered by exact local gates and a clean Greptile review; Gemini has been retriggered for the new head.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975376053: duplicate Gemini quota notice reviewed and retained. No code action is implied by the quota response; the requested new-head trigger is posted separately.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975376168: CodeRabbit completed the first full review. All eight actionable findings were implemented, tested, replied to inline, and resolved on the current head.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975377510: CodeRabbit rate-limit/walkthrough notice reviewed. Its eight findings are fixed; the external docstring heuristic is superseded by the repository mandatory 100 percent module/export/member gate, which passes.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975378492: DeepSource report reviewed line by line. Valid hygiene findings were fixed, analyzer-only classifications were explained inline, and all threads are resolved; strict ESLint and static quality pass.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975388166: CodSpeed performance report reviewed and retained as the first-head baseline. The second-head hosted check is pending after the SDK relocation.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975394703: Codecov report reviewed. Current local all-source proof is exact 100/100/100/100 across 5,713 tests; the hosted report is being refreshed for head ac4ee77.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975419841: Greptile summary reviewed. Both actionable findings were accepted, regression-tested, replied to inline, and resolved.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975421669: follow-up Greptile summary reviewed. The latest local pre-push review of the expanded SDK promotion is confidence 5/5 with no comments.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot review acknowledgement for #pullrequestreview-4699670326: Sourcery could not review because the intentionally broad PR exceeds its size limit. This is an external analyzer limit, not a code finding; exact local and hosted alternatives remain required.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975842562: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4975842841: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976090122: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976090467: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976392795: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976397719: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976526019: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976526304: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976652113: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976652515: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976727125: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Bot acknowledgement for #issuecomment-4976727540: reviewed and retained. This bot status/review response is accounted for in the final merged-head inventory; any actionable finding from its round was dispositioned in the corresponding inline thread.

@unbraind

Copy link
Copy Markdown
Owner Author

Final bot-review-object acknowledgement: reviewed GitHub review IDs 4699670326, 4699680813, 4699706554, 4699707845, 4699733626, 4700031998, 4700032531, 4700033077, 4700033604, 4700034083, 4700034605, 4700035919, 4700042536, 4700044391, 4700078058, 4700237562, 4700352879, 4700352918, 4700354280, 4700487378, 4700547676, 4700752434, and 4700839261. GitHub review objects do not expose the reactions API; every associated bot conversation/inline comment has instead been explicitly +1-reacted and acknowledged, every actionable finding was dispositioned, and unresolved thread count is zero. Sourcery reported only its 150,000-character service limit; DeepSource dashboard alignment remains pm-87bu; the final Greptile and CodeRabbit reviews are clean.

@unbraind

unbraind commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

Tracked in PM: pm-3mna, pm-7n5a, pm-9x6e, pm-cpja, pm-d4ns.

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.

Make PM_AUTHOR / author attribution ergonomic for stateless CLI agents

2 participants