Skip to content

Add the Spock-backed Instagram demo and editor/play workflow#1

Merged
softmarshmallow merged 4 commits into
mainfrom
feature/instagram-spock-editor
Jul 14, 2026
Merged

Add the Spock-backed Instagram demo and editor/play workflow#1
softmarshmallow merged 4 commits into
mainfrom
feature/instagram-spock-editor

Conversation

@softmarshmallow

Copy link
Copy Markdown
Member

What changed

  • add a Spock-backed Instagram demo with feed, profiles, connections, posts, stories, reels, search, upload/publish, comments, likes, saves, actor switching, and signed media
  • add the read-only Editor and prototype-style Play host, including selectable previews and plain-language computed example-data origins
  • add the small Uhura primitives needed by the demo: map values, replacement navigation, live-provider selection, and image/video/upload handling
  • migrate Editor, Play, and the app-owned Spock provider from JavaScript to strict framework-free TypeScript, with tests and checked-in browser artifacts
  • document the demo architecture, dogfood findings, and deferred provenance/editing model

Why

This makes the Instagram slice an end-to-end dogfood path: examples remain deterministic for checking and Canvas, while Play uses Spock GraphQL, RPC, identity, and storage as its remote authority. The TypeScript package lets the editor/play tooling grow without introducing a frontend framework or a Node runtime dependency for normal Uhura use.

Review notes

  • Value::Map preserves provider UUID keys across decode, evaluation, state, iteration, and serialization while retaining the existing JSON object wire shape.
  • navigate replace is carried through syntax, checking, IR, Core intents, traces, and host application. It preserves stack depth, mints a fresh page instance, resets state, and sweeps orphan surfaces.
  • the live provider module is trusted project code loaded only by Play; checks, Canvas, and traces remain fixture-driven
  • preview provenance is editor-only metadata; examples remain outside runtime IR and the inspector is read-only
  • web/dist/** and examples/instagram-uhura/providers/dist/** are intentionally checked in; CI verifies they match TypeScript source
  • the live demo currently expects Spock at 127.0.0.1:4000; dynamic umbrella-runner port injection/readiness belongs to the companion Spock change

Validation

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • pnpm -C web check (typecheck, lint, builds, 27 tests)
  • CLI fmt --check, check --deny-warnings, trace, and project smoke tests
  • cargo build --locked -p uhura-wasm --target wasm32-unknown-unknown
  • generated-artifact cleanliness guard
  • browser smoke checks for Editor selection, read-only provenance, and Spock-backed Play

Add semantic native video rendering, replace navigation, and an opt-out for incomplete fixture providers while keeping Canvas and trace deterministic.
Make every displayed count and relationship authority-derived; add private saves, multi-frame Stories, playable Reels, Search and Explore, full profile grids and lists, robust comments, upload publishing, responsive navigation, deterministic Canvas coverage, and dogfood rationale.
@softmarshmallow softmarshmallow marked this pull request as ready for review July 14, 2026 07:30
@softmarshmallow softmarshmallow merged commit 5b45eaa into main Jul 14, 2026
1 check 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.

1 participant