Skip to content

chore: move vmprovisioner protos to shared proto#3494

Merged
chronark merged 2 commits intomainfrom
07-09-chore_move_vmprovisioner_protos_to_shared_protochore
Jul 11, 2025
Merged

chore: move vmprovisioner protos to shared proto#3494
chronark merged 2 commits intomainfrom
07-09-chore_move_vmprovisioner_protos_to_shared_protochore

Conversation

@chronark
Copy link
Collaborator

@chronark chronark commented Jul 9, 2025

What does this PR do?

Moves the vmprovisioner proto files to the core.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)
  • Enhancement (small improvements)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How should this be tested?

  • Test A
  • Test B

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read Contributing Guide
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand areas
  • Ran pnpm build
  • Ran pnpm fmt
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Unkey Docs if changes were necessary

Summary by CodeRabbit

  • Refactor

    • Updated import paths throughout the project to use a new location for protobuf-generated code.
    • Changed protocol buffer package declarations to reflect a new naming convention.
    • Simplified build and CI workflows by removing protobuf-related automation and targets.
    • Updated internal module dependencies and upgraded several third-party libraries for improved compatibility.
  • Chores

    • Removed obsolete configuration files related to protobuf code generation and linting.
    • Updated Go module files to reference new dependency versions and internal modules.

@changeset-bot
Copy link

changeset-bot bot commented Jul 9, 2025

⚠️ No Changeset found

Latest commit: d004cf7

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link

vercel bot commented Jul 9, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
dashboard ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 11, 2025 7:43am
engineering ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 11, 2025 7:43am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 9, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough
## Walkthrough

This change migrates the protobuf package for the VM provisioner service from a deployment-specific path to a centralized location under `go/gen/proto/metal/vmprovisioner/v1`. It removes local protobuf generation and Buf configuration, updates all affected Go import paths, adjusts module dependencies, and updates the protobuf package declaration accordingly.

## Changes

