Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • armada
  • tide-table
  • backlog_setlists.json
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    fix(tide-table): stale line anchors, not the setlist soundcheck fix, dropped opal-2024 to 3 · 436d327f
    Two unrelated failing tests, investigated in order.
    
    test_agreement_distribution_within_bounds asserted tracks_total == 73, a snapshot
    from before yesterday's catalog rebuild (73 -> 81 tracks). Bumping it to 81 would
    just re-freeze the same brittleness. Replaced it with
    test_tracks_total_matches_the_generated_catalog: assert the live view's
    tracks_total equals the CHECKED-IN catalog.generated.json's n_tracks. That file is
    a 1:1 derivation of this same view, so the two can only disagree on a real
    regression (corpus changed but catalog not regenerated, or the pipeline
    dropped/duplicated a row) — never on honest growth. Verified it still fails by
    corrupting n_tracks and re-running.
    
    test_real_backlog_coverage_does_not_regress: opal-festival-2024's recovered
    tracks fell from 13/14 to 3. The obvious suspect was e8f7066a (yesterday's
    tools/setlist.py soundcheck filter) — ruled out by inspection (e8f7066a touches
    only tools/setlist.py + its test, nothing under armada/tide-table) and by
    bisection: replaying backlog_setlists.py's ANCHORS against every historical
    backlog.md since the anchors were authored (5acf72f7, 2026-06-06) shows
    n_resolved holding at 14 across ten intervening commits and only breaking at
    49e1b78e ("update: post cosmic", 2026-08-23).
    
    The real bug: ANCHORS keyed gigs by a raw 1-based LINE NUMBER pinned once against
    a single backlog.md snapshot. backlog.md is PLN's running journal, not a stable
    document, so every one of those ten commits that inserted lines earlier in the
    file silently shifted every anchor below it. Opal 2024's anchor drifted through
    blank lines and a lucky near-miss for months (the collected span still happened
    to contain the same real content), then 49e1b78e pushed the drift past the
    header entirely into the tail of the PREVIOUS gig's block, collecting 3
    unrelated lines instead of the setlist.
    
    Fix: anchor by the header's exact TEXT, resolved fresh against the live file on
    every build() (resolve_anchors()), instead of a line number frozen at authoring
    time. Self-healing against drift elsewhere in the file; raises loudly if a
    heading is ever actually renamed or duplicated, rather than silently
    mis-anchoring. The three anchors that carried an explicit end-of-block bound
    (opal-2025/Latin-Heritage bleed, mephisteuf's commented block, the 38c3-toilet
    cross-check) now store that bound as a line-count SPAN measured from the anchor,
    since that span lives inside the block and doesn't move when the anchor does.
    
    tools/setlist.py's soundcheck filter (e8f7066a) is untouched and still yields 15
    entries for OPAL 2026 — never the culprit here, just an unrelated same-day
    change that made a plausible but wrong prime suspect.
    
    Full suite: 468 passed, 2 skipped (465 baseline + 2 fixed + 1 new regression
    test), up from 2 failing.
    PLN (Algolia) authored Sep 05, 2026
    436d327f
backlog_setlists.json 23.3 KB
EditWeb IDE
×

Replace backlog_setlists.json

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.