Rename author to developer across the v2 extensions API - #155
Merged
Conversation
"Author" implied solo/literary authorship, which never fit an entity that can be an organization, gets moderated/approved, and can be transferred or claimed like any other account. v2 is still internal-only, so this is the cheapest point to fix it. Renames the v2-owned schemas, routes (/authors/* -> /developers/*), DB tables/columns (authors -> developers, author_claims -> developer_claims, author_transfers -> developer_transfers, author_history -> developer_history), and the submission payload's "author" field to "developer". v1's read-only extension-listing API is untouched: its JSON response still calls the field "author", and its own extensions.author_id column is left as-is — only the query that joins the renamed table follows along. Claude-Session: https://claude.ai/code/session_01Co1bu2gU5kEHN65KooNUHN
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
api | 704f73a | Commit Preview URL Branch Preview URL |
Jul 26 2026, 05:54 PM |
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 8 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
…ation Review comment on PR #155: extension_submissions.payload is a JSON blob, not a SQL column, so renaming the schema didn't touch already-persisted rows — they still had the old {"author": {...}} shape. approve() on any pre-existing pending submission dereferenced payload.developer on an object with only .author, threw, and surfaced as a permanent generic database error; list endpoints would also keep serving the old shape for old rows. Fixed by adding a one-time UPDATE to migration 0008 that moves the author key to developer via json_set/json_remove/json_extract, matching this codebase's existing pattern of fixing up persisted data inside the migration that changes its shape (see 0002, 0004). Verified against real local D1: bootstrapped v1's schema.sql, applied 0001-0007, seeded a legacy-shaped pending submission, then applied the fixed 0008 and confirmed the payload's author key became developer while the rest of the JSON was preserved untouched; a row already in the new shape is left alone (idempotent). Claude-Session: https://claude.ai/code/session_01Co1bu2gU5kEHN65KooNUHN
Contributor
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Auto-approved: Renames 'author' to 'developer' across the internal-only v2 extensions API, including tables, columns, code, and routes. No behavior change, bounded and clearly beneficial naming fix. v1 public API untouched.
Re-trigger cubic
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.
Summary
/authors/*→/developers/*), DB table/column (authors→developers,author_claims→developer_claims,author_transfers→developer_transfers,author_history→developer_history), and the submission payload'sauthorfield todeveloper.0008_rename_authors_to_developers.sqlperforms the rename viaALTER TABLE ... RENAME(verified against real local D1 — FK references, indexes, and triggers all retarget correctly).author(own stable contract), and its ownextensions.author_idcolumn is left as-is — only the query that joins the now-renamed table follows along.