Skip to content

(MOT-4366) Publish worker license metadata - #724

Merged
rohitg00 merged 1 commit into
mainfrom
feat/mot-4366-worker-license-metadata
Aug 6, 2026
Merged

(MOT-4366) Publish worker license metadata#724
rohitg00 merged 1 commit into
mainfrom
feat/mot-4366-worker-license-metadata

Conversation

@rohitg00

@rohitg00 rohitg00 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add license: Apache-2.0 to all 54 regular worker manifests
  • require valid SPDX identifiers or expressions during worker PR checks
  • forward the normalized, SPDX-validated license in registry publish payloads
  • document the manifest requirement and add focused coverage

Why

The repository license already covers these workers, but published registry metadata did not expose it. This gives the registry a reliable SPDX value to display as metadata and a label.

Dependencies

  • depends on iii-hq/registry#84 for registry schema, persistence, and UI support
  • Linear: MOT-4366

Test plan

  • 222 passed across .github/scripts/tests
  • all 54 worker manifests pass .github/scripts/validate_worker.py
  • focused Ruff checks, workflow YAML parsing, and Python compilation pass

@vercel

vercel Bot commented Aug 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
workers Ready Ready Preview Aug 6, 2026 1:50pm
workers-tech-spec Ready Ready Preview Aug 6, 2026 1:50pm

Request Review

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

skill-check — worker

0 verified, 54 skipped (no docs/).

Layer Result
structure
vale
ai
render

Four for four. Nicely done.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@rohitg00, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 6 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0bcfe3b5-5e4e-4ae2-990e-15f15bc71fb4

📥 Commits

Reviewing files that changed from the base of the PR and between b35ee10 and 3da679a.

📒 Files selected for processing (56)
  • .github/scripts/build_publish_payload.py
  • .github/scripts/tests/test_build_publish_payload.py
  • acp/iii.worker.yaml
  • approval-gate/iii.worker.yaml
  • bridge/iii.worker.yaml
  • browser/iii.worker.yaml
  • claude-code/iii.worker.yaml
  • codex/iii.worker.yaml
  • computer/iii.worker.yaml
  • console/iii.worker.yaml
  • context-manager/iii.worker.yaml
  • cron/iii.worker.yaml
  • database/iii.worker.yaml
  • devin/iii.worker.yaml
  • editor/iii.worker.yaml
  • email/iii.worker.yaml
  • eval/iii.worker.yaml
  • fp/iii.worker.yaml
  • github/iii.worker.yaml
  • grok/iii.worker.yaml
  • harness/iii.worker.yaml
  • hermes/iii.worker.yaml
  • http/iii.worker.yaml
  • iii-directory/iii.worker.yaml
  • image-resize/iii.worker.yaml
  • llm-router/iii.worker.yaml
  • lsp/iii.worker.yaml
  • mcp/iii.worker.yaml
  • memory-consolidate/iii.worker.yaml
  • memory/iii.worker.yaml
  • opencode/iii.worker.yaml
  • openwiki/iii.worker.yaml
  • pdf/iii.worker.yaml
  • pi/iii.worker.yaml
  • provider-anthropic/iii.worker.yaml
  • provider-claude-code/iii.worker.yaml
  • provider-deepseek/iii.worker.yaml
  • provider-kimi/iii.worker.yaml
  • provider-llamacpp/iii.worker.yaml
  • provider-openai-codex/iii.worker.yaml
  • provider-openai/iii.worker.yaml
  • provider-xai/iii.worker.yaml
  • provider-zai/iii.worker.yaml
  • pubsub/iii.worker.yaml
  • queue/iii.worker.yaml
  • rbac-proxy/iii.worker.yaml
  • scrapling/iii.worker.yaml
  • session-manager/iii.worker.yaml
  • shell/iii.worker.yaml
  • slack/iii.worker.yaml
  • state/iii.worker.yaml
  • storage/iii.worker.yaml
  • telegram-bot/iii.worker.yaml
  • web/iii.worker.yaml
  • workflow/iii.worker.yaml
  • worktree/iii.worker.yaml
📝 Walkthrough

Walkthrough

The change makes license required in worker manifests, validates and trims the value, includes it in publish payloads, updates validation tests, documents the requirement, and adds Apache-2.0 to existing worker manifests.

Changes

Worker license metadata

