1[{"version":"2.0.16","notes":"fix offer ingest cpu spin"},{"version":"2.0.14","notes":"auth rework protocol v2"},{"version":"1.56.155","notes":"Added \/api\/:name\/releases\/history endpoint for multi-version changelog support in the Android app."},{"version":"1.56.89","notes":"operator login rebuild"},{"version":"1.55.50","notes":"fix: Add SQLite busy timeout and busy errors (v1.55.50)\n\n- Configure every SQLite connection with a 5000ms busy timeout\n- Map SQLITE_BUSY\/LOCKED to error.Busy across prepare, exec, step, and reset paths\n- Print a human retry message for top-level busy failures\n- Add coverage that opened connections carry the busy timeout\nfix: Cap zlib decompression by manifest size (v1.55.49)\n\n- Require declared uncompressed size for object decompression and verification\n- Cap decompression at declared size plus slack, bounded by MAX_FILE_SIZE\n- Thread manifest file sizes through ingest, archive, graph, review, diff, build, and raw-file paths\n- Add regression coverage for compressed payloads that inflate beyond the declared-size slack\nfix: Make migrations transactional and monotonic (v1.55.48)\n\n- Reject databases with schema versions newer than the running binary\n- Wrap each migration and schema_version write in BEGIN IMMEDIATE\/COMMIT\n- Replace delete-then-insert version stamping with rowid upsert behavior\n- Add regression coverage for stale-binary downgrade refusal\nfix: Escape JSON script-breakout characters (v1.55.47)\n\n- Escape \u003c, \u003e, and \/ in shared JSON string output\n- Prevent \u003c\/script\u003e payloads from breaking JSON islands\n- Add regression coverage for script tag breakout strings\nfix: Block unsafe markdown URL schemes (v1.55.46)\n\n- Allow only http, https, mailto, root-relative, and relative markdown URLs\n- Render unsafe links and images as escaped plain text instead of active tags\n- Add regression coverage for javascript\/data markdown payloads\nfix: Require registered SSH keys for offers (v1.55.45)\n\n- Reject unknown SSH public keys during auth instead of accepting any ed25519 key\n- Route SSH contributor offers into pending quarantine when contributions are enabled\n- Keep operator SSH offers on the direct save path\n- Add regression coverage for SSH contributor quarantine and disabled offers\nfeat: Prefill release notes draft in repo detail (v1.55.44)\nfix: Auto-fill release notes for published builds (v1.55.43)\nfix: Remove Atlas metadata chatter (v1.55.42)\nfix: Quiet Atlas copy and tame repo metadata saves (v1.55.41)\nsmtp: fix dangling --user arg (defer freed before spawn) (v1.55.38)\nsmtp: revert segfaulting stderr pipe"},{"version":"1.43.7","notes":"add lightbox popup for screenshot attachments in issue thread (zoom-in cursor on thumbnail, dark overlay modal, Escape\/backdrop to close)"},{"version":"1.42.5","notes":""},{"version":"0.0.0","notes":""}]