terra
TERRA-17
Nav visibility gap: /practicas/nueva + /mi-cursada unreachable via sidebar for non-alumno roles
Blocked high
ctcoder-terra-cc
⛔ Nav half shipped at 6736632. Remaining half is SCOPE, not work: whether docentes/bedeles need a catedra-wide practicas list route, which does not exist at all today - /mi-cursada is by construction one alumno's own cursada. Filed to Elazar as eq 37 (topic terra-practicas-scope) asking whether the route is wanted and, if so, whether they need to read only, filter, or act on rows - that answer decides page vs module. Blocked deliberately rather than left in backlog so it does not read as actionable: nobody can start it without the answer.
coder-terra-cc: /practicas/nueva and /mi-cursada admit admin, but the sidebar renders those nav links only for alumno — no Prácticas nav for any other role, and no cátedra-wide prácticas list route exists. Surfaced to Elazar 2026-08-07, decision pending on what he wants (nav visibility fix vs new list route vs leave as-is).
Questions
No questions.
Activity
-
NAV HALF SHIPPED 6736632 v0.20.9, live-verified, 10 files / 364 insertions / 84 deletions read out of the push output. Acceptance met with no second source of truth: new src/lib/route-access.ts holds the table, nav.ts contains ZERO role literals and groups/orders ROUTE_ACCESS rows through one admits() predicate, and the four page-local consts moved into the table. PRACTICA_ROLES and MANAGER_ROLES are re-exported so action call sites are untouched and user-admin-core's suite still asserts the same two values. The drift was measured, not hypothetical: /mi-cursada and /practicas/nueva gate on PRACTICA_ROLES but were listed under roles.includes('alumno') alone, so FOUR of the five admitted roles saw no link. Class-S read confirmed against the code: the derivation is one-way, so a wrong table shows a link that bounces the user home and cannot admit anyone; every route still calls requireAppUserPage against live vUserGroups, and app-header/app-sidebar remain non-gate helpers that already null out for a roleless user. BOUND: 22/22 new plus 156/156 tree, typecheck clean, live version matches - the suite reads the actual requireAppUserPage calls out of src/app, so it proves the two STATEMENTS agree; it renders no sidebar and proves no route refuses anyone at runtime. No browser exercise.
-
Nav half shipped at 6736632. Remaining half is SCOPE, not work: whether docentes/bedeles need a catedra-wide practicas list route, which does not exist at all today - /mi-cursada is by construction one alumno's own cursada. Filed to Elazar as eq 37 (topic terra-practicas-scope) asking whether the route is wanted and, if so, whether they need to read only, filter, or act on rows - that answer decides page vs module. Blocked deliberately rather than left in backlog so it does not read as actionable: nobody can start it without the answer.
-
1
-
Elazar re-raised this complaint directly today (2026-08-17, relayed via coder-mars-cc): stakeholders log in, cannot find route to create practicas, stop testing. Nav half (6736632) was never browser-verified live. Bumped to P1, dispatching coder-terra-cc to walk the flow live before TERRA-76.
-
coder-terra-cc live-walked (DB+HTTP, no browser session available): nav confirmed correct against all 5 live role-sets (alumno x130, docente x16, alumno+docente x9, admin x1, client+docente x1) - all get Nueva practica + Mis practicas, all 7 nav routes 307->/login live, none 404. jtp/bedel have ZERO members so their coverage is population-limited, not a defect. REFRAMED: terraPracticas has ZERO rows ever. 154/157 terra members have never completed a sign-in (3 linked accounts, auth.users holds 5 identities total, 2 match no app-user/group row). The reported complaint 'stakeholders log in and cannot find create practica' does not survive contact with the data as a nav problem - either it is one of the 3 linked accounts hitting something else, or (fits the numbers) invitations never reached the other 154. Escalating to Elazar for which account saw it.
question
1w ago by wi-cli-venus
7h ago