chore: prep v0.1.0 for the catalog (fix SQLite migration + icon) #13

Merged
padreug merged 2 commits from chore/catalog-release-prep into main 2026-07-19 21:17:11 +00:00
Owner

Release prep before tagging v0.1.0 and adding chatelet to aiolabs/lnbits-extensions.

🐛 Migration bug — would break every SQLite install

While smoke-testing the migrations against a real SQLite DB (the test suite monkeypatches crud, so migrations were never actually run), m001 failed:

sqlite3.OperationalError: near ".": syntax error
[SQL: CREATE INDEX idx_chatelet_bookings_room_status ON chatelet.bookings (...)]

CREATE INDEX ... ON <schema>.<table> is invalid SQLite grammar — the schema qualifier goes on the index name, not the table (SQLite attaches the ext DB as schema chatelet). Fixed to CREATE INDEX chatelet.idx_… ON <table>, matching the restaurant extension. Safe to amend m001 in place since chatelet has never been installed anywhere.

Verified: m001 + m002 now apply cleanly on real SQLite; a room + booking round-trip through crud (exercising the checkin_instructions column and big_int amounts); 22 unit tests still green.

Icon + tile

config.json tile pointed at a non-existent chatelet.png. Added the shared aio.png logo (fleet convention) and fixed the tile → it also becomes the catalog icon.

After this merges

  1. Tag v0.1.0 at HEAD + push.
  2. sha256 the archive.
  3. Add the entry to aiolabs/lnbits-extensions/extensions.json (direct-to-main infra repo — live immediately, no flake.lock bump).

Follow-up worth filing

A real-DB migration test in the suite would have caught this in CI (the current tests deliberately avoid the DB). Recommend adding a migration fixture; happy to do it as a separate issue.

Why PR

Money-adjacent extension + a functional migration fix → PR category. Handing off merge to you via the Forgejo UI.

🤖 Generated with Claude Code

Release prep before tagging `v0.1.0` and adding chatelet to `aiolabs/lnbits-extensions`. ## 🐛 Migration bug — would break every SQLite install While smoke-testing the migrations against a real SQLite DB (the test suite monkeypatches crud, so migrations were never actually run), m001 failed: ``` sqlite3.OperationalError: near ".": syntax error [SQL: CREATE INDEX idx_chatelet_bookings_room_status ON chatelet.bookings (...)] ``` `CREATE INDEX ... ON <schema>.<table>` is invalid SQLite grammar — the schema qualifier goes on the **index name**, not the table (SQLite attaches the ext DB as schema `chatelet`). Fixed to `CREATE INDEX chatelet.idx_… ON <table>`, matching the `restaurant` extension. Safe to amend m001 in place since chatelet has never been installed anywhere. **Verified:** m001 + m002 now apply cleanly on real SQLite; a room + booking round-trip through crud (exercising the `checkin_instructions` column and `big_int` amounts); 22 unit tests still green. ## Icon + tile `config.json` tile pointed at a non-existent `chatelet.png`. Added the shared `aio.png` logo (fleet convention) and fixed the tile → it also becomes the catalog `icon`. ## After this merges 1. Tag `v0.1.0` at HEAD + push. 2. `sha256` the archive. 3. Add the entry to `aiolabs/lnbits-extensions/extensions.json` (direct-to-main infra repo — live immediately, no flake.lock bump). ## Follow-up worth filing A **real-DB migration test** in the suite would have caught this in CI (the current tests deliberately avoid the DB). Recommend adding a migration fixture; happy to do it as a separate issue. ## Why PR Money-adjacent extension + a functional migration fix → PR category. Handing off merge to you via the Forgejo UI. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
CREATE INDEX ... ON chatelet.bookings is invalid SQLite grammar — the schema
qualifier must go on the INDEX name, not the table (SQLite attaches the ext
DB as schema `chatelet`). Would have failed m001 on every SQLite-backed
install (the default backend). Fixed to `CREATE INDEX chatelet.idx_... ON
<table>`, matching the restaurant extension. Caught by a real-DB migration
smoke (m001+m002 applied, room+booking round-tripped) before tagging; safe to
amend m001 in place since chatelet has never been installed anywhere yet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD
config.json tile pointed at a non-existent chatelet.png. Add the shared aio
logo (static/image/aio.png) and point the tile at it — matches the fleet
convention (satmachineadmin/spirekeeper) and gives the catalog a valid icon.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VUQCfdqiLSsFS2jcGnaFD
padreug deleted branch chore/catalog-release-prep 2026-07-19 21:17:11 +00:00
padreug referenced this pull request from a commit 2026-07-19 22:10:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aiolabs/chatelet!13
No description provided.