Skip to content

v0.4.9: fix the two defects the 3-day trial found - #7

Merged
deva0x merged 1 commit into
mainfrom
fix/v0.4.9-trial-findings
Jul 27, 2026
Merged

v0.4.9: fix the two defects the 3-day trial found#7
deva0x merged 1 commit into
mainfrom
fix/v0.4.9-trial-findings

Conversation

@deva0x

@deva0x deva0x commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Two defects found by a three-day trial run on a real Mac and a real Ubuntu box — neither was findable by review or CI.

1. Upgrading to v0.4.8 set off a false alarm on every listener.
v0.4.8 started storing *:5000 where older snapshots held 5000. The diff compared those as opaque strings, so the first run after upgrading reported 11 "changed listener" findings on the Mac and 3 on the Linux box — all ORANGE, all above the --notify threshold, and every one false: the ports were identical. The v0.4.8 changelog predicted this churn and waved it through as harmless. It was not.

The listening diff now compares what both sides actually express: when either side predates the change it compares port sets, so a pure representation change yields nothing. Deliberately not a blanket exemption —

  • a genuinely new port arriving alongside the migration is still reported at ORANGE;
  • once both snapshots carry addresses, 127.0.0.1:5000*:5000 is a real exposure change and stays a finding.

Both guarantees have tests, and both tests were mutation-checked (removing the fix, and over-applying it, each fail).

2. The Linux installer promised a daily job it could not keep.
systemctl --user enable --now succeeding proves only that a user manager exists at that moment — and it exists because you are logged in. With lingering off, systemd tears that manager down at your last logout and the timer goes with it, so the installer printed a confident "enabled systemd user timer" for a job that then goes dormant on exactly the machine that needs it most: a server nobody logs into. (Persistent=true defers the run to the next login rather than losing it.)

The installer now checks loginctl show-user … -p Linger after a successful enable and prints the one-line fix. Verified on a real Ubuntu 24.04 box in both directions: the note appears with Linger=no, and is absent after enable-linger.

Suite 689 → 692.

🤖 Generated with Claude Code

Both came from watching real output over days, not from review.

1. Upgrading to 0.4.8 set off a false alarm on every listener. 0.4.8 began
   storing `*:5000` where older snapshots held `5000`; the diff compared them
   as opaque strings, so the first post-upgrade run reported 11 "changed
   listener" findings on the trial Mac and 3 on the Linux box — all ORANGE,
   all notifying, all false: the ports were identical. The listening diff now
   compares port sets when either side predates the change. Not a blanket
   exemption: a genuinely new port arriving with the migration is still
   reported, and once both sides carry addresses, 127.0.0.1:5000 -> *:5000
   remains a real exposure finding. Both guarantees are tested, and both
   tests were mutation-checked.

2. The Linux installer promised a daily job it could not keep. `systemctl
   --user enable --now` succeeding proves only that a user manager exists at
   that moment, and it exists because you are logged in. With lingering off
   systemd tears it down at your last logout and the timer goes with it — so
   the installer printed a confident success for a job that goes dormant on
   exactly the machine that needs it most: a server nobody logs into. It now
   checks Linger after a successful enable and prints the one-line fix.
   Verified on a real Ubuntu box in both directions.

Suite 689 -> 692.

Co-Authored-By: Claude <noreply@anthropic.com>
@deva0x
deva0x merged commit ccf16e6 into main Jul 27, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant