Skip to content

fix: address Med-severity findings from the whole-codebase review - #198

Merged
chmmou merged 7 commits into
mainfrom
fix/review-med-findings
Jul 18, 2026
Merged

fix: address Med-severity findings from the whole-codebase review#198
chmmou merged 7 commits into
mainfrom
fix/review-med-findings

Conversation

@chmmou

@chmmou chmmou commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Fixes the nine Med-severity findings from the 2026-07-18 whole-codebase review:

  • transport: enforce the 16-MB response cap at the actual HTTP body read (was dead code in the soap decoders)
  • cli: write-command success output honours --output (json/yaml emit a message object)
  • cli: audit/dry-run records elide multi-line and oversized parameter values (mailing-list config can carry the list password)
  • session: heartbeats persist via the new Store.Refresh and can no longer clobber a newer token from another process
  • mailinglist: dead fault-map key fixed so the mailinglist_domain_doesnt_exist pin actually runs
  • server/usage: get_server_information fixtures moved to testdata/server/; both modules gain the missing fault-fixture leg + AssertFaultFixtures coverage
  • ROADMAP: server get corrected to server info
  • CHANGELOG: [Unreleased] consolidated to one block per type in canonical Keep-a-Changelog order

chmmou added 7 commits July 18, 2026 07:47
The soap decoders cap their input at soap.MaxResponseBytes, but the
live path buffers the whole body in transport.doOnce first, so the
guard was dead code. The cap now applies at the read; an oversized
response fails immediately and is not retried.
Write commands previously printed their success line as plain text
regardless of --output, breaking --output=json scripting. The line now
renders via the shared Render seam wrapped in a writeResult: table
output stays the bare line, json/yaml emit a {"message": ...} object.
update_mailinglist --config-file / --subscriber blobs reached the
stderr logfmt line, the --audit-log JSON sink, and the --dry-run
preview verbatim; the list config can carry the list password in
cleartext. RedactParams now replaces any multi-line or >256-byte value
with an <elided N bytes> marker.
Heartbeat blindly re-saved its process's in-memory token with a fresh
expiry, overwriting a newer token another process had persisted since.
The new session.Store.Refresh extends an entry only while the on-disk
token still matches; Save's doc no longer promises what it cannot hold.
The add_mailinglist fault-map key carried a doubled mailinglist_
prefix and matched no fixture; AssertFaultFixtures skips unknown keys
silently, so the mailinglist_domain_doesnt_exist code pin never ran.
get_server_information fixtures move from testdata/account/ to their
own testdata/server/ per the one-subdir-per-module convention. server
and usage gain the previously missing fault leg: a no_auth fault
fixture per action (the captured auth fault is action-independent)
pinned via testutil.AssertFaultFixtures.
ROADMAP.md listed 'server get'; the shipped command is 'server info'.
CHANGELOG.md's [Unreleased] had duplicated, unordered subsections
(Changed x3, Fixed x2); they are consolidated into one block per type
in canonical Keep-a-Changelog order, plus entries for the Med-severity
review fixes.
@chmmou chmmou self-assigned this Jul 18, 2026
@chmmou
chmmou merged commit 79a08fa into main Jul 18, 2026
6 checks passed
@chmmou
chmmou deleted the fix/review-med-findings branch July 18, 2026 11:28
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