▣ wi

Open work items

clear
65 items
refprojecttitlestatuspriorityassigneeupdated
#323 mars chat-duo Elazar Pending pane refreshes mid-type → loses user input. Bug: pane re-render clobbers focused input field. Owner: llmmsg-srv-cc-w (chat-duo). backlog urgent 2026-05-12 02:06
MARS-145 mars Mars DB scaling: migrate serverless runtime from direct-5432 to Supavisor transaction pooler (6543); reserve direct-5432 for weekly-kpi cron + migrations/seed; cut runtime pg.Pool max 16->~3; audit+cap per-request concurrent-query fan-outs (mirror Pluto mapWithConcurrency); pre-flight named-prepared-statement check (txn mode drops them). 3-PM consensus bs-mql6kqmrm6j, Venus=reference (already on pooler). One-env-var + cron carve-out, reversible. backlog high db-mars-cc 2026-06-19 17:10
MARS-84 mars Weekly hub-DM relay for the ux-pain-digest: a recurring agent-side step (CronCreate or proxy poll) reads the fresh appEvents action=ux-pain-digest row (detail.textReport, detail.relay) and DMs the report to PM + Elazar on the llmmsg hub, then flips detail.relay.delivered=true. Needed because the Vercel cron can't reach the tunnelled hub. Wire BEFORE first digest fires Mon 2026-06-15 13:00 UTC. Satisfies Elazar's 'dm you, me, email' bar (email+appEvents already done by MARS-83). backlog high pm-mars-cc 2026-06-09 17:41
MARS-38 mars Codex audit — P0 security/forensics: resume-link fail-closed + appEvents storage-key strip (7 sites) + userRoles role-change changelog backlog high --agent 2026-06-09 17:03
#322 mars eq (Elazar Questions) — decoupled-from-bwi pending-Qs tracker; 3-PM consensus + Elazar approval pm-mars-cc-18608/18632; venus stub in flight blocked high 2026-05-12 02:40
MARS-147 mars Student duplicate-práctica deletion request: student requests delete (reason=duplicate), picks keeper from pulldown, teacher approves -> non-keeper soft-deleted backlog normal 2026-06-19 19:27
MARS-146 mars Disable dormant never-onboarded students (never logged-in/authed this cycle) so they drop from reports + regular screens backlog normal 2026-06-19 19:25
MARS-141 mars Vercel runtime-log API billing-capped (ExceedsBillingLimitError) — blinds PTD runtime-log gate until cap reset/raised backlog normal 2026-06-16 16:53
MARS-136 mars Re-key grading attribution to práctica-pick (jtpUserId) — reverses live-SA model backlog normal 2026-06-16 06:04
MARS-126 mars Real-life-as-SSOT JTP attribution analysis: quantify divergence between start-of-year studentAssignments (error-prone excel import) and actual student JTP picks (práctica.jtpUserId). Two mismatch classes: (1) JTP students picked but aren't assigned to; (2) students assigned to a JTP who picked a different one. Analysis only first (no writes); evidence base for evidence-based reassignment (NOT admin-pick UI). Links MARS-43 + live-vs-snapshot rule. (Elazar 2026-06-14) backlog normal 2026-06-14 22:30
MARS-125 mars Proactive unreviewed-práctica backlog outreach: identify top 3-4 teachers (JTPs) by sin-revisión backlog, the active JTP in each's comisión, the adjunto + titular; draft email to adjunto/titular asking how to address the backlog before it's insurmountable. Real-audience outbound — held for Elazar approval before send. (Elazar 2026-06-14) backlog normal 2026-06-14 22:24
MARS-122 mars DB (deferred/cold): 24 unindexed FKs on forensic/audit/housekeeping columns (archivedBy/deletedBy/restoredBy/resolvedByUserId/surrogateUserId/actorUserId/createdUserId/assignedTeacherUserId); none in hot paths; track, index only if a real query path emerges backlog normal 2026-06-14 06:40
MARS-118 mars Audit PTD render-GET tooling: enable exercising authed routes (dedicated test-user + stored session, OR a server-side render-self-check route) — Mars leg of the cross-project gap that let Pluto's /informes 500 ship unexercised (audit unauth render-GET -> 302/login, authed routes never actually rendered in PTD) backlog normal 2026-06-14 05:35
MARS-116 mars Mars logging structural hardening (R1 follow-up): middleware-injected requestId correlation + actor de-anon in onRequestError (F-3/F-4), isCritical sync-write for auth/authz/security cats (F-5), log-error 5min digest dedup (F-6) — audit design-review first (middleware is auth-adjacent) backlog normal 2026-06-14 02:36
MARS-108 mars Teacher-facing student reassignment surface (JTP/Ayudante self-service, NOT on /alumnos) backlog normal 2026-06-13 06:46
MARS-107 mars Mars appEvents conform to fleet standard (evolutiva-appevents-standard.md): add categoryId uuid FK->lookupOptions + seed appEventCategory group (16 canonical + practica/studentAssignment/assignment) + backfill 18 free-text values w/ mapping; add 4 promoted cols (httpStatus/durationMs/path/failureCode); add logError/logWarn/logInfo wrappers + pickKnown + isCritical sync-bypass; append-only trigger (GUC-bypass) AFTER appEventRelays sidecar cutover (replace detail.relay.delivered UPDATE pattern); replace level-only prune with 5-cat-security tiered retention; canonical v_appEvents_* views; legacy_events sink. Staged db+coder. BLOCKED on committed SSOT + Elazar priority call. backlog normal 2026-06-13 02:41
MARS-106 mars No-404 directive: navigation/practica-link-dead fired 3x — find and eliminate the dead practica link source (broken link/route), not just relabel the event backlog normal 2026-06-13 02:23
MARS-101 mars /practicas/[id] detail-grid: 25px overflow @768 (nowrap dt labels force 1fr tracks past tooth-panel) + label truncation @360 ('Restauraci…') — needs live-DOM-measured fix backlog normal 2026-06-12 06:40
MARS-68 mars Audit Next.js/Node compute that should be pushed to Postgres (aggregations/filters/joins done in JS that belong in SQL or a view) inProgress normal 2026-06-12 05:56
MARS-97 mars EPIC mobile-first refactor (Elazar directive, all 3 apps): Mars is desktop-CSS-with-patches, not mobile-first. Staged base-up rework. Stage0 foundation (44px tap floor + search/form fixes, mobile-only media blocks, desktop density unchanged); Stage1 DataTable mobile card mode (fixes /practicas + /docentes); Stage2 /mi-cursada; Stage3 /practicas/nueva form (+tooth-selector tap targets, +undefined .conducto-* classes latent bug); Stage4 filter-bar accordion; Stage5 practica detail (/practicas/[id]+/mi-cursada/[id]: info-bar, changelog, comentarios, review-form, image-viewer pinch-zoom currently broken on mobile); Stage6 secondary (soporte thread, notificaciones, perfil, postgrado-progression). Order 0>1>2>3>5>4>6. Owners: coder-mars 0/3/5, audit-mars-ca 1/6. Held on proxy-mars BEFORE baseline (Elazar launching). Admin wide-tables=P3 tail/defer. backlog normal pm-mars-cc 2026-06-12 01:36
MARS-87 mars EPIC: shift /users /estudiantes /docentes from admin-dashboard mgmt to self-managed roster (JTP/Ayudante/Adjunto/students self-pick relationships + self-confirmation workflow) backlog normal 2026-06-09 18:03
MARS-86 mars Disable 107 orphan-auth users (auth huerfanas, never logged in) backlog normal 2026-06-09 18:03
MARS-77 mars Sidebar/navbar per-role regroup (Stage A): execute the holistic restructure the /sidebars-preview diagnostic (75ad66f, 2026-06-04) was built to inform. Per-role nav still cluttered/inconsistent. Use the preview tool (renders real sidebar per role side-by-side) to design grouping, then regroup. Only piecemeal edits landed since (MARS-33/34, WI#327, WI#214); holistic cleanup dropped + untracked until now (Elazar 06-09). backlog normal 2026-06-09 16:17
MARS-69 mars UX Friction (epic): reduce user pain points surfaced by toast/error telemetry backlog normal 2026-06-09 03:44
MARS-64 mars Archive trigger captures NEW not OLD on UPDATE — verify forensic recovery coverage across audited tables (db) backlog normal 2026-06-07 10:56
MARS-60 mars SOP-7 A: override-ayudante UI — authorized role can correct/remove the auto-added ayudante on a práctica (Romina complaint; auto-add is by-design, gap = no override path) backlog normal coder-mars-cc 2026-06-07 08:34
MARS-42 mars Check size of Mars images on Hostinger (api-images file store) — measure total disk + file count used by Mars JPEGs on the api.pensanta.com/mars FTP-jail host; report bytes + count, flag if cleanup/retention needed. backlog normal 2026-06-06 08:41
MARS-35 mars Adjunto oversight/governability landing: adjunto logs in -> lands on a page showing comisión health, which JTPs need help, pending workload (Elazar 06-06, q3). NEEDS DESIGN/BRAINSTORM - distinct surface from /practicas backlog normal pm-mars-cc 2026-06-06 05:50
MARS-13 mars Tech-debt sweep: catalog unused DB objects (tables/columns/views, e.g. 0-row #395/#396, redundant text cols #394) + dead app-code fields/exports; file one deletion WI per finding (Elazar 06-05: stop brushing off 'legacy field we dont use') backlog normal 2026-06-05 18:40
MARS-14 mars └─ Delete unused DB views (technical debt audit) backlog normal 2026-06-05 18:45
MARS-17 mars │ └─ Delete unused views: vComisionAyudantesByJtp, vPendingAccessRequests, vStudentPostgradoProgression backlog normal 2026-06-05 18:41
MARS-16 mars │ └─ Delete unused health/admin views (vHealth*, vActiveSupportTickets, vAccountSwitchLinks, vHelpArticles) backlog normal 2026-06-05 18:41
MARS-15 mars │ └─ Delete unused error logging views (vErrorsLast5/10/20/25, vAppErrors*, vRecurringErrors, vAppEventsRecent) backlog normal 2026-06-05 18:41
#487 mars Custom 404: add LLM-copy block to not-found page + enrich routing/not-found event (referrer, appVersion, requestId) + rate-limiter backlog normal coder02-mars-cc 2026-06-05 18:38
#7 mars CR-override-grade: adjunto/titular jumps in when JTP unavailable backlog normal 2026-04-30 11:12
MARS-138 mars getJtpStats PENDING axis is SA-populated while admin-delta-report + vPracticasSinEvaluar are SA-free — informes oracle can miss a picked-but-no-active-SA práctica backlog low 2026-06-16 06:55
MARS-137 mars Orphaned-pending picks: reassign-pending-practicas handling after write-path retire (MARS-136) backlog low 2026-06-16 06:19
MARS-135 mars Rotate Mars Supabase DB (postgres) password — leaked in git history backlog low 2026-06-16 05:16
MARS-132 mars EXPLAIN ANALYZE teeth_agg practica report query (1661ms mean, /informes teeth aggregation) backlog low 2026-06-16 02:37
MARS-131 mars Mars DB hygiene (no IO risk, found in 06-15 Disk-IO self-check): (1) VACUUM ANALYZE teacherComisionMemberships (65d stale, 19.7% dead); (2) lower autovacuum_vacuum_scale_factor on notifications (high churn); (3) drop unused idx_st_createdbyuserid on supportTickets (0 scans, 13 rows); (4) index users.comisionId when query plans warrant. All reversible, audit pre-apply DDL review. backlog low 2026-06-15 16:12
MARS-123 mars Broaden skew auto-reload classifier to chunk-load TypeErrors (Load failed / Failed to fetch / ChunkLoadError / dynamic-import errors) so stale-chunk refs self-recover via one-shot cache-bust — gated on recurrence; error-report-block.tsx isVersionSkew currently matches only the exact RSC stale-bundle string. Low risk (bounded by sessionStorage one-reload-per-session + __rscRetry guard). Do NOT ship for a single transient; revisit if Load-failed/chunk-load warns recur with volume. backlog low 2026-06-14 16:43
MARS-117 mars Mars: track index/DDL changes in-repo — schema.md omits indexes (0 index refs) and DDL is applied via Supabase MCP (recorded only in Supabase migrations table), so index changes like ix_appEvents_category_action_createdAt have no git-side record. Add index export to export-db.py OR adopt a db/migrations file convention so DDL is reproducible/reviewable from the repo. backlog low 2026-06-14 03:32
MARS-103 mars /notificaciones modest payload trim: paginate the 100-row list + replace 100 per-row server-action-bound <form>s with one delegated action/link nav (smaller RSC payload + less hydration). Not a perf bug — cold-start was the 6s cause; this is opportunistic. No DB/infra change. backlog low 2026-06-12 07:25
MARS-102 mars Weekly ux-pain digest delivery: move to Vercel-cron→authenticated-POST-to-hub→PM-drains-on-reconnect (remove relay-row/always-on-agent dependency). Blocked on llmmsg-maintainer answers: (1) can Vercel POST to hub from outside the reverse tunnel with an auth key, (2) unread-buffer retention/TTL must exceed weekly digest interval so an offline PM still receives it. Applies to mars (replace MARS-84 relay-row) + venus + pluto toast-ports. db agents are NOT 24/7 so a db-host cron is not viable; only nw agents + maybe PMs run 24/7. backlog low 2026-06-12 07:08
MARS-100 mars /informes table overflows 43px @360 (861px table-wrap) — needs mobile card/scroll mode backlog low 2026-06-12 06:37
MARS-92 mars Drop legacy accessRequests.status text col — statusOptionId FK is the enforced gate; plain text col is unconstrained dead weight (surfaced during Pluto PLUTO-22 cross-app alignment) backlog low 2026-06-10 06:14
MARS-67 mars Index cold FK columns deferred from advisor sweep backlog low 2026-06-09 02:53
MARS-63 mars Cross-app: port Mars error-digest cron (errores 24h digest email) to Pluto + Venus — Elazar greenlit 2026-06-07, NOT now. Each app gets its own daily digest cron + threshold + recipient. Pluto/Venus PMs mirror in their backlogs when picked up; this is the tracking SSOT. backlog low 2026-06-07 09:37
MARS-56 mars Stop the recurring push stash-dance: gitignore untracked auditor scaffolding + resolve parked pm/codex-says.md backlog low 2026-06-07 06:21
MARS-53 mars Graceful handling of stale server-action-ID (deploy-skew) in global error boundary backlog low coder02-mars-cc 2026-06-06 23:12
MARS-43 mars 11 active studentAssignments rows with NULL assignedTeacherUserId — students with no teacher assigned (pre-dates 2026-06-06, surfaced during MARS-40). Fix path: evidence-based auto-assign per no-operator model (NOT an admin-pick UI). Triage when bandwidth allows. backlog low 2026-06-06 09:01
MARS-31 mars Animated/moving notification badge: make the notification bell badge pulse/animate to draw attention to unread notifications backlog low pm-mars-cc 2026-06-06 05:18
MARS-22 mars student-assignment-tcm.ts peer-inference fallback (L188-234) seeds a NULL SA from OTHER students' practicas.jtpUserId/ayudanteUserId snapshot; TCM-gated (deletedAt IS NULL + role-matched) so stale teachers rejected — NOT a rule-(b) violation, low risk. Tighten to prefer live peer SA over práctica snapshot. ↳#684 backlog low pm-mars-cc 2026-06-05 19:22
#394 mars Dual-column status antipattern: accessRequests (status text + statusOptionId) and notifications (type text + notificationTypeOptionId) are synced by triggers — assess dropping redundant text columns in favour of UUID FK only backlog low db02-mars-cc 2026-06-05 18:38
MARS-5 mars informes follow-up: grader keeps credit even after student SA lapses (LEFT-JOIN vStudentAssignments on the graded axis) backlog low 2026-06-05 09:57
#502 mars Enable pg_cron + daily errorDigestSnapshots table so error trends survive appEvents pruning (WI#390) backlog low 2026-05-22 06:12
#492 mars Plan: patient DNI/HC number storage + cross-record sharing - enable future autocomplete-suggest, mismatch warnings ('DNI ya existe con otro nombre'), statistics backlog low 2026-05-22 06:08
#390 mars Pruning strategy for append-only growing tables: appEvents (2334 rows), notifications (5202 rows), imageUploadAnalysisEvents (4327 rows) — no TTL/rotation defined; design retention policy + purge job backlog low db-mars-cc 2026-05-19 04:56
#202 mars Standing audit: nextjs/nodejs → Postgres pushdown — find Node-side aggregations/filters that should be DB views/functions, refactor opportunistically backlog low audit-mars-cc 2026-05-18 11:04
#2 mars Rename studentAssignments.jtpUserId → assignedTeacherUserId backlog low 2026-05-18 10:14
#396 mars helpArticles + helpArticleTags tables: 0 rows, no known app surface — PM decision: implement in-app help or drop scaffolding backlog low 2026-05-17 05:02
#395 mars studentPostgradoProgression table: 0 rows, no known app surface — PM decision: implement feature or drop table backlog low 2026-05-17 05:02
#241 mars Cátedra branding sweep p3: URL slug strategy backlog low 2026-05-08 07:21
#9 mars CR-8 informes/calificaciones backlog low 2026-04-30 11:12
#8 mars CR-7 comisionChangeRequests backlog low 2026-04-30 11:12