a love letter to tangled (android, iOS, and a search API)
twisted TODO.md
18 kB · 485 lines
Markdown
at edge

Twisted implementation tickets #

These tickets implement the complete product specification and the Bobbin API contract. Work on one ticket per fresh agent context. A ticket is complete only when its acceptance criteria and listed checks pass.

Milestone 1: Foundations #

Exit criterion: The app has a typed, tested read boundary, stable shell, theme engine, and live API contract checks.

T01 - Replace starter tests with a reliable test baseline #

Status: Complete

What to build: Remove placeholder expectations and establish shared Vitest and Cypress fixtures for route-level feature work.

Blocked by: None - can start immediately

Acceptance criteria:

Verification: bun run test:unit --run && bun run lint

T02 - Add the typed Bobbin client boundary #

Status: Complete

What to build: Add atcute dependencies and one configurable XRPC boundary with runtime record validation, abort support, pagination, and typed errors.

Blocked by: T01

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T03 - Add live Bobbin smoke tests with Hurl #

Status: Complete

What to build: Create a read-only Hurl suite using the approved desertthunder.dev fixture and document how to run it.

Blocked by: None - can start immediately

Acceptance criteria:

Verification: bun run test:smoke

T04 - Build the Base16 theme engine #

Status: Complete

What to build: Map validated Base16 schemes to semantic Ionic and app CSS tokens, with bundled defaults, JSON import, selection, and persistence.

Blocked by: T01

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T05 - Replace the starter screen with the application shell #

Status: Complete

What to build: Add responsive navigation, route layouts, settings, back behavior, safe areas, and stable deep-link routing for every specified domain.

Blocked by: T01, T04

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T06 - Add coverage, caching, and shared request states #

Status: Complete

What to build: Add in-memory request deduplication, explicit stale times, cursor guards, coverage notices, and shared loading/error/empty components.

Blocked by: T02, T05

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

Status: Complete

What to build: Add sanitized Markdown, safe link handling, common record headers, identifier copying, and canonical Tangled links.

Blocked by: T01

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

Milestone 2: Complete read-only client #

Exit criterion: Every public, user-relevant Bobbin record and query family in the specification has a navigable read view.

Status: Complete

What to build: Add identifier entry, mixed full-text results, every Bobbin search filter, coverage state, and cursor pagination.

Blocked by: T06, T07

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T09 - Build complete profile pages #

Status: Complete

What to build: Resolve handle or DID and render profile metadata, pinned repositories, owned repositories, links, and independently loading sections.

Blocked by: T06, T07

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T10 - Build actor activity dashboards #

Status: Complete

What to build: Expose every actor-oriented *By query as typed, paginated activity sections linked to their subject records.

Blocked by: T09

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T11 - Build repository overview pages #

Status: Complete

What to build: Render repository identity, topics, links, knot, spindle, languages, README, labels, counts, collaborators, and recent ref activity.

Blocked by: T06, T07

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T12 - Browse repository trees and blobs #

Status: Complete

What to build: Add ref-aware directory navigation and safe text, binary, large-file, and missing-blob views.

Blocked by: T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T13 - Browse branches, tags, commits, and ref updates #

Status: Complete

What to build: Add paginated refs and commit history, path-filtered logs, commit details, and ref-update records.

Blocked by: T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T14 - Render diffs, compares, and archive downloads #

What to build: Add single-ref diffs, two-revision comparison, readable patch output, and streamed archive downloads.

Blocked by: T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T15 - Read issue lists and details #

What to build: Add repo issue filters, pagination, detail pages, derived state, state history, labels, mentions, and references.

Blocked by: T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T16 - Read pull lists and details #

What to build: Add repo pull filters, pagination, detail pages, derived status, status history, target/source data, and patch links.

Blocked by: T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T17 - Read comments and reactions #

What to build: Add paginated discussion and reaction views for issues, pulls, strings, and other valid subjects.

Blocked by: T15, T16

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T18 - Read stars, follows, vouches, and collaborators #

What to build: Add relationship views for repo stars, actor follows and vouches, and repo collaborators, with links to both ends of each edge.

Blocked by: T09, T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T19 - Read pipelines, statuses, and artifacts #

What to build: Add repo/spindle pipeline lists, pipeline details, status history, artifact metadata, and safe artifact downloads.

Blocked by: T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T20 - Read labels and Tangled strings #

What to build: Add label definition/operation views and string detail, listing, comment, and reaction flows.

Blocked by: T07, T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

T21 - Read knots, spindles, memberships, and public keys #

What to build: Add public infrastructure views for owned services, members, owners, versions, knot keys, actor public keys, and freshness limitations.

Blocked by: T09, T11

Acceptance criteria:

Verification: bun run test:unit --run && bun run build

Milestone 3: Web and PWA release quality #

Exit criterion: The complete web client is installable, accessible, responsive, deterministic under test, and honest about offline or stale data.

T22 - Make Twisted an installable PWA #

What to build: Add manifest, install/update handling, icons, theme colors, and an offline application shell with explicit online-data states.

Blocked by: T05

Acceptance criteria:

Verification: bun run build and a browser PWA audit

T23 - Cover complete user journeys in Cypress #

What to build: Add intercepted end-to-end journeys for discovery, profiles, repos, source, collaboration, activity, infrastructure, settings, and failures.

Blocked by: T08-T21

Acceptance criteria:

Verification: Start bun run dev, then run bun run test:e2e

T24 - Complete accessibility and responsive review #

What to build: Audit every route family for keyboard, screen-reader, contrast, zoom, reduced motion, touch targets, safe areas, and long content.

Blocked by: T08-T23

Acceptance criteria:

Verification: bun run test:unit --run && bun run test:e2e plus manual assistive-technology review

Milestone 4: Native apps #

Exit criterion: Android and iOS packages launch the complete client and pass platform smoke checks without product-specific forks.

T25 - Package and verify Android #

What to build: Add the Capacitor Android project, final identity/assets, safe-area/status-bar behavior, external links, downloads, and back navigation.

Blocked by: T22, T24

Acceptance criteria:

Verification: bun run build && bunx cap sync android plus the documented Android debug build

T26 - Package and verify iOS #

What to build: Add the Capacitor iOS project with the same product behavior, final assets, safe areas, status bar, external links, and downloads.

Blocked by: T25

Acceptance criteria:

Verification: bun run build && bunx cap sync ios plus the documented iOS simulator build

T27 - Run the release verification matrix #

What to build: Verify the complete contract and user experience across web, PWA, Android, and iOS and resolve release-blocking regressions.

Blocked by: T03, T23, T24, T25, T26

Acceptance criteria:

Verification: Run every command in ROADMAP.md and the documented native build commands