v0.74.25
Changelog
✨ Features
- bench: record source revision in benchmark reports (c55fa57) (by Chris chris@stacksjs.com)
- bench: add an opt-in SQLite WAL profile (a2a57a0) (by Chris chris@stacksjs.com)
- config: canonical mode, so generated artifacts stop depending on the project (#2408) (3b7635b) (by Chris chris@stacksjs.com) (#2408, #2408, #2408, #2408, #2056)
- orm: give the last seven unscoped models an owner (#2412) (c1ccc72) (by Chris chris@stacksjs.com) (#2412, #2412, #2412, #2375)
🐛 Bug Fixes
- router: preserve write routing in directly served requests (1dfa08e) (by Chris chris@stacksjs.com)
- skills: stop three skills naming commands that do not exist (3533351) (by Chris chris@stacksjs.com)
- bench: verify persisted query counts after load (f5a8a06) (by Chris chris@stacksjs.com)
- bench: expose memory runtime requirement mismatches (24dca7e) (by Chris chris@stacksjs.com)
- bench: expose routing runtime requirement mismatches (90cfe6e) (by Chris chris@stacksjs.com)
- bench: validate memory benchmark connection counts (abe6bd2) (by Chris chris@stacksjs.com)
- bench: reject invalid routing benchmark options (e31e525) (by Chris chris@stacksjs.com)
- bench: include autocannon failures in request totals (18b0e5c) (by Chris chris@stacksjs.com)
- bench: count oha transport failures in request totals (09c519f) (by Chris chris@stacksjs.com)
- build: prefer installed dependencies over Pantry (38a0ad8) (by Chris chris@stacksjs.com)
- bench: parse CPU time across day boundaries (61c0e23) (by Chris chris@stacksjs.com)
- bench: isolate autocannon from the application port (1be2f60) (by Chris chris@stacksjs.com)
- bench: exclude warmup from server CPU measurements (047dd11) (by Chris chris@stacksjs.com)
- bench: discard autocannon warmup before measuring (b11ca93) (by Chris chris@stacksjs.com)
- bench: bound startup probes and reap failed servers (a1f656e) (by Chris chris@stacksjs.com)
- bench: probe selected scenarios with their request method (7bbc804) (by Chris chris@stacksjs.com)
- query-builder: honor configured SQLite pragmas (11b24ec) (by Chris chris@stacksjs.com)
- bench: separate memory samples from request-rate metadata (ea2898e) (by Chris chris@stacksjs.com)
- bench: require persisted query logs before database measurements (d2a0f5d) (by Chris chris@stacksjs.com)
- database: scope query log recursion to its write context (e888d06) (by Chris chris@stacksjs.com)
- bench: include successful query logging in database workload (e23126c) (by Chris chris@stacksjs.com)
- bench: omit empty preload array rejected by Bun (4e4cfae) (by Chris chris@stacksjs.com)
⚡ Performance Improvements
- database: normalize unquoted literals in one pass (91beca6) (by Chris chris@stacksjs.com)
- database: avoid rewriting single SQL spaces (4841177) (by Chris chris@stacksjs.com)
- database: skip numeric rewrites inside quoted SQL (932b743) (by Chris chris@stacksjs.com)
- database: normalize quoted SQL in character runs (3f2cb12) (by Chris chris@stacksjs.com)
- database: normalize boolean and null literals in one pass (29dfba1) (by Chris chris@stacksjs.com)
- database: reuse exact-millisecond SQL timestamps (033d311) (by Chris chris@stacksjs.com)
- deps: skip short-response encoding negotiation (6f583d4) (by Chris chris@stacksjs.com)
- deps: consume cached insert SQL shapes (53e7b6a) (by Chris chris@stacksjs.com)
- deps: consume leaner insert construction (24b0804) (by Chris chris@stacksjs.com)
- deps: consume parameter-free SQLite statement reuse (2788d73) (by Chris chris@stacksjs.com)
- deps: consume router and SQLite statement optimizations (1ed59c3) (by Chris chris@stacksjs.com)
- router: avoid allocations when composing server timing (d42db79) (by Chris chris@stacksjs.com)
- router: reduce CSRF token encoding cost (057e456) (by Chris chris@stacksjs.com)
- database: simplify numeric query normalization (0ab9236) (by Chris chris@stacksjs.com)
- database: reuse identical sanitized query traces (be2e53d) (by Chris chris@stacksjs.com)
- router: cache middleware timing labels (a4ac270) (by Chris chris@stacksjs.com)
- router: size primitive JSON before compression (f372ac0) (by Chris chris@stacksjs.com)
- database: normalize logged SQL without extracting tables (4e071d5) (by Chris chris@stacksjs.com)
- router: give JSON compression the serialized byte length (fcfeb5b) (by Chris chris@stacksjs.com)
- router: cache parsed middleware references (14a98d3) (by Chris chris@stacksjs.com)
- router: avoid waiting on resolved action imports (71e7d18) (by Chris chris@stacksjs.com)
- database: reuse the lazy query logger import (e621b13) (by Chris chris@stacksjs.com)
- router: skip unnecessary precognition URL parsing (e1b87e7) (by Chris chris@stacksjs.com)
- router: avoid parsing unrelated CSRF cookies (a3c6d11) (by Chris chris@stacksjs.com)
- router: resolve cached middleware without async wrappers (b0ed93d) (by Chris chris@stacksjs.com)
- router: skip content negotiation for object responses (fb53f7d) (by Chris chris@stacksjs.com)
📝 Documentation
- put back the words that page descriptions were missing (2ac862d) (by Chris chris@stacksjs.com)
- close the code fences that swallowed three pages (e679e1b) (by Chris chris@stacksjs.com)
- restore underscores markdown ate, and finish the reactivity rewrite (d09349e) (by Chris chris@stacksjs.com)
- bootcamp: teach stx signals, not Vue refs from a package that does not exist (067fdf0) (by Chris chris@stacksjs.com)
- name only the auto-imports and packages that exist (ddfdb4b) (by Chris chris@stacksjs.com)
✅ Tests
- database: isolate rejected query log records (8272ff4) (by Chris chris@stacksjs.com)
- database: preserve concurrent query analysis records (9787fd9) (by Chris chris@stacksjs.com)
- router: stop a 3-char needle finding itself in ciphertext (0133703) (by Chris chris@stacksjs.com)
- server: catch a module no auto-import barrel mentions (#2408) (54cd716) (by Chris chris@stacksjs.com) (#2408, #2408, #2408, #2408)
💚 Continuous Integration
- check the server declarations are current (#2408, #2056) (b736c01) (by Chris chris@stacksjs.com) (#2408, #2408, #2056, #2408, #2056, #2056, #2408, #2408)
🔧 Chores
- release v0.74.25 (2fe170d) (by Chris chris@stacksjs.com)
- regenerate the API surface for the newly scoped models (#2412) (18d0716) (by Chris chris@stacksjs.com) (#2412, #2412)
Contributors
- Chris chris@stacksjs.com