Skip to content

History / Record Previews Developer Guide

Revisions

  • Record previews (#91): user page, developer guide, and the one-ticket rule Record-Previews.md - where the ⓘ appears, what each of the seven cards shows, why it is read-only, and what "that record cannot be shown here" means. That last one matters: a missing record and a forbidden one get the same sentence on purpose, so the page says so rather than leaving somebody to file a bug. Record-Previews-Developer-Guide.md - the deep one, with real code: - the two gates, and why the module gate lives in recordPreview() while the record gate lives in each type function - adding a new type end to end, worked through with a supplier - the WRONG/RIGHT pair for activeTenantFilter() vs analystCanAccessX(), which is the mistake that actually shipped (#1345) and what it looked like - wiring a badge into a pill, a table actions column and a CSS grid row, each with the trap that goes with it - invalid button-inside-anchor, conditional icons shifting a row, and a heading row needing a matching spacer - why the 2px nudge is optical rather than geometric, and where it is reset - changing what a card shows, including why rpField() drops empties, how to keep a deliberate zero, the colour filter, and columns that only exist after Database Verification - the three test layers, and the five harness traps that each produced a confident wrong answer during development Tasks.md gains a "One ticket, one change" section - the single-column design, and the fact that both ends of the relationship now confirm before replacing. Cross-links from Tickets, Linking-Equipment-to-Contracts and the sidebar.

    @edmozley edmozley committed Aug 30, 2026