Skip to content

fix: restore CODEOWNERS template comments#5

Open
KooshaPari wants to merge 49 commits into
nanovms:mainfrom
KooshaPari:fix/codeowners-template
Open

fix: restore CODEOWNERS template comments#5
KooshaPari wants to merge 49 commits into
nanovms:mainfrom
KooshaPari:fix/codeowners-template

Conversation

@KooshaPari
Copy link
Copy Markdown

Summary

  • Restore the CODEOWNERS template structure (default owner + comments) that was in the original local commit, after upstream merged a minimal version
  • The extra comments improve maintainability for future CODEOWNERS additions

Test plan

  • Review CODEOWNERS diff

🤖 Generated with Claude Code

KooshaPari and others added 30 commits April 24, 2026 12:52
Co-authored-by: Forge <forge@phenotype.local>
Document this repo as a Phenotype-org fork of nanovms/ops-mcp, preserve
upstream README below the NOTICE, point to the tracked `upstream` remote,
and record fork rationale (MCP-first nanoVMs bridge, extension points
for phenotype-nanovms-client integration). Apache-2.0 license preserved.

Co-authored-by: Forge <forge@phenotype.dev>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces a canonical machine-readable manifest of every MCP tool this
server exposes so downstream consumers (agents, registries, doc sites) can
discover the surface without reading main.go.

Changes:
- Add --dump-tools (and --dump-tools-path) flags to main.go. When set, the
  binary writes tools.json to disk and exits 0 without starting the server.
- Centralize tool registration in a toolRegistrations() slice that is the
  single source of truth for both server.RegisterTool() calls and the
  manifest generator.
- Emit tools.json with the MCP tools/list shape: name, description,
  inputSchema (JSON Schema). Schemas are reflected from the handler
  argument structs via invopop/jsonschema (already transitively depended
  on by the SDK; promoted to a direct require).
- Add .github/workflows/manifest-check.yml which regenerates tools.json on
  every PR and fails via `git diff --exit-code` if the committed manifest
  drifts from the code.
- Document the manifest and CI drift check in README.md.
- Seed the initial tools.json (3.8 KB, 5 tools: pkg_load, instance_logs,
  instance_create, list_instances, list_images).

SDK limitation noted: metoro-io/mcp-golang@v0.13.0 stores registered tools
in an unexported field on *Server and exposes no ListTools()/Tools()
accessor. Rather than hand-authoring the manifest, we own the registration
list locally and re-run the same jsonschema reflector the SDK uses
internally, which keeps the manifest honest and derivable. A future
upstream PR adding a public accessor would let us drop the
toolRegistrations() indirection.

Refs #127 (MCP manifest bootstrap audit), #118 (tool discovery findings).

