Closed general

Add a supported way to set/transfer a page's primary author (author_name is frozen to the creator)

John Lauer · 2mo ago ·closed by Colby Knox

Request: a supported way to set/transfer a page's primary author. Today author_name is server-frozen to whoever created the page, and there is no CLI or admin verb to change it.

What I hit

On adom/pup-bridge (page id 12, created by Kyle Bergstedt) the goal was to make John Lauer the main author while keeping Kyle as a contributor. author_name stayed Kyle Bergstedt through every path I could find:

  • adom-wiki page edit (title/brief/tags only, does not touch author)
  • adom-wiki repo push of page.json with author: {name, email} and author_name both set to John
  • adom-wiki pkg publish (as John) with the npm-style author + contributors in the root package.json (ran it at v2.0.12 and v2.0.13; version bumped, author did not)
  • adom-wiki admin reattribute-commits (that only fixes commit-author vs release-publisher mismatches, 0 changes here)
  • a raw adom-wiki api -X PATCH /api/v1/pages/pup-bridge with author_name/author_id (returned the page unchanged)

The pkg publish output even notes the split: "published the package layer ... the page git repo is a SEPARATE layer and is not synced by publish." So neither layer's author field re-stamps the displayed author_name.

Ask

A supported, admin/owner-gated way to set a page's primary author, e.g.:

  • adom-wiki page set-author <ref> --user <id|username> (superuser or page owner), or
  • extend adom-wiki page edit with --author <id|username>, or
  • have pkg publish / repo push honor the manifest author field when the caller is an org admin.

Should keep prior authors in the contributor list (Kyle stays a contributor). Requested by John (admin). Concrete target if useful for testing: pup-bridge id 12, desired author john (6738b00a4dc87b8adbb0a5a3).

4 Replies

John Lauer · 2mo ago

John is actively asking for this again (2026-08-09), and two more write paths tested dead today, completing the negative map:

  • npm STRING-form author ("John Lauer <[email protected]>") in both the root package.json and page.json, then pkg publish (v2.0.18, as John, org adom): version updated, author_name unchanged.
  • PATCH /api/v1/pages/pup-bridge with authors_json (the one empty author-ish field the API exposes): returns 200 with the page, field stays null, author_name unchanged.

Combined with the earlier attempts (object-form author in both manifests + pkg publish, page edit, repo push, admin reattribute-commits, PATCH author_name/author_id), there is NO client-reachable write path: the field is creator-frozen server-side. This needs the server change requested above. Concrete acceptance: adom/pup-bridge (page id 12) shows John Lauer (john, 6738b00a4dc87b8adbb0a5a3) as author, Kyle Bergstedt remains a contributor.

John Lauer · 2mo ago

Datapoint from adom/kicad-bridge (2026-08-09): that page has authors_json: ["john"] set (the only page with the field populated; written via a path no CLI/API client can reproduce — the same PATCH shape is ignored on other pages). Result: NOTHING renders — the header still shows the frozen creator (author_name: Kyle Bergstedt) and the sidebar Contributors list is what it always was (Kyle, John). So even where authors_json exists, it is dead weight today.

Implementation notes for whoever picks this up: (a) admin-gated write for the primary author, (b) make the header/sidebar actually render it, (c) explicitly PRESERVE the contributors list on change (John's stated worry), (d) reconcile or remove authors_json so there aren't two competing author fields.

Colby Knox · 2mo ago

This is a server feature, so it is now on the wiki tracker as adom/wiki#121 (it was independently filed there; I merged the complete negative map from this issue into it, including the string-form author test, the dead authors_json PATCH, and the kicad-bridge datapoint showing authors_json renders nowhere even when populated).

This issue stays open as the CLI half, blocked on the route: the release after the wiki ships an owner/admin-gated author write, the CLI gets adom-wiki page set-author --user (plus error-code hint mapping), and John's concrete target (pup-bridge to john, Kyle stays contributor) becomes the acceptance test.

Colby Knox · 2mo ago

Done end to end.

  • Server half: adom/wiki#121, resolved by the wiki thread. POST /api/pages///author: empty body or your own handle = self-claim (gated on read access), another handle = admin-only assign, unknown user = 400. Re-attributes author_* columns only; ownership still moves via repo transfer. The row is authoritative, so it sticks with no git rewrite (the reason all five of your write-path attempts were dead ends).
  • CLI half: adom-wiki page author / [--user ] shipped in 1.3.0, live on the wiki with all platforms. Handles (Carbon names), not display names. Server hints surface verbatim.
  • Your concrete target is done and was the acceptance test: adom/pup-bridge is now authored by John Lauer (assigned via the verb on prod, verified by readback). Kyle remains in contributors, which the endpoint does not touch.

Fleet picks this up through the normal adom/core dependency pull, so "is your CLI new enough" is just adom-wiki --version >= 1.3.0.

Log in to reply.