developer-experience: wire real merge state into ledger signals (zeroMergeStreak always-true bug) - #9
Draft
ruvnet wants to merge 2 commits into
Draft
developer-experience: wire real merge state into ledger signals (zeroMergeStreak always-true bug)#9ruvnet wants to merge 2 commits into
ledger signals (zeroMergeStreak always-true bug)#9ruvnet wants to merge 2 commits into
Conversation
…roMergeStreak always-true bug) Nightly Dream Cycle, 2026-08-14. DEEP=developer-experience, SCAN=cli,tui. `dream-machine ledger signals` never passed mergedPrNumbers into learningSignals(), so zeroMergeStreak was a worst-case default (true whenever the window has a real PR) presented as a verified reading. Reproduced first-hand against this repo's real ledger: the CLI reported zeroMergeStreak=true even though PR #7 is confirmed merged via the GitHub API. Adds an optional `--merged "7,12"` flag on `ledger signals` that threads known-merged PR numbers into the library's existing, already-correct learningSignals(rows, { mergedPrNumbers }) option. Full report: docs/dream-cycle/2026-08-14-developer-experience-report.md
ruvnet
pushed a commit
that referenced
this pull request
Aug 14, 2026
ruvnet
force-pushed
the
dream/2026-08-14-developer-experience
branch
from
August 14, 2026 09:16
43f8278 to
3b07dc0
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.
Nightly Dream Cycle, 2026-08-14. DEEP=developer-experience, SCAN=cli,tui. Full report:
docs/dream-cycle/2026-08-14-developer-experience-report.md. Issue: #8.Hypothesis
Given
zeroMergeStreak(the field this pipeline's own compiled STEP 1.1 uses to bias candidate selection), when the CLI is given an optional--merged "7,12"flag threading known-merged PR numbers into the existing, already-correctlearningSignals(rows, { mergedPrNumbers })library option, then the signal should correctly reportfalseonce the window's PR is in the supplied set, and stay byte-identical to today when--mergedis omitted. Frozen before implementation.Candidate
+48/-2 across 2 files (no new files besides the report). One conceptual change:
packages/cli/src/index.ts'sledger signalshandler now accepts--merged, parses it into aSet, and passes it through — the@dream-machine/ledgerlibrary itself is untouched (it was already correct).Evaluation Receipt
Real evaluator:
npm test(vitest, this repo'sbenchentrypoint).7bbb851)Baseline
Parent commit
7bbb851d337067d16ede31175896bb5e587a7d22, 96/96 tests passing, clean build, clean lint.Darwin Lineage
Not run —
DARWIN=not-applicable. No evolvable population for a single CLI flag surfacing an already-correct library option.Evidence
Reproduced live tonight (grade A, first-hand):
node packages/cli/dist/bin.js ledger signalsagainst this repo's realdocs/dream-cycle/LEDGER.md→zeroMergeStreak: true, even thoughmcp__github__pull_request_readon PR #7 independently confirmsmerged: true, merged_by: ruvnet, merged_at: 2026-08-13T22:05:44Z. Post-fix:ledger signals --merged 7→zeroMergeStreak: false, matching real GitHub state.Reward-Hack Check
Self-critique pass (no second agent spawned tonight — disclosed limitation, see report). CLEAR of reward-hacking — only intended files changed, no test/gold/threshold tampering, default (no-flag) behavior byte-identical to before. Found + fixed before finalizing: the first draft's
--mergedcrashed (mergedFlag.split is not a function) on a value-less invocation (parseArgsreturns booleantrue, not a string, for a flag with nothing after it) — fixed with an explicit type guard and a clear usage error; regression test added. Two things deliberately left out of scope, not silently dropped: (1)renderDashboard/TUI has the identical gap but is documented as a pure, dependency-free function — extending it is a second conceptual change and an open design question; (2) the CLI does not fetch merge state itself (no network/ghcall added) — that would stack a second network-facing responsibility onto a tool whoseio.execalready carries a flagged unsanitized-shell-exec risk (from PR #7).Security Review
No new
exec/network/file-write surface —--mergedis pure string→Setparsing. No credentials touched. No LLM calls (N/A for prompt injection).IO/io.execunaffected — no existing call site gains new capability.Regression Analysis
0 pre-existing tests modified or removed. All 96 baseline tests still pass unchanged; 5 new tests added (default-unchanged, flag-flips-signal, whitespace/
#-tolerant parsing, unrelated-PR-stays-true, value-less-flag usage error).ADR
None. This is a CLI-wiring fix (a small flag threading an existing, already-correct library option), not an architectural decision — no new ADR filed tonight.
Gist
No
gh gist create/gist tool available this session. Report committed atdocs/dream-cycle/2026-08-14-developer-experience-report.mdinstead.GIST=LOCAL.Issue
#8
Witness
Verify:
sha256sum docs/dream-cycle/2026-08-14-developer-experience-report.md, thenprintf '%s%s' "<hash>" "7bbb851d337067d16ede31175896bb5e587a7d22" | sha256summust equal the witness above. Confirmed tonight viadream-machine witness verify(✓ VALID).Merge Policy
Draft — human review required. This PR does not carry the
automerge-safelabel. Per this repo's guarded-auto-merge policy (.github/workflows/automerge.yml), that label is a deliberate human decision this session never applies to itself, even though this candidate is small and touches no evaluation/gate/safety infrastructure — the session never merges and never self-labels.Generated by Claude Code