| Files/Paths                                                                                      | Change Summary                                                                                                    |
|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| go/deploy/metald/Makefile, go/deploy/metald/buf.gen.yaml, go/deploy/metald/buf.yaml              | Removed protobuf generation, Buf config, and related Makefile targets.                                           |
| go/deploy/metald/client/* , go/deploy/metald/cmd/metald/main.go, go/deploy/metald/internal/*     | Updated import paths from `metald/gen/vmprovisioner/v1` to `gen/proto/metal/vmprovisioner/v1`.                   |
| go/deploy/metald/go.mod                                                                          | Updated internal and indirect dependencies, added root module replace, and pinned versions to specific commits.  |
| go/go.mod                                                                                        | Bumped Go version, added/updated internal and external dependencies, and refreshed indirect dependencies.        |
| go/proto/metal/vmprovisioner/v1/vmprovisioner.proto                                              | Changed protobuf package and `go_package` option to `metal.vmprovisioner.v1` and new import path.                 |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant Client
    participant VMProvisionerAPI (Go)
    participant ProtoTypes (go/gen/proto/metal/vmprovisioner/v1)

    Client->>VMProvisionerAPI (Go): Import ProtoTypes
    VMProvisionerAPI (Go)->>ProtoTypes: Use shared protobuf types and services

Suggested reviewers

  • perkinsjr
  • mcstepp
  • ogzhanolguncu

</details>

<!-- walkthrough_end -->
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->

---

<details>
<summary>📜 Recent review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: ASSERTIVE**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 2af1b10fe7e04cc30f48ad5ef527d1bb68e9d5e8 and d004cf719fcb86b5f095bbe84f37934ff14401e0.

</details>

<details>
<summary>⛔ Files ignored due to path filters (1)</summary>

* `go/go.sum` is excluded by `!**/*.sum`

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `go/go.mod` (5 hunks)

</details>

</details>
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=unkeyed/unkey&utm_content=3494):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

Copy link
Collaborator Author

chronark commented Jul 9, 2025

@vercel vercel bot temporarily deployed to Preview – dashboard July 9, 2025 11:56 Inactive
@vercel vercel bot temporarily deployed to Preview – engineering July 9, 2025 11:56 Inactive
@chronark chronark changed the title chore: move vmprovisioner protos to shared protochore chore: move vmprovisioner protos to shared proto Jul 9, 2025
@chronark chronark marked this pull request as ready for review July 11, 2025 07:39
@github-actions
Copy link
Contributor

github-actions bot commented Jul 11, 2025

Thank you for following the naming conventions for pull request titles! 🙏

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🔭 Outside diff range comments (1)
go/deploy/metald/internal/backend/cloudhypervisor/client.go (1)

62-66: Nil-check on embedded proto sub-messages

config.GetCpu().GetVcpuCount() and config.GetMemory().GetSizeBytes() assume GetCpu() / GetMemory() always return non-nil; earlier code nil-checks elsewhere. Consider mirroring that check here to avoid a panic if callers forget to populate those fields.

-    slog.Int("vcpus", int(config.GetCpu().GetVcpuCount())),
-    slog.Int64("memory_bytes", config.GetMemory().GetSizeBytes()),
+    slog.Int("vcpus", func() int {
+        if cpu := config.GetCpu(); cpu != nil {
+            return int(cpu.GetVcpuCount())
+        }
+        return 0
+    }()),
+    slog.Int64("memory_bytes", func() int64 {
+        if mem := config.GetMemory(); mem != nil {
+            return mem.GetSizeBytes()
+        }
+        return 0
+    }()),
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6a28e31 and 2af1b10.

⛔ Files ignored due to path filters (12)
  • go/deploy/metald/go.sum is excluded by !**/*.sum
  • go/gen/deploy/assetmanagerd/proto/asset/v1/asset.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • go/gen/deploy/assetmanagerd/proto/asset/v1/assetv1connect/asset.connect.go is excluded by !**/gen/**
  • go/gen/deploy/billaged/proto/billing/v1/billing.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • go/gen/deploy/billaged/proto/billing/v1/billingv1connect/billing.connect.go is excluded by !**/gen/**
  • go/gen/deploy/builderd/proto/builder/v1/builder.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • go/gen/deploy/builderd/proto/builder/v1/builderv1connect/builder.connect.go is excluded by !**/gen/**
  • go/gen/deploy/metald/proto/vmprovisioner/v1/vm.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • go/gen/deploy/metald/proto/vmprovisioner/v1/vmprovisionerv1connect/vm.connect.go is excluded by !**/gen/**
  • go/gen/proto/metal/vmprovisioner/v1/vmprovisioner.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • go/gen/proto/metal/vmprovisioner/v1/vmprovisionerv1connect/vmprovisioner.connect.go is excluded by !**/gen/**
  • go/go.sum is excluded by !**/*.sum
📒 Files selected for processing (23)
  • go/deploy/metald/Makefile (4 hunks)
  • go/deploy/metald/buf.gen.yaml (0 hunks)
  • go/deploy/metald/buf.yaml (0 hunks)
  • go/deploy/metald/client/client.go (1 hunks)
  • go/deploy/metald/client/cmd/metald-cli/main.go (1 hunks)
  • go/deploy/metald/client/config.go (1 hunks)
  • go/deploy/metald/client/example_test.go (1 hunks)
  • go/deploy/metald/client/types.go (1 hunks)
  • go/deploy/metald/client/vmconfig.go (1 hunks)
  • go/deploy/metald/cmd/metald/main.go (1 hunks)
  • go/deploy/metald/go.mod (4 hunks)
  • go/deploy/metald/internal/backend/cloudhypervisor/client.go (1 hunks)
  • go/deploy/metald/internal/backend/cloudhypervisor/types.go (1 hunks)
  • go/deploy/metald/internal/backend/firecracker/automatic_build_test.go (1 hunks)
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4.go (1 hunks)
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4_test.go (1 hunks)
  • go/deploy/metald/internal/backend/types/backend.go (1 hunks)
  • go/deploy/metald/internal/database/repository.go (1 hunks)
  • go/deploy/metald/internal/reconciler/vm_reconciler.go (1 hunks)
  • go/deploy/metald/internal/service/vm.go (1 hunks)
  • go/deploy/metald/internal/service/vm_cleanup_bench_test.go (1 hunks)
  • go/go.mod (5 hunks)
  • go/proto/metal/vmprovisioner/v1/vmprovisioner.proto (2 hunks)
💤 Files with no reviewable changes (2)
  • go/deploy/metald/buf.yaml
  • go/deploy/metald/buf.gen.yaml
🧰 Additional context used
📓 Path-based instructions (7)
`go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,env,conf,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml}`: All text, ASCII, and code files MUST end with a newline.

go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,env,conf,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml}: All text, ASCII, and code files MUST end with a newline.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/internal/backend/cloudhypervisor/types.go
  • go/deploy/metald/client/types.go
  • go/deploy/metald/client/example_test.go
  • go/deploy/metald/internal/service/vm_cleanup_bench_test.go
  • go/deploy/metald/internal/reconciler/vm_reconciler.go
  • go/deploy/metald/cmd/metald/main.go
  • go/deploy/metald/internal/backend/cloudhypervisor/client.go
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4_test.go
  • go/deploy/metald/client/client.go
  • go/deploy/metald/client/vmconfig.go
  • go/deploy/metald/internal/database/repository.go
  • go/deploy/metald/client/cmd/metald-cli/main.go
  • go/deploy/metald/internal/backend/firecracker/automatic_build_test.go
  • go/deploy/metald/client/config.go
  • go/deploy/metald/internal/backend/types/backend.go
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4.go
  • go/deploy/metald/internal/service/vm.go
`go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,...

