Skip to content

Move a story between the article list and the rail - #236

Open
ssavutu wants to merge 2 commits into
mainfrom
feat/developing-story-article-handoff
Open

Move a story between the article list and the rail#236
ssavutu wants to merge 2 commits into
mainfrom
feat/developing-story-article-handoff

Conversation

@ssavutu

@ssavutu ssavutu commented Sep 10, 2026

Copy link
Copy Markdown
Member

Follow-on to #235. A developing story and the article that answers it were separate pieces of typing: an editor tracking a story in the rail retyped the headline into the editor, and one who had already filed the article retyped it into the rail. Both hops now carry the headline and the blurb across.

Article → developing story

A row action on the article list (TrendingUp) posts the article's title and excerpt to POST /v1/developing-stories. The list already receives excerpt, so this needs no new endpoint. A 409 says the story is already on the rail; a 403 is left to the existing admin-only dialog, since the rail's writes are admin-only.

Developing story → article

A row action on the developing-stories page opens /articles/new?title=…&excerpt=…, and EditArticleView seeds title and excerpt from the query when the route is the new-article one. Keeping the title identical across the hop is what lets the homepage rail link the story to the article once it publishes, since the rail matches on the slug derived from the title.

Notes

  • The copy is one-way on purpose: the rail is keyed on the title, so a story keeps saying what it said even if the article is later retitled or never filed.
  • Trash rows do not offer the promote action.
  • Added a test that the editor seeds from the query string; npx vitest run (21) and tsc pass, with only the pre-existing @radix-ui/react-label resolution error and the pre-existing saveArticle exhaustive-deps warning.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NhFBibhRZkEZzW3qJrAMy5

ssavutu and others added 2 commits September 10, 2026 01:37
A developing story and the article that answers it were separate pieces of
typing: an editor tracking a story in the rail retyped the headline into
the editor, and one who had already filed the article retyped it into the
rail. Both directions now carry the headline and blurb across.

The article list gets a row action that posts the title and excerpt as a
developing story, and the rail gets one that opens the new-article editor
seeded from the story. Keeping the title identical across the hop is what
lets the homepage link the two, since the rail matches on the slug the
title derives.

The copy is one-way on purpose. The rail is keyed on the title, so a story
keeps saying what it said even if the article is later retitled or never
filed at all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NhFBibhRZkEZzW3qJrAMy5
The rail is day-to-day newsroom work, not configuration: an editor
tracking a story is the person who knows it is developing. Requiring an
admin meant the row action added alongside it answered 403 for most of
the people who would reach for it.

Sign-in is still required; only the admin check goes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NhFBibhRZkEZzW3qJrAMy5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant