A calm place to write long-form, and publish it to the open social web. skypress.blog/
0

Configure Feed

Select the types of activity you want to include in your feed.

Refresh contract comments for mention-aware publish

+10 -6
+4 -2
src/components/PublishPanel.tsx
··· 93 93 /** 94 94 * Title + publish/update control. Publishing a NEW article targets a CHOSEN publication 95 95 * (Decision 0010) and creates a public Bluesky post, so it requires an explicit confirmation 96 - * (brief §10). Editing updates the existing record in place, in its own publication, and does 97 - * NOT create a new post (Decision 0008). 96 + * (brief §10) — the confirm dialog also discloses which mentioned accounts will be notified. 97 + * Publishing is blocked when the assembled post exceeds 300 graphemes (the live counter flags 98 + * it and the button is disabled). Editing updates the existing record in place, in its own 99 + * publication, and does NOT create a new post (Decision 0008). 98 100 */ 99 101 export default function PublishPanel( { 100 102 agent,
+6 -4
src/lib/publish/records.ts
··· 271 271 const BSKY_POST_MAX_GRAPHEMES = 300; 272 272 273 273 /** 274 - * Build the companion Bluesky post (Decision 0005). Body text + link/mention facets come 275 - * from `assemblePostText` (shared with the editor's live counter). `description` populates 276 - * ONLY the embed card subtitle; the writer-typed lede goes in the body via `bodyLede`. 277 - * `associatedRefs` drive the standard.site rich card (Decision 0013). 274 + * Build the companion Bluesky post (Decision 0005). Body text + facets come from 275 + * `assemblePostText` (shared with the editor's live counter): the body is 276 + * `title + lede + cc line + URL` (lede and cc line omitted when empty), and `facets` carries 277 + * the article-URL link facet plus a `#mention` facet per cc-ed account. `description` 278 + * populates ONLY the embed card subtitle; the writer-typed lede goes in the body via 279 + * `bodyLede`. `associatedRefs` drive the standard.site rich card (Decision 0013). 278 280 */ 279 281 export function buildBskyPost( input: { 280 282 title: string;