Skip to content

docs(build): split the Swift and Raycast tutorials in two - #760

Merged
aicayzer merged 1 commit into
mainfrom
docs/tutorials-to-limit
Nov 1, 2026
Merged

aicayzer merged 1 commit into
mainfrom
docs/tutorials-to-limit

Conversation

@aicayzer

@aicayzer aicayzer commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The Swift and Raycast tutorials each become two, so each part is one sitting under the 1,500-word tutorial limit, and their ceilings are removed. The Swift app now takes its queue's answers in one step, and its second part shows the core's filter model and link reading instead of code an app would write itself.

Closes #716
Closes #717
Closes #729
Closes #710

#717's link bounds are in #754, and #710's Define a type and Change a type parts are in #759. Merge those with or before this one.

Changes

  • Build an app with Swift (1,492 words, was 1,692): Work without a connection uses queue.takeAnswered(), which clears every answered write in one step, with a Take Answers button and an Answered section. The Show your notes step says why the rows use title and points to items.displays(of:) for naming items of any type. Renaming and the verdict step move to part two.
  • Edit and find notes in a Swift app (new, 1,267): rename a note with its base version; see a merged verdict from a change made elsewhere; check links as you type with linkParts(in:) and items.linkCandidates(of:in:), saving the text so the copy makes its references edge; and find notes by title with FilterExpression, encoded() and init(decoding:), keeping the search between launches.
  • Build a Raycast extension (1,102, was 1,848): a key for notes, the extension and client, one calls module with createItem, a note form, and a run.
  • Build forms from types in a Raycast extension (new, 1,194): listTypes and getType, field controls titled by each field's label (no longer made from the field's name), a form built from the chosen type, the type_not_permitted refusal, and a key widened to tasks.
  • build/meta.json lists each second part after its first; page-limits.json gives both new pages the tutorial kind and removes the two ceilings. Build's landing card and the Overview say the Raycast tutorial saves notes.

Testing

  • pnpm test: 828 passed, on main after docs(connectors): describe v0.0.8 status words and core fields #757 and docs(glossary): hold the Glossary page to GLOSSARY.md #758.
  • pnpm build and pnpm exec vite preview: all four pages looked at at 375 px (no sideways scroll) and at 1,280 px, with the sidebar listing each part after the first; their .md copies carry every step.
  • The Swift code of both parts, put together into one app, builds against marfa-swift 0.0.48 for macOS 27.
  • Checked against marfa-swift 0.0.48 (Links.swift, FilterModel.swift, LiveQuery.swift, WorkingCopy.swift) and marfa v0.0.50: device/link-candidates-bound, -unresolved and device/body-link-by-title (a new link by title stays unresolved until the instance's lookup answers on save, then the copy makes the edge); device/body-link (references edges); FieldDefinition.label in openapi.json (a type read answers a label for every field).

Notes for reviewers

Checklist

  • The title is a scoped Conventional Commit.
  • New behavior has a test that was seen failing first, or no test was needed and the reason is above.
  • Docs, comments and the contract still say what is true after this change.

@aicayzer
aicayzer marked this pull request as ready for review November 1, 2026 00:18
@aicayzer
aicayzer force-pushed the docs/tutorials-to-limit branch from 293704b to 8b03be3 Compare November 1, 2026 00:19
@aicayzer
aicayzer force-pushed the docs/tutorials-to-limit branch from 8b03be3 to 562a454 Compare November 1, 2026 00:44
@aicayzer
aicayzer merged commit 731e892 into main Nov 1, 2026
8 checks passed
@aicayzer
aicayzer deleted the docs/tutorials-to-limit branch November 1, 2026 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant