# v0.7.7 — Manual Smoke Checklist (release gate)

> Run against a **scratch PostgreSQL** instance. Mark each item only after verifying it live in the app. This checklist gates the release after `feat/v0.7.7-next-up` squash-merges to `prod` and before tagging `v0.7.7`. Source: architectural spec §8 (verbatim).

## Roles & grants

- [ ] Create a role with all options (LOGIN, SUPERUSER, CREATEDB, CREATEROLE, INHERIT, REPLICATION, BYPASSRLS, CONNECTION LIMIT, VALID UNTIL, PASSWORD) + a membership grant to another role.
- [ ] Grant / revoke each privilege class (table, sequence, routine, schema, database) from the role detail grants editor.
- [ ] Drop a role that has dependencies — the confirm dialog lists the dependencies before executing.

## Tables & relationships

- [ ] Create a table with a multi-column PRIMARY KEY.
- [ ] Edit a table: rename a column, add a column, drop a column, change a column type, change default, toggle nullable — each change stages as its own queue item with an `(i/n)` description.
- [ ] Reorder columns → rebuild succeeds (single transaction: constraints, indexes, FKs both directions, grants, owned sequences preserved).
- [ ] Reorder columns on a trigger-bearing table → rebuild refused with the blocker copy (fail-closed).
- [ ] Set tablespace + row-level security via table options.
- [ ] Create a cross-schema FK with ON DELETE CASCADE (referenced table picked from another schema).
- [ ] Edit an FK → 2-item commit (drop + re-add) lands cleanly.

## Maintenance

- [ ] VACUUM, ANALYZE, REINDEX run on a table via the overflow menu — confirm dialog shows the lock-warning copy; success reports duration.

## Regression

- [ ] Demo SQLite database opens and behaves unaffected.
- [ ] Stale-guard: after an external `ALTER TABLE`, editing the table in the app blocks staging with the stale guard.