go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml}: Use AIDEV-NOTE:, AIDEV-TODO:, AIDEV-BUSINESS_RULE:, or AIDEV-QUESTION: (all-caps prefix) as anchor comments aimed at AI and developers.
Update relevant anchors when modifying associated code.
Do not remove AIDEV-*s without explicit human instruction.
Make sure to add relevant anchor comments whenever a file or piece of code is too complex, very important, confusing, or could have a bug.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/internal/backend/cloudhypervisor/types.go
  • go/deploy/metald/client/types.go
  • go/deploy/metald/client/example_test.go
  • go/deploy/metald/internal/service/vm_cleanup_bench_test.go
  • go/deploy/metald/internal/reconciler/vm_reconciler.go
  • go/deploy/metald/cmd/metald/main.go
  • go/deploy/metald/internal/backend/cloudhypervisor/client.go
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4_test.go
  • go/deploy/metald/client/client.go
  • go/deploy/metald/client/vmconfig.go
  • go/deploy/metald/internal/database/repository.go
  • go/deploy/metald/client/cmd/metald-cli/main.go
  • go/deploy/metald/internal/backend/firecracker/automatic_build_test.go
  • go/deploy/metald/client/config.go
  • go/deploy/metald/internal/backend/types/backend.go
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4.go
  • go/deploy/metald/internal/service/vm.go
`go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go`: When a service's `*.go` code changes significantly, increase the patch-level version number.

go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go: When a service's *.go code changes significantly, increase the patch-level version number.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/internal/backend/cloudhypervisor/types.go
  • go/deploy/metald/client/types.go
  • go/deploy/metald/client/example_test.go
  • go/deploy/metald/internal/service/vm_cleanup_bench_test.go
  • go/deploy/metald/internal/reconciler/vm_reconciler.go
  • go/deploy/metald/cmd/metald/main.go
  • go/deploy/metald/internal/backend/cloudhypervisor/client.go
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4_test.go
  • go/deploy/metald/client/client.go
  • go/deploy/metald/client/vmconfig.go
  • go/deploy/metald/internal/database/repository.go
  • go/deploy/metald/client/cmd/metald-cli/main.go
  • go/deploy/metald/internal/backend/firecracker/automatic_build_test.go
  • go/deploy/metald/client/config.go
  • go/deploy/metald/internal/backend/types/backend.go
  • go/deploy/metald/internal/backend/firecracker/sdk_client_v4.go
  • go/deploy/metald/internal/service/vm.go
`go/deploy/*/cmd/*/**`: Service binary code should be located at `/cmd/`.

