Repository navigation
feat: Improve Glama score metadata and badge - #9
Conversation
|
Warning Review limit reached
More reviews will be available in 48 minutes and 32 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughUpdated 30+ tool descriptions across the codebase to clarify idempotency, verification semantics, and usage guidance. Added Glama distribution badge to README. Ensured ChangesTool Description Clarifications & Distribution Quality
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/tools/browser.ts`:
- Line 79: The docstring admits the tool is not idempotent; fix by implementing
a read-before-write check in the tool handler that currently calls
browser.load_item: before invoking browser.load_item, use the discovery helpers
(browser_get_categories and browser_get_path as appropriate) and inspect the
target track's device chain and clip/sample list to determine if the exact item
(by name/path) is already present; if present, return the existing item info
without calling browser.load_item, otherwise call browser.load_item and return
the loaded item name/path. Ensure this logic lives alongside the existing load
call so repeated invocations become no-ops when the item is already loaded.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 6bd24905-942c-48a3-8142-8ed130883e10
📒 Files selected for processing (17)
README.mddxt/manifest.jsonsrc/tools/arrangement.tssrc/tools/browser.tssrc/tools/clip.tssrc/tools/device.tssrc/tools/preview.tssrc/tools/prompts.tssrc/tools/push.tssrc/tools/recipe.tssrc/tools/resources.tssrc/tools/scene.tssrc/tools/session-link.tssrc/tools/session.tssrc/tools/track.tssrc/tools/transport.tstests/distribution-validation.test.ts
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (CLAUDE.md)
MCP server code must be written in TypeScript with Node 20+, using
@modelcontextprotocol/sdkand Zod validation
src/**/*.{ts,tsx}: In TypeScript/Node MCP server code, use@modelcontextprotocol/sdkfor implementing MCP protocol, Node 20+, and Zod for validation
TypeScript code must passnpm run typecheck,npm run lint, andnpm test
Files:
src/tools/resources.tssrc/tools/scene.tssrc/tools/prompts.tssrc/tools/arrangement.tssrc/tools/session.tssrc/tools/track.tssrc/tools/browser.tssrc/tools/session-link.tssrc/tools/recipe.tssrc/tools/preview.tssrc/tools/transport.tssrc/tools/device.tssrc/tools/push.tssrc/tools/clip.ts
src/tools/**/*.ts
📄 CodeRabbit inference engine (CLAUDE.md)
src/tools/**/*.ts: Device parameters must be addressed by name via the knowledge base, not by raw index
Every tool implementation must be idempotent: calling twice with the same args produces one effect, with state checked before mutation
Composite tool operations must wrap in Song.begin_undo_step() / end_undo_step() to make undo unitary (transactional requirement)
Destructive tools must snapshot state before acting (reversible requirement)
Never assume Track N exists or is the right type — verify state first before mutating (read-before-write requirement)
Tools must return { ok, verified, diff }, not just ok
One tool file per LOM domain in src/tools/ (transport, track, clip, scene, device, rack, automation, modulation, browser, arrangement, recording, mixer, view, session, groove, midi, push, introspection)
Files:
src/tools/resources.tssrc/tools/scene.tssrc/tools/prompts.tssrc/tools/arrangement.tssrc/tools/session.tssrc/tools/track.tssrc/tools/browser.tssrc/tools/session-link.tssrc/tools/recipe.tssrc/tools/preview.tssrc/tools/transport.tssrc/tools/device.tssrc/tools/push.tssrc/tools/clip.ts
src/tools/**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
src/tools/**/*.{ts,tsx}: All tools must be idempotent — calling twice with the same args produces one effect; check state before mutating
Destructive tools must snapshot state before acting to remain reversible
Never assume Track N exists or is the right type — verify state first with read-before-write pattern
Device parameters must be addressed by name via the knowledge base, not by raw index; use schema-aware parameter access
Tools must return{ ok, verified, diff }structure, not justok, to enable create → verify → preview loop
Files:
src/tools/resources.tssrc/tools/scene.tssrc/tools/prompts.tssrc/tools/arrangement.tssrc/tools/session.tssrc/tools/track.tssrc/tools/browser.tssrc/tools/session-link.tssrc/tools/recipe.tssrc/tools/preview.tssrc/tools/transport.tssrc/tools/device.tssrc/tools/push.tssrc/tools/clip.ts
🔇 Additional comments (27)
README.md (1)
3-4: LGTM!src/tools/preview.ts (3)
72-72: LGTM!
112-112: LGTM!
146-146: LGTM!src/tools/device.ts (4)
130-130: LGTM!
205-205: LGTM!
276-276: LGTM!
312-312: LGTM!src/tools/browser.ts (1)
41-41: LGTM!src/tools/push.ts (3)
50-50: LGTM!
96-96: LGTM!
109-109: LGTM!src/tools/transport.ts (3)
48-48: LGTM!
93-94: LGTM!
141-142: LGTM!src/tools/track.ts (1)
70-70: LGTM!Also applies to: 116-116, 174-174, 220-221, 268-268, 313-313
src/tools/clip.ts (1)
49-49: LGTM!Also applies to: 115-115, 163-164, 182-183, 229-230, 329-329, 354-355
src/tools/session.ts (1)
37-38: LGTM!src/tools/session-link.ts (1)
32-33: LGTM!src/tools/scene.ts (1)
41-42: LGTM!src/tools/arrangement.ts (1)
46-46: LGTM!src/tools/recipe.ts (2)
41-41: LGTM!
87-87: LGTM!src/tools/prompts.ts (1)
35-35: LGTM!src/tools/resources.ts (1)
30-30: LGTM!dxt/manifest.json (1)
76-217: LGTM!tests/distribution-validation.test.ts (1)
195-233: LGTM!
Summary
Why
Glama currently cannot score server coherence or tool definition quality until the server is released/inspected there, and the previous short descriptions risked lower TDQS once inspection runs. This makes the repo-side metadata ready for the next Glama sync/release pass.
Validation
npm cinpm run buildnpm run typechecknpm run lintnpm testnpm run build:dxt:checkFollow-up outside this PR
After merge, sync the Glama listing and create a Glama release from the Glama Dockerfile admin page so their hosted scoring can inspect tools, coherence, and usage.
Summary by CodeRabbit
Release Notes
Documentation
Tests