Skip to content

docs(uploads): four-mode upload recipes + nav (#67) - #74

Merged
adnaan merged 1 commit into
mainfrom
adnaan/upload-modes-docs
Jun 12, 2026
Merged

docs(uploads): four-mode upload recipes + nav (#67)#74
adnaan merged 1 commit into
mainfrom
adnaan/upload-modes-docs

Conversation

@adnaan

@adnaan adnaan commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Completes 3 of the 5 tasks in #67 — the docs-native recipes + nav + the go.mod bump. The other two (rewrite content/reference/uploads.md, run cmd/sync) are mirrored content owned by the sync pipeline and landed via #72 (livetemplate@v0.13.0) + #73 (client@v0.13.0), both now merged. This PR deliberately does not touch content/reference/uploads.md.

Do not auto-close #67 on merge — see "Remaining for #67" below. (Commit references (#67), not Closes.)

Changes

  • go.mod — bump livetemplate v0.12.0 → v0.13.0 (the release that ships the four upload modes), matching the reference doc's source_ref.
  • recipes/apps/avatar-upload.md — rewritten to mirror the (already-modern) examples/avatar-upload/ code, framed as the default Volume mode. Drops the long-removed AllowUploads/ConsumeUpload API, hardcoded /Users paths, and v0.3.0 references.
  • recipes/apps/upload-modes.md — new recipe walking all four modes (Volume / Direct / Proxied / Preview), pointing at examples/upload-modes/.
  • recipes/ui-patterns/forms/file-upload.md — names the default Volume mode and links the four-mode reference + new recipe.
  • tinkerdown.yaml + recipes/apps/index.md — register the Upload Modes page.

Verification

  • tinkerdown validate content/ — 94/94, 0 errors; the three touched/added pages validate.
  • cd cmd/sync && go test ./... and GOWORK=off go build ./... + go mod tidy — clean.
  • Built the production Docker stack and ran the chromedp e2e suite against it: IA / breadcrumb / recipe-nav / responsive / patterns all pass; both new pages render correctly in-browser at desktop + mobile viewports with the nav entry present.
  • The 4 TestSpine* failures seen locally are environmental (server-push/WebSocket through a local Docker bridge), not from this change: the v0.13.0 diff is upload-only, main's CI e2e is green, and a pristine v0.12.0 image fails the same 4 identically.

Remaining for #67 (follow-up, not in this PR)

The upload-modes example's browser E2E is gated behind LVT_UPLOAD_MODES_E2E + LVT_LOCAL_CLIENT (unset in CI), and its skip message cites docs#67 as the issue to "integrate it into the CI harness." Docs CI runs e2e/... only, never examples/..., so that test currently runs nowhere. Wiring it in needs the client bundle + a CI job — suggest a dedicated follow-up issue rather than expanding this PR.

🤖 Generated with Claude Code

Bring the docs-site upload recipes onto the four-mode `Mode` API shipped in
livetemplate v0.13.0:

- go.mod: bump livetemplate v0.12.0 -> v0.13.0 (the release that ships the
  four upload modes), matching the reference doc's source_ref.
- recipes/apps/avatar-upload.md: rewrite to mirror the (already-modern)
  example, framed as the default Volume mode. Drops the long-removed
  AllowUploads/ConsumeUpload API, hardcoded /Users paths, and v0.3.0 refs.
- recipes/apps/upload-modes.md: new recipe walking all four modes
  (Volume / Direct / Proxied / Preview), pointing at examples/upload-modes/.
- recipes/ui-patterns/forms/file-upload.md: name the default Volume mode and
  link the four-mode reference + new recipe.
- tinkerdown.yaml + recipes/apps/index.md: register the Upload Modes page.

The mirrored content/reference/uploads.md is owned by cmd/sync and lands via
the v0.13.0 sync PR (#72); this PR deliberately does not touch it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@adnaan
adnaan merged commit 05599f6 into main Jun 12, 2026
3 checks passed
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.

Upload modes: docs-site reference + recipes + nav (post-release)

1 participant