Skip to content

ci: NO_COLOR palette equality test races live age boundary #355

Description

@SUaDtL

Summary

TestActivePaletteCompatibility.test_no_color_makes_every_builtin_layout_byte_identical can fail when its five sequential statusline subprocesses cross a live age-display boundary. The assertion attributes every byte difference to theme selection, but the payload leaves the ledger-derived Today ... age field live.

Evidence

Observed locally on WSL/Ubuntu while verifying #352:

FAIL: test_no_color_makes_every_builtin_layout_byte_identical
  self.assertTrue(all(output == outputs[0] for output in outputs[1:]))

The exact isolated rerun failed again. Capturing each rendered output then showed identical theme/layout bytes once all five executions landed on the same side of the boundary; output included the dynamic row:

Today ... age 1m

The test launches five subprocesses sequentially with the same session id and temp workspace, so a transition such as age 59s to age 1m makes outputs differ even under NO_COLOR=1.

Expected

The test should hold all non-theme inputs constant and prove only that removing color makes the built-in themes byte-identical.

Suggested regression

Freeze or isolate the ledger/age input for all five subprocesses, then exercise a forced boundary to prove live time cannot affect the comparison.

Scope

Pre-existing test reliability defect; no product behavior change requested. Discovered while fixing #352 and intentionally excluded from that narrow patch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions