feat(output): four-label cache states + docs (patterns, benchmarks, monorepo eval)#101
Merged
Merged
Conversation
Footer + header now distinguish four cache states instead of three,
so a cache hit that didn't materialize anything is visible:
local-cache outputs were restored from the local cache
remote-cache outputs were restored from the remote cache
up-to-date cache hit but on-disk state already matched (no restore)
cache-miss task actually ran
Before: a cache hit always said "from local cache" — the user couldn't
tell whether files were actually rewritten or whether the on-disk tree
was already current and skipMaterialize fired. The user reported the
ambiguity ("I dont know if it was restored or not").
Implementation: TaskOutcome gains `restored?: boolean`. execute-task
sets it on cache-hit outcomes from `!skipRestore && outputs.length > 0`.
formatBlockHeader + formatStatusTag use the four-way label.
Tasks with no declared outputs (lint / test / format-check) report
"up-to-date" on hit — vacuously true since nothing was materialized.
Header trim: dropped the "Packages in scope: ..." line (too noisy with
100 packages) and folded the total task count into the Running line:
• Running build, test in 100 packages (200 tasks)
69bc69e to
8f38c7a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reopens the work from closed PR #100, plus the cache-state label fix the user requested in follow-up.
Commits
186cb92595fbc8e89efc469bc69eThe cache-state change (
69bc69e)Before: a cache hit always said
from local cache— the user couldn't tell whether files were actually rewritten or whether the on-disk tree was already current andskipRestorefired. Reported as "I don't know if it was restored or not".After, four distinct labels in the framed-block header + footer:
local-cacheremote-cacheup-to-datecache-missImplementation:
TaskOutcomegainsrestored?: boolean.execute-task.tssets it on cache-hit outcomes from!skipRestore && outputs.length > 0. Tasks with no declared outputs (lint / test / format-check) reportup-to-dateon hit — vacuously true since nothing was materialized.Header trim (same commit)
Dropped the
Packages in scope: ...line (too noisy with 100 packages) and folded the total task count into the Running line:Doc commits (1-3)
Same as closed PR #100 —
docs/design/monorepo-structure.md,docs/patterns.md,docs/benchmarks.md, plus the oxfmt fix for the markdown tables in those new docs.Test plan
cache-miss, second run showsup-to-date • <hash>https://claude.ai/code/session_016HXj6HW6bxSn8EYuKcxTD9
Generated by Claude Code