go/deploy/*/cmd/*/**: Service binary code should be located at <service>/cmd/<service | command>.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/cmd/metald/main.go
`go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile`: Never use `go ...

go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile: Never use go build for any of the assetmanagerd, billaged, builderd, metald binaries.
Use make build to test that the binary builds.
Use make install to build and install the binary with systemd unit from $SERVICE/contrib/systemd.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/Makefile
`go/deploy/*/Makefile`: Service-level makefile should be `/Makefile`.

go/deploy/*/Makefile: Service-level makefile should be <service>/Makefile.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/Makefile
`go/deploy/**/Makefile`: Global makefile should be `Makefile` at the root.

go/deploy/**/Makefile: Global makefile should be Makefile at the root.

📄 Source: CodeRabbit Inference Engine (go/deploy/CLAUDE.md)

List of files the instruction was applied to:

  • go/deploy/metald/Makefile
🧠 Learnings (22)
📓 Common learnings
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/*/Makefile : Service-level makefile should be `<service>/Makefile`.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/*/cmd/*/** : Service binary code should be located at `<service>/cmd/<service | command>`.
go/deploy/metald/internal/backend/cloudhypervisor/types.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/client/types.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/client/example_test.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/internal/service/vm_cleanup_bench_test.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/internal/reconciler/vm_reconciler.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/cmd/metald/main.go (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/internal/backend/cloudhypervisor/client.go (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/internal/backend/firecracker/sdk_client_v4_test.go (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/client/client.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/proto/metal/vmprovisioner/v1/vmprovisioner.proto (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/*/cmd/*/** : Service binary code should be located at `<service>/cmd/<service | command>`.
go/deploy/metald/client/vmconfig.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/internal/database/repository.go (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/client/cmd/metald-cli/main.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/internal/backend/firecracker/automatic_build_test.go (3)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Use `make build` to test that the binary builds.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/client/config.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/internal/backend/types/backend.go (1)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
go/deploy/metald/internal/backend/firecracker/sdk_client_v4.go (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/go.mod (3)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Update relevant anchors when modifying associated code.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/internal/service/vm.go (2)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
go/deploy/metald/go.mod (4)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Use `make build` to test that the binary builds.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Update relevant anchors when modifying associated code.
go/deploy/metald/Makefile (8)
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/Makefile : Global makefile should be `Makefile` at the root.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Use `make build` to test that the binary builds.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Never use `go build` for any of the `assetmanagerd`, `billaged`, `builderd`, `metald` binaries.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/*/Makefile : Service-level makefile should be `<service>/Makefile`.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/*.go : When a service's `*.go` code changes significantly, increase the patch-level version number.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Use `make install` to build and install the binary with systemd unit from `$SERVICE/contrib/systemd`.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/**/*.{go,js,ts,tsx,py,sh,md,txt,json,yaml,yml,ini,rb,java,c,cpp,h,cs,rs,php,html,css,scss,xml} : Do not remove `AIDEV-*`s without explicit human instruction.
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/*/cmd/*/** : Service binary code should be located at `<service>/cmd/<service | command>`.
🪛 Buf (1.54.0)
go/proto/metal/vmprovisioner/v1/vmprovisioner.proto

3-3: Files with package "metal.vmprovisioner.v1" must be within a directory "metal/vmprovisioner/v1" relative to root but were in directory "go/proto/metal/vmprovisioner/v1".

(PACKAGE_DIRECTORY_MATCH)

🪛 checkmake (0.2.2)
go/deploy/metald/Makefile

[warning] 18-18: Missing required phony target "all"

(minphony)

🔇 Additional comments (19)
go/deploy/metald/internal/backend/cloudhypervisor/types.go (1)

4-5: Confirm new proto path is reflected in go.mod

The import path shift to github.com/unkeyed/unkey/go/gen/proto/metal/vmprovisioner/v1 looks correct, but please ensure:

  1. go.mod / go.sum have been updated (go mod tidy).
  2. No lingering replace directives for the old path remain in downstream modules.
go/deploy/metald/internal/backend/firecracker/automatic_build_test.go (1)

11-14: 👍 Import path update looks correct
Nothing else changed in the test; compilation should succeed once the module graph is tidied.

