You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A record of an aborted bulk amarbel-llc dependency bump and everything we
observed, so a future attempt starts from facts instead of re-discovering them.
The bump was not merged. Most of the attribution below is theory — we
explicitly did not isolate causes. Treat the "Facts" as load-bearing and the
"Theories" as starting hypotheses to verify.
Branch state
Work lives on smart-hazel (unmerged), two commits past c380c2df3:
894fe3b4f chore(deps): bump amarbel-llc flake inputs + regenerate tommy codegen
16f4ebe3c test(ui): migrate cli_error_tree to dewey v0.3 HTTPRender API
Both merge-this-session attempts failed the pre-merge just hook. These
commits can be cherry-picked or discarded by a future attempt; nothing here is
authoritative beyond "it compiled and got this far."
Facts (observed in tool output)
Deps that moved
just go/resync-flake-go re-pinned 5 Go modules to match the bumped flake
inputs:
Module
From
To
madder/go
v0.3.31 (00613b3, 05-31)
v0.3.35-pre (416bcbf, 06-07)
purse-first/libs/dewey
v0.2.6 (67a6f4d)
v0.3.1-pre (422cb1c, 06-07)
purse-first/libs/go-mcp
v0.2.6
v0.3.1-pre (422cb1c)
tap/go
v0.1.11 (c3a844e)
v0.1.12-pre (cc0ee92)
tommy
v0.2.9 (de8fc5d)
v0.3.3-pre (75834a1, 06-07)
Flake inputs also advanced: bats, igloo, treelint (the last migrated to conformist upstream — the lock diff added a conformist subtree and dropped treelint/treefmt-nix nodes).
Compile-time breaks we fixed to get the tree building
tommy v0.3 cst API: committed *_tommy.go already referenced cst.FindChildInlineTable / cst.FindChildTable (and _seen duplicate-key
guards) that did not exist in the v0.2.9 module pin. Fixed by resync-flake-go + go/build-go-generate regenerating against v0.3.3.
dewey GetStatusCode() → HTTPStatusCode() (returns http_statuses.Code): internal/sierra/remote_http/request_response.go. Rewrote Response.Error()
to extract status via dewey's HTTPStatusCarrier interface.
dewey HTTPStatusError.WrapIncludingHTTP(x) → .Wrap(x).HTTPRender(), and
the wire render dropped the errors. prefix (errors.HTTP: 501 … → HTTP: 501 …): go/lib/alfa/ui/cli_error_tree_state_test.go. This test only compiles under -tags test (dewey's pkgs/ui harness is //go:build test-gated), so a bare go build ./... did NOT surface it — only the nix test-go-unit lane
(go test -tags test,debug ./...) did. Lesson: verify with the lane's tags,
not go build ./....
Runtime test failures (2nd merge attempt reached the bats lane)
test-go-unit PASSED. test-bats failed with 5 of 505 tests. Observed
outputs:
Add dodder-level integration tests for SFTP blob stores #83checkin_explicit_workspace_delete_files and #333 organize_default_tags_workspace — both fail with runtime error duplicate key "tags", identical stack through madder/go/internal/charlie/hyphence/coder_tommy.go:35 → coder_type_map.go:103 → dodder konfig_edit.go / organize path. coder_tommy.go:35 is just errors.Wrap(err) around coder.Decode(input);
the duplicate key string is emitted by tommy-generated decode code (the _seen map guard).
#351 push_history_zettel_type_tag_yes_conflicts — output has one EXTRA
line: the message import failed with conflicts, merging required is rendered twice (once as the line, once as a └── tree child).
Things that PASSED (so they're not broken by the bump)
All migration_* tests (502–505) — frozen previous_versions/ fixtures still
valid against the bumped binary.
test-go-unit (full Go unit suite) after the three compile fixes.
Fixture regen does NOT apply here
VCurrent is unchanged (V15). just test-bats-update-fixtures only regenerates previous_versions/v*/; all 5 failures are in current_version/. Per CLAUDE.md
("update assertions, not fixtures" for output changes), regen is the wrong tool
for these.
Theories (NOT verified — isolation was aborted)
We did not bisect, so every causal claim below is a hypothesis:
Deprecate addTypeAndExpandedIfNecessary and design type inheritance #43 path shift → theory: madder's XDG store-id scope change. madder log
between the revs shows 7c9f04b24 fix: init resolves unprefixed store-ids in XDG scope like write (closes #227) and f071f0ae4 / a91af49c1 touching
store-id layout. Plausible but unconfirmed.
Add dodder-level integration tests for SFTP blob stores #83 / #333 duplicate key "tags" → theory: tommy v0.3 added strict
duplicate-key rejection in generated decoders; dodder's konfig/organize emit
path produces a doubled tags key that old tommy tolerated. Unknown
whether this is (a) a dodder bug emitting a real duplicate, or (b) a
tommy encode/decode asymmetry, or (c) intended strictness needing a dodder
fix. This is the one most likely to be a genuine regression rather than
drift — needs the emitted config-blob bytes inspected.
#351 doubled error line → theory: dewey v0.3.0's documented rendering
change (madder commit 4611ba3e3: "Error() returns the underlying user
message instead of errors.HTTP: 400 …") altered how wrapped errors render in
dodder's tree encoder, adding a duplicate node. This is the strongest
fact→theory link (the rendering change is documented upstream) but still not
isolated.
Coupling constraint (why isolating "just dewey" is hard)
Old madder v0.3.31 (00613b3) go.mod requires dewey v0.1.8 and an old
tommy pseudo (87255e8). madder v0.3.35 was built against dewey v0.3.x / tommy
v0.3.x (its own HTTP helpers and hyphence coders). So reverting madder/tommy
while advancing only dewey may not produce a buildable tree — the three move as
a set. A future isolation attempt should probably bisect by reverting tommy
alone (madder v0.3.35 + dewey v0.3.1 are a shipped-together pair, more likely
to compile) to test the duplicate key / digest hypotheses.
Suggested approach for the next attempt
Re-apply the bump (nix flake update + just go/resync-flake-go) and the
three compile fixes (cherry-pick 894fe3b4f + 16f4ebe3c or redo).
Bisect the 5 runtime failures by reverting tommy alone first.
For duplicate key "tags": reproduce organize_default_tags_workspace
locally and inspect the config-blob bytes dodder emits — bug vs. strictness.
Verify all test-code with the lane's tags (go test -tags test,debug ./...),
never a bare go build ./....
What this is
A record of an aborted bulk amarbel-llc dependency bump and everything we
observed, so a future attempt starts from facts instead of re-discovering them.
The bump was not merged. Most of the attribution below is theory — we
explicitly did not isolate causes. Treat the "Facts" as load-bearing and the
"Theories" as starting hypotheses to verify.
Branch state
Work lives on
smart-hazel(unmerged), two commits pastc380c2df3:894fe3b4f chore(deps): bump amarbel-llc flake inputs + regenerate tommy codegen16f4ebe3c test(ui): migrate cli_error_tree to dewey v0.3 HTTPRender APIBoth
merge-this-sessionattempts failed the pre-mergejusthook. Thesecommits can be cherry-picked or discarded by a future attempt; nothing here is
authoritative beyond "it compiled and got this far."
Facts (observed in tool output)
Deps that moved
just go/resync-flake-gore-pinned 5 Go modules to match the bumped flakeinputs:
madder/go00613b3, 05-31)416bcbf, 06-07)purse-first/libs/dewey67a6f4d)422cb1c, 06-07)purse-first/libs/go-mcp422cb1c)tap/goc3a844e)cc0ee92)tommyde8fc5d)75834a1, 06-07)Flake inputs also advanced:
bats,igloo,treelint(the last migrated toconformistupstream — the lock diff added aconformistsubtree and droppedtreelint/treefmt-nixnodes).Compile-time breaks we fixed to get the tree building
cstAPI: committed*_tommy.goalready referencedcst.FindChildInlineTable/cst.FindChildTable(and_seenduplicate-keyguards) that did not exist in the v0.2.9 module pin. Fixed by
resync-flake-go+go/build-go-generateregenerating against v0.3.3.GetStatusCode()→HTTPStatusCode()(returnshttp_statuses.Code):internal/sierra/remote_http/request_response.go. RewroteResponse.Error()to extract status via dewey's
HTTPStatusCarrierinterface.HTTPStatusError.WrapIncludingHTTP(x)→.Wrap(x).HTTPRender(), andthe wire render dropped the
errors.prefix (errors.HTTP: 501 …→HTTP: 501 …):go/lib/alfa/ui/cli_error_tree_state_test.go. This test only compiles under-tags test(dewey'spkgs/uiharness is//go:build test-gated), so a barego build ./...did NOT surface it — only the nixtest-go-unitlane(
go test -tags test,debug ./...) did. Lesson: verify with the lane's tags,not
go build ./....Runtime test failures (2nd merge attempt reached the bats lane)
test-go-unitPASSED.test-batsfailed with 5 of 505 tests. Observedoutputs:
blob_store_sync_twice— path-text mismatch. Expected regex.../\.madder/local/share/blob_stores/test/blob_store-config; actual.../.xdg/data/madder/blob_stores/test/blob_store-config.checkin_explicit_workspace_delete_filesand#333
organize_default_tags_workspace— both fail with runtime errorduplicate key "tags", identical stack throughmadder/go/internal/charlie/hyphence/coder_tommy.go:35→coder_type_map.go:103→ dodderkonfig_edit.go/ organize path.coder_tommy.go:35is justerrors.Wrap(err)aroundcoder.Decode(input);the
duplicate keystring is emitted by tommy-generated decode code (the_seenmap guard).init_with_pandoc_tools_creates_type_objects— the!mdtype-blobdigest changed: expected
@blake2b256-ctgjs28…, actual@blake2b256-wn23tu….This digest is hardcoded in
current_version/format_pandoc.bats, not in.fixtures.env.push_history_zettel_type_tag_yes_conflicts— output has one EXTRAline: the message
import failed with conflicts, merging requiredis renderedtwice (once as the line, once as a
└──tree child).Things that PASSED (so they're not broken by the bump)
checkin_type_file_creates_type_object(bug(checkin): checkin_type_file_creates_type_object fails after madder v0.3.16 bump #181) — passes under new madder;commented there.
migration_*tests (502–505) — frozenprevious_versions/fixtures stillvalid against the bumped binary.
test-go-unit(full Go unit suite) after the three compile fixes.Fixture regen does NOT apply here
VCurrentis unchanged (V15).just test-bats-update-fixturesonly regeneratesprevious_versions/v*/; all 5 failures are incurrent_version/. Per CLAUDE.md("update assertions, not fixtures" for output changes), regen is the wrong tool
for these.
Theories (NOT verified — isolation was aborted)
We did not bisect, so every causal claim below is a hypothesis:
between the revs shows
7c9f04b24 fix: init resolves unprefixed store-ids in XDG scope like write (closes #227)andf071f0ae4/a91af49c1touchingstore-id layout. Plausible but unconfirmed.
duplicate key "tags"→ theory: tommy v0.3 added strictduplicate-key rejection in generated decoders; dodder's konfig/organize emit
path produces a doubled
tagskey that old tommy tolerated. Unknownwhether this is (a) a dodder bug emitting a real duplicate, or (b) a
tommy encode/decode asymmetry, or (c) intended strictness needing a dodder
fix. This is the one most likely to be a genuine regression rather than
drift — needs the emitted config-blob bytes inspected.
canonical type-blob bytes, OR embedded pandoc-tool content changed. Unknown
which.
change (madder commit
4611ba3e3: "Error()returns the underlying usermessage instead of
errors.HTTP: 400 …") altered how wrapped errors render indodder's tree encoder, adding a duplicate node. This is the strongest
fact→theory link (the rendering change is documented upstream) but still not
isolated.
Coupling constraint (why isolating "just dewey" is hard)
Old madder v0.3.31 (
00613b3)go.modrequires dewey v0.1.8 and an oldtommy pseudo (
87255e8). madder v0.3.35 was built against dewey v0.3.x / tommyv0.3.x (its own HTTP helpers and hyphence coders). So reverting madder/tommy
while advancing only dewey may not produce a buildable tree — the three move as
a set. A future isolation attempt should probably bisect by reverting tommy
alone (madder v0.3.35 + dewey v0.3.1 are a shipped-together pair, more likely
to compile) to test the
duplicate key/ digest hypotheses.Suggested approach for the next attempt
nix flake update+just go/resync-flake-go) and thethree compile fixes (cherry-pick
894fe3b4f+16f4ebe3cor redo).duplicate key "tags": reproduceorganize_default_tags_workspacelocally and inspect the config-blob bytes dodder emits — bug vs. strictness.
go test -tags test,debug ./...),never a bare
go build ./....are confirmed intended.
Related
session)
🤡 Filed by Clown (0.3.10+bb6560d, built from bb6560d).