Skip to content

fix(deps): pin Koinon to a released tag instead of tracking main #61

Description

@forkwright

Finding

Hamma's workspace dependency uses a moving branch:

koinon = { git = "https://github.com/forkwright/koinon", branch = "main" }

Koinon published v0.1.0 on 2026-07-08, but Hamma still follows main; the current lockfile happens to pin commit 73179b9c.... A lockfile refresh can therefore absorb unrelated Koinon changes without an explicit dependency decision.

Evidence

  • Workspace Cargo.toml: koinon = { git = "https://github.com/forkwright/koinon", branch = "main" } — a moving-branch dependency, not a tag.
  • Koinon released v0.1.0 on 2026-07-08 — a pinnable, immutable target already exists.
  • Cargo.lock currently resolves the branch to commit 73179b9c... — pinned only incidentally, by whatever main happened to be at last lock refresh.

Why this matters

This conflicts with the fleet's established cross-repo contract of consuming immutable release tags. A branch = "main" dependency means any future cargo update can silently absorb unrelated Koinon changes into Hamma's build with no explicit dependency decision or review point.

Desired correction

Pin the workspace dependency to the verified compatible Koinon release tag. If Hamma requires unreleased behavior, release that behavior in Koinon first rather than using a branch dependency.

Done when:

  • Cargo.toml uses an immutable Koinon tag.
  • Cargo.lock resolves from that tag.
  • CI validates the tag-pinned dependency.
  • A dependency policy check rejects new fleet-internal branch = "main" dependencies.

Surfaced during a 2026-07-21 fleet architecture review.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions