Skip to content

v0.2.1

Latest

Choose a tag to compare

@blaipr blaipr released this 02 Sep 22:09
· 3 commits to main since this release
dc2aad0

Five fixes, no new tools. Three of them are about the same failure shape this project cares most about — a no-op reported as success — and two are bookkeeping.

Fixed

  • The CLI ran nothing through the bin link. cdmon --help via npm link or npm install -g printed nothing and exited 0: Node resolves the entry point's symlink, so import.meta.url never matched the linked process.argv[1]. The main-module check now resolves both sides through the filesystem.
  • db_query let two writes through. EXPLAIN ANALYZE UPDATE ... executes the statement it explains on MySQL 8, and SELECT ... INTO OUTFILE writes a file on the database host. Both are now refused like any other write; plain EXPLAIN is still allowed.
  • An expired phpMyAdmin session was a silent success. After 24 idle minutes phpMyAdmin answers a statement with its login page — status 200, no error, no rows — so the next db_execute from a long-lived server was reported as applied with nothing affected. The client now recognises that page, logs in again and re-sends the statement once; if the login page comes back again, the statement fails by name.
  • The upload dry run counted characters, not bytes. A file with accents or emoji previewed at one size and landed at another. Both now report UTF-8 bytes.
  • Failed uploads and deletes now reach the audit log, as failed entries carrying the path and the error, matching what db_execute already recorded.

No breaking changes. See the CHANGELOG, docs/safety.md and docs/phpmyadmin.md.