go/deploy/metald/internal/backend/firecracker/sdk_client_v4_test.go (1)

9-11: Path update acknowledged

LGTM. No further action required.

go/deploy/metald/internal/database/repository.go (1)

10-10: LGTM: Clean import path update for protobuf centralization.

The import path change from deployment-specific to centralized protobuf location is well-executed and maintains the existing metaldv1 alias, ensuring no breaking changes to the codebase.

go/deploy/metald/internal/service/vm_cleanup_bench_test.go (1)

16-16: LGTM: Benchmark tests updated with centralized protobuf path.

The import path change maintains consistency with the broader refactoring while preserving the existing metaldv1 alias and test functionality.

go/deploy/metald/client/config.go (1)

9-9: LGTM: Client configuration updated with centralized protobuf path.

The import path change correctly updates the reference to the centralized protobuf location while maintaining the existing vmprovisionerv1 alias.

go/deploy/metald/client/vmconfig.go (1)

6-6: LGTM: VM configuration builder updated with centralized protobuf path.

The import path change correctly references the centralized protobuf location while preserving the existing vmprovisionerv1 alias and builder functionality.

go/deploy/metald/client/example_test.go (1)

10-10: LGTM: Example tests updated with centralized protobuf path.

The import path change maintains consistency with the refactoring effort while preserving the existing vmprovisionerv1 alias and example test functionality.

go/deploy/metald/client/client.go (1)

11-12: LGTM! Import path updates are consistent and correct.

The import paths have been properly updated to use the centralized proto location, which aligns with the PR objective of moving vmprovisioner protos to shared proto.

go/deploy/metald/internal/backend/types/backend.go (1)

7-7: LGTM! Import path correctly updated to centralized proto location.

The import path has been properly updated while maintaining the existing alias, ensuring seamless integration with the new proto package location.

go/deploy/metald/internal/reconciler/vm_reconciler.go (1)

14-14: LGTM! Import path correctly updated to centralized proto location.

The import path has been properly updated while maintaining the existing alias, ensuring seamless integration with the new proto package location.

go/deploy/metald/client/cmd/metald-cli/main.go (1)

13-13: LGTM! Import path correctly updated to centralized proto location.

The import path has been properly updated while maintaining the existing alias, ensuring seamless integration with the new proto package location.

go/deploy/metald/cmd/metald/main.go (1)

30-30: LGTM! Import path correctly updated to centralized proto location.

The import path has been properly updated to use the centralized proto location for the connect client, ensuring seamless integration with the new proto package location.

go/deploy/metald/internal/backend/firecracker/sdk_client_v4.go (1)

27-27: LGTM: Clean import path migration to centralized proto location.

The import path update correctly reflects the migration from deployment-specific protobuf generation to the shared proto location, aligning with the PR's objective to centralize vmprovisioner proto management.

go/deploy/metald/internal/service/vm.go (1)

14-15: LGTM: Consistent import path migration for both protobuf packages.

Both import path updates correctly reflect the migration from deployment-specific protobuf generation to the shared proto location. The changes include both the main metaldv1 package and the vmprovisionerv1connect service handler package, maintaining consistency in the centralized proto organization.

go/proto/metal/vmprovisioner/v1/vmprovisioner.proto (1)

3-3: Buf directory rule now fails

Static analysis (PACKAGE_DIRECTORY_MATCH) points out that files for package metal.vmprovisioner.v1 must live in metal/vmprovisioner/v1, but the file sits under go/proto/....
If Buf is still used elsewhere in the mono-repo this will fail CI. Either:

  1. Move the file to proto/metal/vmprovisioner/v1, or
  2. Disable the rule / adjust the workspace configuration.
go/deploy/metald/go.mod (1)

3-3: go 1.24.4 targets an unreleased toolchain

Go 1.24 is not out yet. Using a future minor version will fail on standard builders (1.22.x is current).
Please pin to the latest released version used in CI, or ensure the CI image installs the tip toolchain.

go/go.mod (1)

3-3: Root module also moved to go 1.24.4

Same concern as in metald/go.mod: make sure CI and downstream users have a 1.24 toolchain available.

