Skip to content

Update CLI reference for viam module lint-manifest - #5448

Merged
Eliza Farley (elizafarley) merged 2 commits into
mainfrom
claude/update-cli-module-lint-manifest
Oct 21, 2026
Merged

Eliza Farley (elizafarley) merged 2 commits into
mainfrom
claude/update-cli-module-lint-manifest

Conversation

@shannonbradshaw

Copy link
Copy Markdown
Collaborator

RDK v1.13.0 adds viam module lint-manifest, an offline meta.json check, and makes module update and module upload enforce the registry's length limits locally. This PR adds the command to the CLI reference and the limits to "Upload validation".

Source changes

Documents: no ticket key found (neither PR carries one).

Docs changes

  • docs/cli/reference.md:
    • Adds viam module lint-manifest [--module=<path to meta.json>] to the module usage block.
    • New module lint-manifest section listing what the command checks: JSON parse, a valid module_id, short_description ≤ 100 bytes, machinePicker heading ≤ 60 and subheading ≤ 256 bytes. It also says the command warns on a malformed model api, prints no problems found in <path>, and that passing doesn't guarantee an upload succeeds (the command's own usage text says this).
    • "Upload validation" gains a bullet: upload (and update) now fail locally on those limits.

The limits are in bytes because the CLI compares len() of the Go string. The error text says "characters", and module-reference.md says "max 100 chars", which is the same for ASCII. I didn't change module-reference.md.

How I found these

  • Xref lookup: cli-xref.md → module subcommands → docs/cli/reference.md.
  • Grep matches: lint-manifest, module validate (the name in the PR text), short_description, machinePicker, heading, 100 chars across docs/, static/, data/, layouts/. module-reference.md already states the limits; there are no other matches.

Checks

prettier (repo-local 3.2.5), markdownlint, vale, frontmatter_rules.py and make build-prod pass.


Generated by daily docs change agent


Generated by Claude Code

rdk#6594 and rdk#6597, released in RDK v1.13.0, add an offline
meta.json check and make module update and upload enforce the registry's
short_description and machinePicker length limits before the RPC.
@netlify

netlify Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for viam-docs ready!

Name Link
🔨 Latest commit e284e24
🔍 Latest deploy log https://app.netlify.com/projects/viam-docs/deploys/6ad8c877befd5cc500d2615e
😎 Deploy Preview https://deploy-preview-5448--viam-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 44 (🟢 up 3 from production)
Accessibility: 100 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 60 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@viambot viambot added the safe to build This pull request is marked safe to build from a trusted zone label Oct 21, 2026
@elizafarley

Copy link
Copy Markdown
Contributor

Docs review: Ready to merge

Adds viam module lint-manifest to the CLI reference and documents the new local length limits under "Upload validation." Every claim checks out against viamrobotics/rdk at the v1.13.0 tag. Two optional wording nits are below.

CI: All required checks passing

Docs health: No regressions

Nits

  • docs/cli/reference.md:1883: "module_id is a valid module ID" says more than the code checks. parseModuleID only splits on : and requires two parts, and its comment says the parsing is "intentionally lenient so that the backend does the real validation." Fix: "module_id has the form namespace:module-name (or org-id:module-name)."
  • docs/cli/reference.md:2195: The list is introduced as "checked for every upload," but module upload only checks these limits when it finds a meta.json. Without one, it falls back to --name and --public-namespace/--org-id and skips the manifest checks (module_registry.go:310-346). Fix: Start the bullet with "If a meta.json is present, each model's…"
Verified against source (11 claims)
  • lint-manifest subcommand exists, with flag --module defaulting to ./meta.json: viamrobotics/rdk@v1.13.0 cli/app.go:3915-3927
  • Usage text says passing doesn't guarantee an upload succeeds: cli/app.go:3916-3917
  • Runs offline, with no credentials (no newViamClient call): cli/module_registry.go:437-451
  • Checks that the file parses as JSON: loadManifest/parseManifest, cli/module_registry.go:921-941
  • Checks the module_id format: parseModuleID, cli/module_registry.go:832-841 (see nit)
  • Model short_description must be at most 100 bytes (len() of a Go string): cli/module_registry.go:392-406
  • applications[].customizations.machinePicker heading must be at most 60 bytes and subheading at most 256: cli/module_registry.go:394-395, 410-427; JSON tags at lines 56, 68-69, 85, 114
  • Warns on a malformed model api: validateModels → warningf, cli/module_registry.go:383-389
  • Prints no problems found in <path> on success: cli/module_registry.go:449
  • module update enforces the same limits: cli/module_registry.go:242-245
  • module upload enforces the same limits (when a meta.json is present): cli/module_registry.go:343-346

Automated review by Claude. Rerunning the review updates this comment.

lint-manifest only checks module_id's namespace:name form, and upload checks
the length limits only when a meta.json is present.

Copy link
Copy Markdown
Collaborator Author

Fixed in e284e24: module_id now reads "has the form public-namespace:module-name (or org-id:module-name)", and the Upload validation bullet starts "If a meta.json is present".


Generated by Claude Code

@elizafarley
Eliza Farley (elizafarley) merged commit 6777710 into main Oct 21, 2026
14 checks passed
@elizafarley
Eliza Farley (elizafarley) deleted the claude/update-cli-module-lint-manifest branch October 21, 2026 14:49
@github-actions

Copy link
Copy Markdown

🔎💬 Inkeep AI search and chat service is syncing content for source 'Viam Docs'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to build This pull request is marked safe to build from a trusted zone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants