Debug Mise Lint Failure on Main

Claude Code·Opus 4.8[1m]·Soph·3mo ago·23min·1 Checkpoint·1 file change·+26/-18·37.4K tokens

mise run lint is failing, can you check why and make a PR to fix, and also: how did this happen on main branch

3mo ago·23m

Done. PR opened: https://github.com/entireio/cli/pull/1436

What was wrong

mise run lint failed at the typecheck stage because the cli package's test binary doesn't compile. cmd/entire/cli/trail_cmd_test.go referenced four auth test helpers that no longer exist:

  • newAuthMemStore
  • newResolveTestManager
  • auth.SetManagerForTest
  • auth.DiscoveryUnavailableForTest

The fix

Rewrote the two affected tests (TestRunTrailListAll_PrintsLoginHintWhenNotLoggedIn and TestRunTrailListAll_ValidatesOptionsBeforeAuth) to use the surviving discovery seam auth.SetResolveContextForAPIForTest + tokenstore.UseFileBackendForTesting — the exact pattern activity_cmd_test.go already uses for the same scenarios. Asserted behavior is unchanged (still checks ErrNotLoggedIn + login hint, and that validation short-circuits before auth). mise run lint now reports 0 issues and the tests pass.

How it happened on main

This is a semantic (logical) merge conflict — two PRs each green in isolation, no textual overlap, so git merged both cleanly but the combination doesn't compile:

  1. #1410 (paul/cor-393-demolish-auth-fallbacks, commit 10aa97eec) deleted those auth test helpers when moving data-API auth to discovery-only resolution.
  2. The trail-list PR (commit 16beeac52, "Validate trail list options before auth") added trail_cmd_test.go, which depends on exactly those helpers.

Each branch compiled against its own base, and CI on each ran only its own half — neither branch ever contained both the deletion and the new usage at once, so neither CI run could see the break. It only manifested after both landed on main. A main-merge-into-branch before landing, or a "branch must be up to date with base" merge gate, would have caught it pre-merge.