Layer / File(s) Summary
License validation and payload construction
.github/scripts/validate_worker.py, .github/scripts/build_publish_payload.py
Worker validation requires a non-empty string license of at most 128 characters. Payload construction includes the normalized license value.
Validation test coverage
.github/scripts/tests/test_validate_worker.py, .github/scripts/tests/test_build_publish_payload.py
Tests cover default insertion, whitespace trimming, missing licenses, invalid types, blank values, and overlong values.
Manifest rollout and onboarding documentation
*/iii.worker.yaml, docs/sops/new-worker.md
Worker manifests declare Apache-2.0. The onboarding checklist documents the required SPDX license field and length limit.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • iii-hq/workers#512: Updates the same payload, validation, test, and manifest areas for separate worker metadata fields.

Suggested reviewers: ytallo, sergiofilhowz, guibeira

Poem

I am a rabbit with metadata to pack,
Apache-2.0 rides in every stack.
Blank leaves are stopped at the gate,
Long strings learn to wait.
Trimmed licenses hop in line,
Payloads now publish neat and fine.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 7.69% 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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: publishing license metadata for workers.
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/mot-4366-worker-license-metadata

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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: 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 `@docs/sops/new-worker.md`:
- Around line 47-52: Update the publish manifest validation in
validate_worker.py to validate license values as non-empty, valid SPDX
identifiers or expressions before publishing workers. Preserve the existing
string, trimming, and 128-character checks, and reject any license that fails
SPDX validation consistently with the requirements documented in new-worker.md.
🪄 Autofix

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

Plan: Pro Plus

Run ID: bc19fd40-5e0b-4c9a-a1d3-c6f098e2c67a

📥 Commits

Reviewing files that changed from the base of the PR and between b62a368 and 5ff0ee3.

📒 Files selected for processing (59)
  • .github/scripts/build_publish_payload.py
  • .github/scripts/tests/test_build_publish_payload.py
  • .github/scripts/tests/test_validate_worker.py
  • .github/scripts/validate_worker.py
  • acp/iii.worker.yaml
  • approval-gate/iii.worker.yaml
  • bridge/iii.worker.yaml
  • browser/iii.worker.yaml
  • claude-code/iii.worker.yaml
  • codex/iii.worker.yaml
  • computer/iii.worker.yaml
  • console/iii.worker.yaml
  • context-manager/iii.worker.yaml
  • cron/iii.worker.yaml
  • database/iii.worker.yaml
  • devin/iii.worker.yaml
  • docs/sops/new-worker.md
  • editor/iii.worker.yaml
  • email/iii.worker.yaml
  • eval/iii.worker.yaml
  • fp/iii.worker.yaml
  • github/iii.worker.yaml
  • grok/iii.worker.yaml
  • harness/iii.worker.yaml
  • hermes/iii.worker.yaml
  • http/iii.worker.yaml
  • iii-directory/iii.worker.yaml
  • image-resize/iii.worker.yaml
  • llm-router/iii.worker.yaml
  • lsp/iii.worker.yaml
  • mcp/iii.worker.yaml
  • memory-consolidate/iii.worker.yaml
  • memory/iii.worker.yaml
  • opencode/iii.worker.yaml
  • openwiki/iii.worker.yaml
  • pdf/iii.worker.yaml
  • pi/iii.worker.yaml
  • provider-anthropic/iii.worker.yaml
  • provider-claude-code/iii.worker.yaml
  • provider-deepseek/iii.worker.yaml
  • provider-kimi/iii.worker.yaml
  • provider-llamacpp/iii.worker.yaml
  • provider-openai-codex/iii.worker.yaml
  • provider-openai/iii.worker.yaml
  • provider-xai/iii.worker.yaml
  • provider-zai/iii.worker.yaml
  • pubsub/iii.worker.yaml
  • queue/iii.worker.yaml
  • rbac-proxy/iii.worker.yaml
  • scrapling/iii.worker.yaml
  • session-manager/iii.worker.yaml
  • shell/iii.worker.yaml
  • slack/iii.worker.yaml
  • state/iii.worker.yaml
  • storage/iii.worker.yaml
  • telegram-bot/iii.worker.yaml
  • web/iii.worker.yaml
  • workflow/iii.worker.yaml
  • worktree/iii.worker.yaml

Comment thread docs/sops/new-worker.md Outdated
@rohitg00
rohitg00 force-pushed the feat/mot-4366-worker-license-metadata branch from 7a6f0c1 to 3da679a Compare August 6, 2026 13:50
@rohitg00
rohitg00 merged commit d54d849 into main Aug 6, 2026
332 of 334 checks passed
@rohitg00
rohitg00 deleted the feat/mot-4366-worker-license-metadata branch August 6, 2026 14:36
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