go/deploy/metald/Makefile (1)

30-31: ci target depends on lint but not on fmt/vet anymore

The check target still calls fmt vet lint, but ci now skips fmt.
If the intention is to mirror the previous behaviour, add fmt and vet back to the dependency list.

⛔ Skipped due to learnings
Learnt from: CR
PR: unkeyed/unkey#0
File: go/deploy/CLAUDE.md:0-0
Timestamp: 2025-07-09T08:42:29.316Z
Learning: Applies to go/deploy/{assetmanagerd,billaged,builderd,metald}/**/Makefile : Use `make build` to test that the binary builds.

Comment on lines 3 to 5
import (
vmprovisionerv1 "github.com/unkeyed/unkey/go/deploy/metald/gen/vmprovisioner/v1"
vmprovisionerv1 "github.com/unkeyed/unkey/go/gen/proto/metal/vmprovisioner/v1"
)
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Keep aliasing consistent across packages

You switched to the new central proto path—great. Double-check that every package still aliases it as vmprovisionerv1 (some older files used metaldv1). Consistency prevents accidental mixed imports.

🤖 Prompt for AI Agents
In go/deploy/metald/client/types.go around lines 3 to 5, ensure the imported
package alias for the proto path is consistently set to vmprovisionerv1. If any
instances use a different alias like metaldv1, update them to vmprovisionerv1 to
maintain uniformity across all files and avoid mixed imports.

Comment on lines 15 to 18
"github.com/unkeyed/unkey/go/deploy/metald/internal/backend/types"
metaldv1 "github.com/unkeyed/unkey/go/gen/proto/metal/vmprovisioner/v1"

"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Import order now breaks goimports ordering

metaldv1 (external) is listed between local and std-lib imports. Running goimports will reshuffle; committing the formatted file avoids noisy diffs later.

🤖 Prompt for AI Agents
In go/deploy/metald/internal/backend/cloudhypervisor/client.go around lines 15
to 18, the import order breaks goimports ordering by placing the external import
'metaldv1' between local and standard library imports. Rearrange the imports to
follow the standard grouping: first standard library imports, then external
imports, and finally local imports. Run goimports to automatically format and
order the imports correctly before committing to avoid noisy diffs.

Comment on lines +3 to +5
package metal.vmprovisioner.v1;

option go_package = "metald/gen/vmprovisioner/v1;vmprovisionerv1";
option go_package = "github.com/unkeyed/unkey/go/gen/proto/metal/vmprovisioner/v1;vmprovisionerv1";
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Package rename introduces wire-level breaking changes

Switching the protobuf package from vmprovisioner.v1 to metal.vmprovisioner.v1 (and the corresponding go_package path) changes:

  • The fully-qualified gRPC service name (/metal.vmprovisioner.v1.VmService/...).
  • Fully-qualified message type URLs (affects Any, google.api.http transcoding, etc.).

Unless every client and server is deployed in lock-step, this will break existing traffic.
Consider providing a deprecation/transition strategy (dual-register, alias proto, version bump, or a gateway shim) before merging.

🧰 Tools
🪛 Buf (1.54.0)

3-3: Files with package "metal.vmprovisioner.v1" must be within a directory "metal/vmprovisioner/v1" relative to root but were in directory "go/proto/metal/vmprovisioner/v1".

(PACKAGE_DIRECTORY_MATCH)

🤖 Prompt for AI Agents
In go/proto/metal/vmprovisioner/v1/vmprovisioner.proto around lines 3 to 5,
changing the protobuf package name to metal.vmprovisioner.v1 causes wire-level
breaking changes affecting service names and message type URLs. To fix this,
revert the package name to the original vmprovisioner.v1 or implement a
transition strategy such as dual-registering both package names, creating an
alias proto, bumping the version, or adding a gateway shim to maintain
compatibility during rollout.

