You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #49 — Lists parity gaps: GitHub-backed lists, saved views, view modes and collaborative editing
The features page advertises viewing list data as cards, a grid, or an ERD diagram, and
lists can be nested and connected as a graph. Android renders a single table-ish layout.
Cards — the mode that actually suits a phone; probably the sensible Android default.
Grid — the dense spreadsheet view; needs horizontal scrolling and frozen first column to be
usable on a phone.
ERD — the relationship diagram across connected lists; :feature:lists already models
connections (GET /api/lists/connections), so the data is there.
Each mode should be selectable per view (see the saved-views sub-issue) rather than being a global
toggle.
Tests: Compose tests per mode; wide-table horizontal scrolling.
Filed from the parity review of feature/parity-wip @ 14d7795 against interlinedlist.com (OpenAPI /api/openapi.json, 233 paths) and the public help centre.
Blocked on a question — this issue's core assumption is not supported by the live API
Picked this up after #51 (saved views) landed, and stopped. #51 needed the saved-view config shape
confirmed live, so I created a view on the test account and probed it. That probe contradicts what
this issue assumes.
config.mode only ever stores records. I sent each of these as config.mode on PUT /api/lists/{id}/views/{viewId}:
cards, card, grid, table, erd, diagram, board, gallery, kanban, list
Every one came back as "mode": "records", with HTTP 200 and no error. The server silently
rewrites an unrecognised value rather than rejecting it. (density behaves the same way — it
accepted comfortable and compact, and quietly rewrote cozy and spacious to comfortable.)
So a saved view cannot currently record "this list renders as cards / a grid / an ERD", which is
what this issue is asking Android to build.
What I need from you
Where does the web store the view mode? Three possibilities:
(a) It is client-side only — the web keeps card/grid/ERD in local state or localStorage and
never persists it per-view. If so, this issue is still buildable, but as a device-local
preference, and it will not follow the user between web and Android. Confirm that is
acceptable and I will build it that way.
(b) It lives under a different config key that I did not guess. Tell me the key and the
accepted values and I will implement it properly.
(c) It is gated on something the test account (messenger, a subscriber) lacks.
What are the real accepted values for config.mode?records is the only one I could
observe. If the set is larger, I need the exact strings — guessing is what produced the silent
rewrites above.
Is the ERD view meaningful on a phone? An entity-relationship diagram of a list's connections
is the one of the three that may not survive the form factor. If you want it, I would rather
design it deliberately than shrink the web's rendering.
What is already in place
#51 built the client half so nothing is lost whichever answer comes back: ListViewConfig preserves config keys the client does not model through a full round-trip, and exposes storedMode so the
server's actual value is always visible. When the mechanism is confirmed, this issue is mostly
extending one enum plus the three renderers.
Leaving this open and unimplemented until the above is settled.
Activity
Adron commentedon Sep 16, 2026
Blocked on a question — this issue's core assumption is not supported by the live API
Picked this up after #51 (saved views) landed, and stopped. #51 needed the saved-view
configshapeconfirmed live, so I created a view on the test account and probed it. That probe contradicts what
this issue assumes.
config.modeonly ever storesrecords. I sent each of these asconfig.modeonPUT /api/lists/{id}/views/{viewId}:cards,card,grid,table,erd,diagram,board,gallery,kanban,listEvery one came back as
"mode": "records", with HTTP 200 and no error. The server silentlyrewrites an unrecognised value rather than rejecting it. (
densitybehaves the same way — itaccepted
comfortableandcompact, and quietly rewrotecozyandspacioustocomfortable.)So a saved view cannot currently record "this list renders as cards / a grid / an ERD", which is
what this issue is asking Android to build.
What I need from you
never persists it per-view. If so, this issue is still buildable, but as a device-local
preference, and it will not follow the user between web and Android. Confirm that is
acceptable and I will build it that way.
configkey that I did not guess. Tell me the key and theaccepted values and I will implement it properly.
messenger, a subscriber) lacks.config.mode?recordsis the only one I couldobserve. If the set is larger, I need the exact strings — guessing is what produced the silent
rewrites above.
is the one of the three that may not survive the form factor. If you want it, I would rather
design it deliberately than shrink the web's rendering.
What is already in place
#51 built the client half so nothing is lost whichever answer comes back:
ListViewConfigpreservesconfigkeys the client does not model through a full round-trip, and exposesstoredModeso theserver's actual value is always visible. When the mechanism is confirmed, this issue is mostly
extending one enum plus the three renderers.
Leaving this open and unimplemented until the above is settled.