Skip to content

v0.5.0 — works with any sheet

Choose a tag to compare

@siaginw siaginw released this 02 Sep 23:02
· 6 commits to main since this release

SheetDiff v0.5.0 — works with any sheet

SheetDiff's core loop — snapshots, GitHub-style diffs, "what do I still need to enter?", acks, digest email — was always sheet-agnostic. The identity layer wasn't: it knew how to match construction shots by station ranges, and nothing else. v0.5 makes it universal.

Smart identifiers, zero configuration

Every row now gets an identity through a hierarchy:

  1. Your choice — a "Match rows by" column per tab, validated before it's trusted (populated + unique). Pick "Activity" on a tracker and the choice is ignored, not obeyed into corrupting counts.
  2. Work identity — activity + parsed stations on sheets that have them (164+8216,482).
  3. Auto-detected ID columnID, SKU, Ticket #, Order, Email, PO, Asset, … (vocabulary widened) when it's populated and unique.
  4. Whole-row content — the always-there fallback, also registered alongside the other tiers so a verbatim copy of a tab matches however each side keyed its rows.

That identity drives diffs, ack tracking, compilation-tab detection, and the cross-surface to-enter counts — so an inventory sheet gets the same "a Master List that re-lists your working tab is tagged copy and counted zero times" guarantee the construction trackers already had. The identity tier is decided once on the latest data and applied to history, so the same row can never key differently at different times (a subtle bug caught and fixed while shipping this).

Honest math on sheets without stations

The billing packet on a row-based sheet now says "COULD NOT DETERMINE — no collection marker or no station columns (row-based sheet)" instead of a confident 0 ft, while the to-enter worklist, late entries, and office backlog behave exactly as on a tracker. Construction math (footage, gap reports) activates only when the sheet carries the vocabulary for it.

Verified

  • New acceptance suite: a generic inventory sheet (SKU keys, reformatted compilation copy) — copy classification, count agreement across dashboard/CSVs/digest, honest billing output.
  • The construction path re-verified against the real 36-package tracker: PE-only and PE+Line-List configurations still export identical billing packets.
  • 361 tests green. Requires Node.js 22+.