Comment on lines +11 to 15
github.com/unkeyed/unkey/go v0.0.0-00010101000000-000000000000
github.com/unkeyed/unkey/go/deploy/assetmanagerd v0.0.0-20250709084132-0dd195e4c51b
github.com/unkeyed/unkey/go/deploy/billaged v0.0.0-20250709084132-0dd195e4c51b
github.com/unkeyed/unkey/go/deploy/builderd v0.0.0-20250709084132-0dd195e4c51b
github.com/unkeyed/unkey/go/deploy/pkg/health v0.0.0-00010101000000-000000000000
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

❓ Verification inconclusive

Nested module now depends on parent root module – risk of cyclic upgrades

Requiring github.com/unkeyed/unkey/go (the repository root) from inside the metald sub-module can create upgrade loops and complicate tagging.
Double-check that nothing inside metald actually imports packages from the root module; if not, drop this require/replace pair.


🏁 Script executed:

#!/bin/bash
# List packages in metald that import the root module.
rg -n $'^import .*"github.com/unkeyed/unkey/go' go/deploy/metald | head

Length of output: 72


Remove unnecessary root module requirement in metald/go.mod

We ran:

rg -n '^import .*"github.com/unkeyed/unkey/go' go/deploy/metald

and found no imports of the parent root module in go/deploy/metald. You can safely remove the require github.com/unkeyed/unkey/go v0.0.0-00010101000000-000000000000 line (and any associated replace directives) from:

  • go/deploy/metald/go.mod
🤖 Prompt for AI Agents
In go/deploy/metald/go.mod around lines 11 to 15, remove the line requiring the
root module github.com/unkeyed/unkey/go at version
v0.0.0-00010101000000-000000000000, as it is not imported anywhere in the
go/deploy/metald package. Also remove any associated replace directives related
to this root module to clean up unnecessary dependencies.

Comment on lines +31 to +33
github.com/unkeyed/unkey/go/deploy/assetmanagerd v0.0.0-20250709084132-0dd195e4c51b
github.com/unkeyed/unkey/go/deploy/billaged v0.0.0-20250709084132-0dd195e4c51b
github.com/unkeyed/unkey/go/deploy/builderd v0.0.0-20250709084132-0dd195e4c51b
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Internal sub-module pseudo-versions hard-pinned

All three internal services are pinned to the same pseudo-version/commit.
If they are meant to track the current branch, consider using replace ../<service> instead of publishing pseudo-versions to avoid manual bumps.

🤖 Prompt for AI Agents
In go/go.mod around lines 31 to 33, the internal sub-modules are hard-pinned to
specific pseudo-versions, which requires manual updates for each new commit. To
fix this, replace these pseudo-version dependencies with local replace
directives pointing to the relative paths of the internal services (e.g.,
replace github.com/unkeyed/unkey/go/deploy/assetmanagerd => ../assetmanagerd).
This will make the modules track the current branch automatically and avoid
manual version bumps.

Comment on lines +20 to 22
build: deps ## Build the binary
@mkdir -p $(BUILD_DIR)
@go build $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME) ./cmd/metald
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

build target still uses go build, violating service Makefile guidelines

Project guidelines state: “Never use go build for any of the … metald binaries.”
Refactor to delegate compilation to an internal script or go install, e.g.:

-	@go build $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME) ./cmd/metald
+	@go install $(LDFLAGS) ./cmd/metald
+	@mkdir -p $(BUILD_DIR)
+	@cp "$(shell go env GOPATH)/bin/$(BINARY_NAME)" "$(BUILD_DIR)/$(BINARY_NAME)"
🤖 Prompt for AI Agents
In go/deploy/metald/Makefile at lines 20 to 22, the build target uses `go
build`, which violates the project guideline that forbids using `go build` for
metald binaries. To fix this, replace the `go build` command with a call to an
internal build script or use `go install` to compile the binary, ensuring the
build process aligns with the service Makefile guidelines.

@vercel vercel bot temporarily deployed to Preview – engineering July 11, 2025 07:42 Inactive
@vercel vercel bot temporarily deployed to Preview – dashboard July 11, 2025 07:42 Inactive
@chronark chronark merged commit fd3dac2 into main Jul 11, 2025
26 of 37 checks passed
@chronark chronark deleted the 07-09-chore_move_vmprovisioner_protos_to_shared_protochore branch July 11, 2025 07:43
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