Co-authored-by: Forge <forge@phenotype.dev>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…mage_name) (#6)

The InstanceArguments struct had a JSON tag 'longitude' which is semantically
incorrect and confusing. The field should map to 'image_name' to match the
actual purpose (specifying the image name for instance operations).

This fixes schema drift between tools.json and the Go handler implementation,
making the API contract clearer for MCP clients.

Affected tools:
- instance_logs: 'longitude' → 'image_name'
- instance_create: 'longitude' → 'image_name'

Note: After this change, run 'go run main.go -dump-tools' to regenerate
tools.json with the corrected field names.
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.37.0 to 0.45.0.
- [Commits](golang/crypto@v0.37.0...v0.45.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.36.0 to 1.41.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.36.0...v1.41.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
  dependency-version: 1.41.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/buger/jsonparser](https://github.com/buger/jsonparser) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/buger/jsonparser/releases)
- [Commits](buger/jsonparser@v1.1.1...v1.1.2)

---
updated-dependencies:
- dependency-name: github.com/buger/jsonparser
  dependency-version: 1.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Combines the remaining Dependabot go.mod/go.sum updates that conflicted after the first dependency merge wave.

Validation: go test ./...

Co-authored-by: Codex <noreply@openai.com>
Enable AgilePlus spec tracking, FR traceability, and standard project conventions. Wave-5 governance push.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore(ci): adopt phenotype-tooling quality-gate + fr-coverage

* test(smoke): seed minimal smoke test — proves harness works

* chore(governance): adopt CLAUDE.md + governance framework

Enable AgilePlus spec tracking, FR traceability, and standard project conventions. Wave-5 governance push.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(changelog): seed retroactive CHANGELOG from git history via git-cliff

* docs(readme): expand [wave-3 hygiene]

* docs(worklog): bootstrap worklog scaffolding (org-wide gap closure)

---------

Co-authored-by: Forge <forge@phenotype.dev>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bump github.com/docker/docker to the latest published v28 module and update github.com/nanovms/ops to the matching upstream revision that supports the newer Docker API surface. This addresses the remaining installable Docker advisory path while preserving buildability.

Validation:
- go test ./...
- go vet ./...
- go build ./...

Co-authored-by: Codex <noreply@openai.com>
fix(deps): update ops and docker modules

Local validation:
- go test ./...
- go vet ./...
- go build ./...

Co-authored-by: Codex <noreply@openai.com>
Add explicit read-only token permissions to lightweight workflows and pin GitHub Actions dependencies by commit SHA with version comments. This targets the actionable CodeQL/Scorecard workflow governance alerts without changing runtime code.

Validation:
- python3 YAML parse for .github/workflows/*.yml
- actionlint .github/workflows/*.yml
- git diff --check

Co-authored-by: Codex <noreply@openai.com>
…card

ci: harden workflow permissions and action pins

Local validation:
- python3 YAML parse for .github/workflows/*.yml
- actionlint .github/workflows/*.yml
- git diff --check

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
* Refine Taskfile lint task

Co-authored-by: Codex <noreply@openai.com>

* Keep Taskfile lint scoped to go vet

Co-authored-by: Codex <noreply@openai.com>

---------

Co-authored-by: Codex <noreply@openai.com>
Keep Go build and temporary artifacts under a repo-local cache directory so the common Taskfile tasks avoid leaking transient files into the worktree root.

Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Limit gofmt checks to tracked Go source files so local Go build cache output under .cache does not break lint after running Taskfile tasks.

Co-authored-by: Codex <noreply@openai.com>
KooshaPari and others added 18 commits April 28, 2026 11:36
Keep Go build, module, and temporary caches under the Taskfile cache tree, and make clean handle read-only Go module cache contents before deleting generated cache files.

Validation:
- git diff --check
- task --list
- task clean
- task build/test/lint attempted locally but blocked by /tmp disk exhaustion during Go dependency compilation

Co-authored-by: Codex <noreply@openai.com>
Centralize repo-local Go cache directory preparation behind an internal task used by build, test, and lint.

Co-authored-by: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* chore: add standard issue templates

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: add standard issue templates

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: add standard issue templates

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: add standard issue templates

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Phenotype Agent <agent@phenotype.ai>
Pin all action refs to immutable SHAs across workflow files:
- checkout@v4 → @11bd71901bbe5b1630ceea73d27597364c9af683
- checkout@v6 → @de0fac2e4500dabe0009e67214ff5f5447ce83dd
- setup-node@v4/v5, setup-python@v4/v5, setup-go@v5
- upload-artifact@v4/v7, download-artifact@v4
- cache@v3/v4, github-script@v7
- configure-pages@v5/v6, deploy-pages@v4/v5
- upload-pages-artifact@v3/v5, dependency-review-action@v4

Fixes version-tag normalization (add v4/v5 tags where missing).
Fixes double-SHA corruption artifacts from prior patching rounds.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Codex <noreply@openai.com>
* chore: add AGENTS.md governance file [skip ci]

* chore: add FUNDING.yml governance file [skip ci]
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Upstream merged a minimal CODEOWNERS; restore the template structure
that was in the original local commit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 28, 2026 10:52
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

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.

2 participants