Skip to content

feat(diff): head each bulk turn with a run-log dispatch banner#33

Merged
rickliujh merged 1 commit into
mainfrom
feat/diff-bulk-turn-header
Jul 23, 2026
Merged

feat(diff): head each bulk turn with a run-log dispatch banner#33
rickliujh merged 1 commit into
mainfrom
feat/diff-bulk-turn-header

Conversation

@rickliujh

Copy link
Copy Markdown
Owner

Summary

A fanned-out run's diffs read as one flat wall: every entry repeated the whole breadcrumb inline ([≡ root ≡] › item › submodule) at the same weight as the diff body, so turn boundaries never stood out.

This heads each bulk turn the way the run log already announces a dispatch:

  • an inverted ≡ root ≡ chip banner naming the turn, once per turn;
  • a ▸ parent › child hand-off once per submodule path beneath it — root-free, so headers inside a turn read lighter;
  • the target (repo) line once per repo.

DiffCollector.Print composes these with three-level dedup; DiffHeader composes the same pieces for full mode. A single-module run keeps its plain [name] chip + target header, byte-for-byte unchanged.

Before

[≡ bulk-deploy-k8s ≡] › deploy-k8s-1 › autocert
file://…/cluster-1 (main)
--- /dev/null
+++ issuer.yaml

After

[≡ bulk-deploy-k8s ≡] deploy-k8s-1
▸ deploy-k8s-1 › autocert
file://…/cluster-1 (main)
--- /dev/null
+++ issuer.yaml

(indigo chip + teal in a real terminal)

Testing

  • go build ./..., go vet ./..., full go test ./... — all green.
  • Updated the two bulk header tests; added TestDiffHeader_SubmoduleGetsRootFreeHandoff and TestDiffCollector_BannerOncePerTurnHandoffPerSubmodule.
  • Drove the built binary against a nested bulk module (both loom diff and --quick) to confirm real output.

🤖 Generated with Claude Code

A fanned-out run's diffs read as one flat wall: every entry repeated the
whole breadcrumb inline (`[≡ root ≡] › item › submodule`) at the same
weight as the diff body, so turn boundaries never stood out.

Group a fanned-out run the way the run log announces a dispatch. Print an
inverted `≡ root ≡` chip banner naming the turn once per turn, a
`▸ parent › child` hand-off once per submodule path beneath it (root-free,
so headers inside a turn read lighter), and the target line once per repo.
DiffCollector.Print composes the pieces with three-level dedup; DiffHeader
composes the same pieces for full mode. A single-module run keeps its plain
`[name]` chip + target header, byte-for-byte unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@rickliujh
rickliujh merged commit 13e2189 into main Jul 23, 2026
2 checks passed
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