docs(android): M12 phase 5 as landed #117
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/android-theming-nav-phase-5"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
§6.2 corrected and amended, §6.1 given the Home decision, and a "Phase 5 as landed" section added with the ✅ in §8. Targets
edge, like every M12 phase.§6.2's table was in the wrong order — and the order is now load-bearing
The three news categories were listed Five on Friday / Newsletter / Screenshots. The website's array has them Screenshots / Five on Friday / Newsletter, between News and Wiki.
That did not matter while the table was only a mapping. It matters now: a stored
orderis an index into the site's nav, so a row the admin never moved has to take its sort key from the same list, and a key from the wrong list scrambles a partially-overridden nav. The rows are now numbered 0–15, the order is called out as verbatim fromSiteHeader.jsx, and the reason is stated where someone editing the table will see it.Also new in §6.2
featurevalues are deliberately not mirrored into the table, though the website's array carries one on nine of these rows.APP_MENUstays the app's own source of truth for gating: a second copy of a security-relevant value that drifts silently is worth more than it costs.APP_MENUrow" rule covers seven entries, not four — the three news categories as well as the hub boards.Two decisions the org lead settled before code
Both are recorded where the rule lives, not only in the phase notes:
The news categories are ignored for the drawer, on the same rule as the hub four. The mapping still exists for phase 6's added links, where a category tab is a perfectly good destination because the admin named it by path. The alternative — surfacing such a row only when overridden — keeps AC-1 but lets an override introduce navigation after all, so it was rejected. Written into §6.2 as a dated decision block.
An admin may hide the Home row, mirroring the website, where
/is hideable from the public header. Home stays theNavHost's start destination and stays reachable by back-press. The contrast that makes it safe, and which the note states:/admin/navigationhas three guards because hiding it would strip the only way to undo an override, and nothing about a hidden Home row is unrecoverable. Written into §6.1, where "hiding is subtractive" already lives."Phase 5 as landed"
Records the sort-key finding above as the thing the spec did not settle; that an untouched instance gets
APP_MENUback by identity, so AC-1's drawer claim is anassertSamerather than a structural comparison, and what "nothing usable in the row" covers; that the app's own rows are partitioned off rather than sorted, with the note that a futureAPP_MENUinterleaving an app-only row among the public ones would see it moved to the tail; thatgroup/sectionare read and dropped, and that both stored shapes are read; and whyRoutes.NEWS_ROUTEis declared besideRoutes.NEWSrather than replacing it — with the consequence thatdestination.routenow carries a query and is compared onsubstringBefore('?').PLAN.mdis untouched: refreshing the §9 M12 entry is phase 8's line in §8, and phases 3 and 4 left it alone the same way.Android-app: RunicGateway/Android-app#38.