Releases: crnst8/mainly
Release list
v1.3.1
v1.3.0
v1.2.4
- Closed the three reported upstream advisories (@fastify/static 8.3.0→10.1.3, which needed a setHeaders migration to the v10 FastifyReply API; mailparser 3.9.14→3.9.17; nanoid→3.3.18 in both trees)
- Automated via scripts/audit-check.mjs gates all three lockfiles in CI and dev.sh check, blocking on runtime highs and warning on build-time ones, backed by a weekly sweep, Dependabot across four ecosystems, and waivers that require a reason and an expiry.
- TRUST_PROXY now defaults to trusting nobody and the login limiter keys on the account
- One byte-comparing guard (lib/ip.ts + lib/net-guard.ts) replaced both old ones
- Sessions are sha256 at rest via migration 011, plus CI permissions
- Digest-pinned base image Dependabot watches
- 600-mode backups
- Hourly session sweeps
- Narrowed data: image URIs
v1.2.3
- feat: text weight setting
Appearance gains a Text weight slider under Text size (Light, Regular,
Bold).
Every font-weight in the app's own CSS now resolves through a
five-rung token ramp that [data-weight] shifts as a unit, anchored on
body so elements that never name a weight ride it too.
Three steps because three is all there is: the UI face ships three
static files, and a list only works while emphasis outweighs body text,
so body type can be Regular or Medium and nothing else. Paper resets the
ramp, matching print.ts. Slider now requires an ariaLabel and announces
its readout, as Segmented already did.
Closes #2
v1.2.2
v1.2.1
fix: honour imapflow command results so read marks survive sync
imapflow answers a refused STORE/MOVE/COPY/EXPUNGE with false rather than
throwing. Replay ignored that and deleted the sync_ops row anyway, which also
removed the guard in envelopes.ts that holds local flag state while a change is
in flight, so the next envelope pass wrote the server's still-unread flag back
over the read. Mail marked read came back unread seconds later and survived a
reload; the sidebar counts followed it.
Replay now fails the op on a falsy result, so it retries and then parks with the
server's own words while the guard keeps what the user did. A mailbox whose
PERMANENTFLAGS will not keep \Seen is refused up front instead of eight silent
retries. pool.ts swaps logger: false for a logger that remembers only the
refusal text, since that was the sole channel for the server's reason.
Adds replay.test.ts covering the return-value handling.
v1.2.0
Features:
- Sender & domain monograms can be changed to images or icons by right-click
- Help page added with feature walkthroughs & configurations - needs some de-slopificiation but offers some starting guidance
- Tags assigned to emails & senders appear as badges in msg rows
Fixes:
- Account group folder colours weren’t showing,
- Shift-select bulk messages was intermittent
- ‘mainly’ removed from header logo
- clicking header logo when in collapsed/half-screen mode now goes back to message list
- html parsing occasionally failed in previews