Skip to content

Epic: Lists depth — views, folders, hierarchy, contributors, connections #60

Open
2 of 10 issues completed

Description

@Adron

Summary

/api/lists* is the largest domain in the API (42 operations). After the schema and materialize epics, these are the remaining list features the app does not have.

Unimplemented endpoints

Method Path Feature
GET/POST /api/lists/{id}/views saved views
POST/PUT/DELETE /api/lists/{id}/views/{viewId} fork / update / delete a view
GET/POST/PUT/DELETE /api/folders list folders (distinct from document folders)
GET /api/lists/{id}/contributors ranked contributors
GET/POST/DELETE /api/lists/connections list connections
POST /api/lists/{id}/data/versions freshness poll + presence heartbeat
GET /api/lists/{id}/watchers/me am I watching this list
POST /api/lists/{id}/refresh manual refresh for GitHub-backed lists
GET /api/users/{username}/lists a user's public lists
GET /api/users/{username}/lists/{id} public list metadata + ancestor chain
GET /api/users/{username}/lists/{id}/data public list rows, paged/filtered/sorted

Live verification (2026-09-15) — all bearer-reachable

GET /api/lists/{id}/views        -> 200 {"views":[]}
GET /api/lists/{id}/contributors -> 200 {"contributors":[],"totalContributors":0}
GET /api/lists/{id}/watchers/me  -> 200 {"watching":false,"role":null}
GET /api/lists/connections       -> 200 {"connections":[]}
GET /api/folders                 -> 200 {"folders":[]}
GET /api/users/adron/lists        -> 200 (includes source/githubRepo/githubRepoPrivate/parentId/folderId)

Model gap

Models/ListSummary.cs has only Id, Title, Description, IsPublic, CreatedAt, UpdatedAt. The live payload also carries userId, messageId, parentId, folderId, metadata, source, githubRepo, githubRepoPrivate — every one of which backs a feature below.

Repo conventions to follow

  • Service: one partial class InterlinedApiClient file per domain in InterlinedList/Services/.
  • Wire types in InterlinedList/Models/ matching real API JSON.
  • ViewModel per view in InterlinedList/ViewModels/ (CommunityToolkit.Mvvm ObservableObject + [RelayCommand]).
  • View is a self-contained UserControl in InterlinedList/Views/ that news up its own VM from AppServices.Session.
  • Strata tokens only — no colors/fonts/radii outside Resources/Palette.xaml + Theme.*.xaml.
  • Read-after-write for any mutating endpoint whose response envelope has not been live-verified.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Table stakesarea:listsArea: listsepicFeature-area parent issue with sub-issuesparityWeb/API feature-parity work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions