Repository navigation
Release v0.1.5: richer schemas, multi-file import, paper look, signed macOS app - #116
Merged
Merged
Conversation
chore: sync main into develop after 0.1.4
feat: schema model for notes, indexes, enums and type lengths
fix: save schemas opened from the home or restored at startup
feat: column editor with enums, lengths, defaults and notes
feat: table notes and indexes in the side panel
chore: lint the project conventions in TypeScript and Rust
feat: import DBML files
feat: detect the database of imported files more often
feat: import several files from the home
feat: drop files on the home to import them
A second primary key declaration on a table now adds to the first instead of replacing it, and the uniqueness a single-column key gave its column goes away when the key grows. Key drops (DROP PRIMARY KEY, the PRIMARY index, DROP CONSTRAINT with the key's name, RENAME CONSTRAINT), USING INDEX and LIKE ... INCLUDING INDEXES are followed, so a key dropped and declared again is replaced.
fix: read a composite key declared one column at a time
feat: give the app the website's paper look
chore(deps): ignore zip advisories until the updater ships zip 9
feat: draw the empty states
fix: open the app's own menu instead of the system dropdowns
fix: keep a selected table's relations when pressing delete
Release builds of the macOS app are now signed with the SocaDB Developer ID under the hardened runtime and notarized, app and disk image, so Gatekeeper opens them without a warning and the signature stays the same from one update to the next. The certificate goes into a throwaway keychain at the start of each macOS release leg. build.ts signs the MCP server and the agent runtime with it, since Tauri doesn't sign resources, and Sparkle's Autoupdate and Updater.app are signed before the build because Sparkle ships them ad hoc. After the build the disk image is notarized and uploaded again, and a check fails the leg unless the app and the disk image are notarized and every executable carries the team and the hardened runtime. Local and pull request builds stay ad hoc.
feat: sign and notarize the macOS app with a Developer ID
feat: lighten the sticker on the home's New schema button
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotes everything merged into
developsince v0.1.4 tomain. Once merged, release-please openschore(main): release 0.1.5, and merging that ships the release.Richer schemas. Tables and columns gain notes, enums, indexes and type parameters such as lengths and precision, as optional fields of the schema model, so older files open unchanged and every loaded schema goes through the same integrity pass (#94). Columns are edited in a one-line list with a column editor for enums, lengths, defaults and notes, and defaults tell a value from an expression (#96). Tables get a note and an Indexes tab in the side panel (#97). The canvas shows notes, enum values and indexes (#100), SQL export writes them (#101), and the agent can read and write them through new MCP tools (#103).
Import. SQL import keeps enums, indexes, notes and pg_dump keys, and lists what it couldn't keep (#102). DBML files can be imported (#104), and the database of an imported file is detected from more of its types (#105). Several files can be imported at once from the home, one schema file each, without overwriting existing files (#106), and files can be dropped on the home (#107). A composite primary key declared one column at a time is read correctly (#108).
Look. The app takes the website's paper look: warm paper and objects, the sticker on the actions where you start, and the marker band on the open table (#109). Empty states are drawn (#111). The app's own menus replace the system dropdowns, and the Home toolbar button loses its resting fill (#112). The home's New schema button wears a lighter sticker, since it's on screen every day (#115).
Fixes. Schemas opened from the home or restored at startup save again (#95). Pressing Delete with a table selected no longer removes its relations (#113).
macOS. The app is signed with a Developer ID and notarized, the disk image too, with the hardened runtime and the JIT entitlements the bundled Bun runtime needs (#114). It installs without a Gatekeeper warning, and a signature check fails the release if any bundled executable isn't signed with our team and the runtime flag.
Tooling. Project conventions are linted in TypeScript and Rust (#98). rustls is updated for its advisories (#99), and the zip advisories are ignored until the updater ships zip 9 (#110).
v0.1.5-rc.1was built from 0bef475, still signed ad hoc.v0.1.5-rc.2was built from 0741ab2 with the Developer ID: both macOS builds were notarized, the downloaded disk image and app passspctlas "Notarized Developer ID" and are stapled, and the app opened without a warning from a browser download, with the Claude chat and the MCP server from Claude Code working under the hardened runtime. The update from an ad hoc build to a Developer ID one was tested with the published 0.1.4 against a local appcast serving the rc.2 archive: Sparkle validated it, installed it on restart, and the app relaunched as 0.1.5 with the Developer ID. #115 came after rc.2 and only changes a button style.