Commit a1abef1
fix(mise): unblock check in fresh worktrees, plus domain-architecture doc refresh (#514)
* fix(mise): keep proto tools off the non-proto critical path
api-linter sat in mise.dev.toml's [tools], so it was provisioned for
every dev-env task. Its install fails behind a proxy, which aborted
format, analyze, test and check — none of which need proto tooling. On
Claude Code Web .miserc.toml auto-selects the dev env, so this broke
plain `./bin/mise run check` outright.
Declare buf and api-linter as task-scoped tools on the proto:* tasks
that invoke them.
Note what this does NOT fix, since the issue proposes it: pinning. Both
tools were already pinned and locked — mise.dev.lock carried buf 1.70.0
and api-linter 2.3.1 with checksums and asset URLs, and the failure
happened anyway. Verified on mise 2026.5.8 that a lockfile entry does not
suppress api-linter's SLSA provenance call: download and checksum both
succeed, only the provenance lookup 403s, and MISE_SLSA_VERIFY=0 does not
disable it. mise had recorded github_attestations = "unavailable" and
still attempted verification. What scoping buys is blast radius, which is
the actual complaint in #510.
Also set lockfile = true so mise maintains mise.lock/mise.dev.lock on
install rather than only when regenerated by hand (#454).
Known trade-off: task-scoped tools are not in a config's [tools] set, so
`mise lock` drops them from mise.dev.lock and they re-resolve on a fresh
worktree. Moving them to a MISE_ENV=dev,proto env file would keep both
properties, at the cost of changing the proto:* invocation.
Verified: `./bin/mise run check` completes (1313 tests pass) where it
previously died during tool provisioning.
Fixes #510
* fix(mise): exclude nested .mise and worktrees from shell file discovery
The find in shell/check.sh and shell/format.sh excluded "./.mise/*",
anchored at the repo root, so it did not match a *nested* .mise inside an
agent worktree. Each worktree under .claude/worktrees/ carries its own
extracted Flutter SDK — thousands of vendored .sh files, some of which
shfmt rejects — so check aborted before analyze or test ran, pointing at
vendored SDK code rather than anything the developer changed.
This broke the pre-commit gate for the repo's own documented
parallel-agent workflow, whose whole mechanism is agent worktrees.
Make the exclusions unanchored and skip worktrees explicitly. Verified
against a synthetic worktree tree: the old pattern picks up its scripts,
the new one excludes them, and shell:check passes with it present.
Fixes #509
* docs: rewrite domain-architecture filter sections against current code
Every symbol the filter sections named was removed when filter state
moved into DrinkFilterController, and the drift widened with #505/#506.
The worked example did not compile against the current code.
- applyAllFilters -> filterDrinks, with its real named parameters
- BeerProvider._applyFiltersAndSort() -> DrinkFilterController.recompute()
as the single recompute path
- category: String? -> categories: Set; hideUnavailable: bool ->
visibilityFilters: Set
- add the missing facet-scoping rule and its two invariants (an active
filter is never hidden; allergens must be non-zero-present), plus the
deliberate exclusion of free-text search from facet scoping
Also correct references to FavoritesService/RatingsService, removed in
#391/#395 in favour of UserDataStore, and add the controllers layer to
the architecture diagram. Leaving those would have shipped a doc fix that
still pointed at deleted classes.
Fixes #511
* docs(mise): clarify that scoping contains the failure, not fixes it
The comment said a task-scoped tool that fails to provision degrades to
a warning and "the task body still runs", which reads as though the task
succeeds. It doesn't: proto:* will run its body and fail on
`buf: command not found` unless the binary is already on PATH.
Spell out that the win is check/test no longer being collateral damage,
not that proto linting works without buf.
Raised in review on #514.
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent af30dc0 commit a1abef1
7 files changed
Lines changed: 297 additions & 91 deletions
File tree
- .claude/skills
- api-contract
- build-and-env
- docs/code
- mise-tasks/shell
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
84 | 104 | | |
85 | 105 | | |
86 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
102 | 130 | | |
103 | 131 | | |
104 | 132 | | |
| |||
0 commit comments