Your books and your flight logs can no longer drift apart

Published August 9, 2026

For: All Members

Locked, Consistent, and Quietly Safer

If billing is enabled for your club, every charge is calculated from a flight log's meter readings. This update makes that relationship unbreakable — once a charge exists, the readings behind it can't quietly change. Plus interface consistency work and security hardening under the hood.


Billed Flight Logs Are Now Locked

Here's the guarantee: once a billing entry is generated from a flight log, members can no longer alter that log. Every path is guarded:

  • Editing a billed log is admin-only — members see it read-only, with edit affordances hidden.

  • Deleting a billed log is admin-only. (Members can now delete their own unbilled entries — see below.)

  • Re-finishing a flight whose log is already billed is blocked — previously, a member could resubmit the finish-flight dialog within the grace window and silently rewrite hobbs/tach on a charged flight.

When a member needs a legitimate correction on a billed entry, they're directed to you — and you can adjust both the log and the charge together, so the ledger stays consistent with the record it was computed from. No configuration needed; the protections are automatic wherever billing is enabled.


Members Clean Up Their Own (Unbilled) Logs

The flip side of the lock: members can now delete their own flight log entries as long as no billing entry is attached. Expect fewer "can you remove my duplicate entry?" requests in your inbox — the ones that still reach you are exactly the ones that should (billed entries needing a paired correction).


Consistent Delete Buttons Everywhere

Edit dialogs across the app — flight logs, squawks, maintenance, billing entries — now share one delete-button convention: a red trash icon, bottom-left, away from the primary action. Less hunting, fewer accidental clicks, and screen-reader labels on all of them.


Under the Hood: Security Hardening

Two invisible-but-important improvements shipped this cycle:

  • Email templates now HTML-escape all user-authored text — descriptions, names, comments, resolutions — across every notification email Centerline sends.

  • Member-composed notifications are sanitized at write time — the rich-text messages members can send through the notification system are now filtered to a safe formatting allowlist before they're stored or emailed.

Nothing changes in how anything looks or works; it's simply harder for pasted or malicious content to misbehave.


Also This Cycle

  • Reports — The big one, covered in its own announcement: a full role-based Reports section plus the AI Monthly Executive Summary. If you missed it, read that one first.

  • Squawk workflow — Closing a squawk now requires a written resolution, squawks can be reopened, and a Monitoring flag marks informational items (excluded from your squawk metrics so long-running observations don't distort days-to-close). Full story in the member announcement.

  • Admin edit-user fix — Role and checkbox state on the admin edit-user screen now stays in sync with the database after saving.

  • Docs — The in-app help center gained articles for Reports, the finish-flight workflow, member notes, and sending notifications, and the squawk/flight-log articles were updated for everything above.