New
- See exactly what a publish changed. An expanded publish job in the Runs view now lists the files the publish changed, marked added, modified, or deleted, with counts per status. Added and modified paths link straight to the file.
- "View diff" on a row opens the record's before and after, side by side by default, with the number of changed fields in the header. Inline is a click away.
- The diff shows values in their comparable form, so a field the destination service merely re-rendered reads as "Formatting only" rather than burying the edits you actually made.
Better
- Approve, Reject, and Discard on a single record in the desktop app now flip immediately instead of taking about a second.
- A publish where some records land and others don't reports as partial, per connection, with the published and failed counts. The records that went live are named as such.
- Records created by a publish get readable filenames from the connector, the same way pulled records do — a Notion or Attio destination no longer fills up with
<recordId>.json. Applies to newly published creates.
Fixed
- Live Exports into Airtable, Postgres, Supabase, and Google Sheets re-published records on every run when the only difference was how the destination spells an empty field or re-renders a timestamp.
- A Postgres or Supabase column with mixed-case
ASin its name —Certified AS Organic— arrived at the destination lowercased toas.
Under the hood
- Two read-only endpoints back the new publish diffs: a paginated list of files a publish changed, and a before/after for one record. Both are on the API and the
scratchmdCLI, and both diff the commits either side of the publish, so they report what landed rather than what was planned. - A routine run can be triggered with every pull step forced to full, which is the only mode that reconciles records deleted or archived in the destination.
- Publish failures caused by a destination record that's been deleted or archived now carry a stable error code, so a surface can key friendly copy off it instead of matching on connector message text.