| PLUTO-112 |
pluto |
Live 500 on /informes — fn_getInformesBundle returns porAnestesia (and likely sibling array keys) undefined for sparse/zero-row scope; client .map crashes. PLUTO-97 regression. Fix fn to COALESCE every array key to [] + client null-guard. PTD must GET /informes for the failing scope, not log-tail. |
backlog |
urgent |
db-pluto-cc |
2026-06-14 05:24 |
| PLUTO-69 |
pluto |
Access regression: students who previously logged in are now blocked (agujero negro / blocked-user landing) - PROD, real users |
inProgress |
urgent |
coder-pluto-cc |
2026-06-12 17:29 |
| VENUSINF-1 |
venusinfra |
EPIC: ONEDB target flip — telemetry consolidation onto venus-pg (supersede whey-pg) |
backlog |
urgent |
nw-whey-cc |
2026-06-09 02:20 |
| VENUSINF-10 |
venusinfra |
└─ Cross-update ONEDB WIs (ONEDB-12 ingestion, ONEDB-10 pg-write flip) for new target host |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-9 |
venusinfra |
└─ Repoint venus-kpi-collect + whey/lezama remote writers to venus-pg |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-8 |
venusinfra |
└─ pg_hba + network: allow whey + lezama as remote writers to venus-pg |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-7 |
venusinfra |
└─ Provision postgres17 on venus (data dir, listen_addresses, telemetry db + telemetry_rw role) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-6 |
venusinfra |
└─ Confirm + record: venus-pg is the consolidation target; supersede whey-pg in ONEDB-12/10 + one-db/DESIGN.md |
backlog |
normal |
— |
2026-06-09 02:21 |
| #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 |
| EVO-4 |
evolutiva |
Render/server errors in appEvents (appLog): verify capture parity across pluto, mars, venus + fill gaps |
backlog |
high |
pm-pluto-cc |
2026-06-19 10:49 |
| CLEDGER-1 |
cledger |
E1: Audit & Standardize |
backlog |
high |
nw-whey-cc |
2026-06-17 04:17 |
| MSG-54 |
llmmsg-srv |
KPI Track A: ADD pg views (usage.v_kpi_tokens_7d + context.v_kpi_compact_7d) + extend scrp-kpiweekly-whey (email + snapshot/live-read) |
backlog |
high |
bin-whey-cc |
2026-06-16 01:23 |
| MSG-38 |
llmmsg-srv |
POST /unregister route: deregister permanence for VENUSINF waves - {agent,caller,[bearer]}; txn validate->capture-PM-AROs->deleteAroByAgent->electPm-each->deleteRosterRow; PRESERVE cursors (optional purge_cursor:true default false); idempotent 200 already_absent; auth self-dereg ungated + admin-dereg edge-bearer interim soft-dep #599; HTTP-only (no MCP tool). Replaces hand-SQL roster DELETE dereg-at-cutover. |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| MSG-32 |
llmmsg-srv |
init-db.sh drift: stale messages schema (generated tag + phantom cols) contradicts hub.mjs self-create / live DB - reconcile or demote |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| MSG-13 |
llmmsg-srv |
Hub leaks direct DMs into sender's home ARO: kind=dm fanned to origin_aro roster (cc-context-monitor-venus DMs reaching nw-venus-cc) |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| MSG-5 |
llmmsg-srv |
Post-/compact re-register reliability: hook-fire blind spot + hook-independent shim re-register net |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #603 |
llmmsg-srv |
Alert when a CC session is blocked on interactive prompt (AskUserQuestion menu / permission approval / ExitPlanMode): wire CC Notification hook (or transcript-watcher fallback) to DM elazar via llmmsg-srv naming the blocked agent+host. Solves operator having to hunt tmux windows. Research dispatched to claude-code-guide. |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #599 |
llmmsg-srv |
Close aro_config auth gap: token-gate POST /aro_config + other privileged hub writes so a forged caller=elazar fails (coder-applog-cc exploited it to flip aro:applog PM). Elazar approved ship. |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| PLUTO-116 |
pluto |
Real-time error tee: appEvents AFTER-INSERT pg_notify trigger on Pluto Supabase (error→PM DM, warn stays in digest). GATED on nw-venus's exact spec (channel name, WHEN-clause, payload — byte-identical channel+payload across 3 apps; host listener LISTENs + DMs PM). Pluto level vocab = error|warn|info (NO fatal) so WHEN-clause = level='error'. Pre-apply audit review per DDL discipline. Additive/reversible. Do NOT start until spec lands + 112 done. |
backlog |
high |
db-pluto-cc |
2026-06-14 05:31 |
| MSG-35 |
llmmsg-srv |
Spurious unread-poke loop: read_unread cursor-ack is fire-and-forget (race) + drain-on-other-tools acks only on next poll + poker lacks debounce/idle-gate |
backlog |
high |
pm-llmmsgsrv-cc |
2026-06-14 04:58 |
| PLUTO-102 |
pluto |
D8 Tier-1: collapse fan-out-vs-pool on 4 hot pages (admin/usuarios:97 8-wide, a-solucionar:37 6-wide, practicas:188/249, alumnos/[id]:86) via bundle-RPC/CTE per PLUTO-97 ↳#98 |
backlog |
high |
db-pluto-cc |
2026-06-14 03:20 |
| PLUTO-40 |
pluto |
Mobile-first refactor (Elazar all-app directive): audit + base-up redesign of layouts/nav/forms/touch-targets/breakpoints |
backlog |
high |
coder-pluto-cc |
2026-06-12 01:29 |
| 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 |
| ADRIANAP-3 |
adriana-pavon |
Normalización de Ambiente de Correos |
backlog |
high |
rob |
2026-06-09 04:23 |
| ADRIANAP-8 |
adriana-pavon |
└─ Coordinate handoff to IT tech who will apply IMAP config on devices |
backlog |
normal |
— |
2026-06-09 04:23 |
| ADRIANAP-7 |
adriana-pavon |
└─ Write IMAP config guide for all 6 accounts (prensa@, hola@, 3x Gmail, iCloud) for iPhone + Mac |
backlog |
normal |
— |
2026-06-09 04:23 |
| ADRIANAP-6 |
adriana-pavon |
└─ Fix Cloudflare DNS: merge duplicate SPF records, add DKIM key from DonWeb, add DMARC record |
backlog |
normal |
— |
2026-06-09 04:23 |
| ADRIANAP-5 |
adriana-pavon |
└─ Disable POP3 on prensa@ and hola@ in DonWeb cPanel |
backlog |
normal |
— |
2026-06-09 04:23 |
| ADRIANAP-4 |
adriana-pavon |
└─ Audit all accounts/devices: map which client (iPhone, Mac, old PC) has which account and protocol (POP vs IMAP) |
backlog |
normal |
— |
2026-06-09 04:23 |
| OPS-12 |
agent-ops |
Recover lost 2026-05-26 evolutiva-commons patch: §Shared MD Flow + §Versioning + §Boundaries B1/B4/B5 — check llmmsg message DB for original content |
backlog |
high |
bin-whey-cc |
2026-06-09 04:04 |
| OPS-11 |
agent-ops |
cc-context-monitor last_turn() v2.14 residual stale-read: agent force-compacted 'for no reason' every other session. Verified 2026-06-09 nw-whey-cc reported 184k while live /context=63.6k (3x phantom). last_turn (~line 312) reads transcript's last usage block = summarizer's pre-compact cache_read until next real turn; compact_boundary reverse-walk skip has a hole (boundary outside TAIL_BYTES, or pre-compact reading sampled in the gap before boundary written). Fix: gate actuator on LIVE window occupancy, not stale transcript estimate. NOT a cap problem - do NOT bump nw ROLE_CAP (Elazar explicit). Recurring user-facing churn. |
inProgress |
high |
bin-whey-cc |
2026-06-09 03:22 |
| VENUSINF-4 |
venusinfra |
EPIC: venus hardening (public-IP attack surface) — GATES service exposure |
backlog |
high |
nw-whey-cc |
2026-06-09 02:20 |
| VENUSINF-21 |
venusinfra |
└─ Per-service bind/least-exposure audit (pg/hub/smtp listen only where needed) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-20 |
venusinfra |
└─ ssh lockdown (key-only, no root login) + fail2ban |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-19 |
venusinfra |
└─ nftables/ufw default-deny + per-service allow rules |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-22 |
venusinfra |
└─ unattended-upgrades + basic intrusion/monitoring on venus |
backlog |
low |
— |
2026-06-09 02:21 |
| VENUSINF-2 |
venusinfra |
EPIC: llmmsg hub + runtime DB → venus |
backlog |
high |
nw-whey-cc |
2026-06-09 02:20 |
| VENUSINF-14 |
venusinfra |
└─ Point llmmsg-hub.pensanta.com (DNS) at venus public IP |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-13 |
venusinfra |
└─ Repoint whey + lezama MCP shim + bootstrap to venus hub endpoint |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-12 |
venusinfra |
└─ Migrate runtime DB v2.sqlite whey→venus (quiesce, copy, integrity-check) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-11 |
venusinfra |
└─ Stand up llmmsg hub service on venus (v2-hub.mjs, port 9703, systemd) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-15 |
venusinfra |
└─ Burn-in then decommission whey hub |
backlog |
low |
— |
2026-06-09 02:21 |
| OPS-10 |
agent-ops |
attach-tmux.sh nests tmux/stacks extra login shell on switch-client path (recurring, 'fixed 5x') |
backlog |
high |
bin-whey-cc |
2026-06-07 08:31 |
| ONEDB-10 |
one-db |
GATE#1 step iii: flip venus-kpi-collect.sh to pg-write (telemetry_rw via metrics_write) — kills kpi.sqlite split-brain co-writer; nw lane (cross-host) ↳#698 |
blocked |
high |
nw-whey-cc |
2026-06-06 19:35 |
| ONEDB-12 |
one-db |
GATE#1 step v: remote-monitor ingestion — venus/lezama write whey-pg DIRECTLY per-host (NO ssh-pull). Transport: venus=ZeroTier 172.27.178.27 or Tailscale; lezama=ssh -w L3 tunnel only (GCABA blocks ZT+TS), pg client→172.30.0.1. whey: listen_addresses + pg_hba for both + telemetry_rw role. nw co-owns ↳#698 |
backlog |
high |
nw-whey-cc |
2026-06-06 13:11 |
| ONEDB-9 |
one-db |
GATE#1 step ii: repoint 5 sqlite readers to pg telemetry_ro — netreport.sh, testnetwork --report, ccusage-daily-kpi.sh, llmmsg-kpi-report.sh, memory-lint.sh ↳#698 |
backlog |
high |
bin-whey-cc |
2026-06-06 13:11 |
| ONEDB-8 |
one-db |
GATE#1 step i: add reporter-set pg views to schema.sql (network v_history/v_report/v_by_wifi; kpi 3-day window) — distinct from coder's dashboard views; back the 5 sqlite readers ↳#698 |
backlog |
high |
bin-whey-cc |
2026-06-06 13:11 |
| OPS-9 |
agent-ops |
cc-context-monitor path-B/wind-down DM mis-targeting: db-mars-cc remediation delivered to nw-venus-cc |
backlog |
high |
nw-whey-cc |
2026-06-06 07:17 |
| MSG-12 |
llmmsg-srv |
Make context-budget nag idempotent: stop re-nagging every turn + stop stacking /compact crons after compact |
backlog |
high |
pm-llmmsgsrv-cc |
2026-06-06 06:53 |
| MSG-10 |
llmmsg-srv |
Codex receive-bridge: sidecar tmux-poke so Codex agents auto-drain llmmsg unread (no live push) |
backlog |
high |
pm-llmmsgsrv-cc |
2026-06-06 06:24 |
| MSG-11 |
llmmsg-srv |
└─ HARD PREREQ: derive + test a Codex-specific ready-prompt regex for idle-gating (CC matcher will NOT transfer; wrong matcher = corrupted-buffer poke). No send-keys goes live until validated. |
backlog |
high |
nw-whey-cc |
2026-06-06 06:24 |
| ONEDB-1 |
one-db |
one-db: 5 telemetry sqlite -> Postgres17 consolidation (umbrella) |
backlog |
high |
nw-whey-cc |
2026-06-06 03:42 |
| ONEDB-7 |
one-db |
└─ DECISION (Elazar): make ~/Documents/terminal/one-db its own git repo? bin (PM) owns the call |
backlog |
high |
bin-whey-cc |
2026-06-06 04:24 |
| ONEDB-5 |
one-db |
└─ kpi.pensanta.com dashboard on whey (chat-duo-web model): single-file Node .mjs reads telemetry views -> static KPI pages. |
todo |
normal |
coder-chatduo-cc |
2026-06-06 08:45 |
| ONEDB-6 |
one-db |
│ └─ DECISION (Elazar): kpi.pensanta.com exposure - Tailscale-only (team rec: bind whey tailnet IP, no TLS/cert ops, no public attack surface) vs public-TLS |
backlog |
high |
nw-whey-cc |
2026-06-06 04:24 |
| #572 |
llmmsg-srv |
ca.sh codex launcher: run codex on llmmsg-srv (ca= identity, sandbox-off, pull-only inbound, push-to-ccs) - fleet |
inProgress |
high |
pm-llmmsgsrv-cc |
2026-06-05 06:51 |
| #573 |
llmmsg-srv |
└─ Design + LIVE-TEST ca.sh: reads ca= from .agent-name, codex --dangerously-bypass-approvals-and-sandbox, injects -c mcp_servers.llmmsg-srv.env.LLMMSG_AGENT_NAME + LLMMSG_HUB_URL; PROVE shim auto-registers under ca name (roster check) before calling done |
backlog |
high |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #574 |
llmmsg-srv |
└─ Land reviewed ca.sh in sh.git (after PM draft review); commit+push |
backlog |
high |
bin-whey-cc |
2026-05-29 02:58 |
| #577 |
llmmsg-srv |
└─ Fix static ~/.codex/config.toml footgun: wrong key LLMMSG_AGENT->LLMMSG_AGENT_NAME + LLMMSG_SRV_HOST 127.0.0.1->public; bare codex (not via ca.sh) currently falls back to cc= in /opt/llmmsg-srv = registers as pm-llmmsgsrv-cc on loopback. Non-blocking; ca.sh -c overrides already bypass it |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #576 |
llmmsg-srv |
└─ lezama ca.sh deploy: GCABA box - get Elazar explicit OK before nw-lezama-cc syncs; codex AGENTS.md convention (aro_join on start, cm/cms -> read_unread) |
deferred |
normal |
pm-llmmsgsrv-cc |
2026-06-04 15:56 |
| #575 |
llmmsg-srv |
└─ Deploy/verify ca.sh on venus (sh.git pull); confirm a codex test session registers + hub URL resolves remote |
backlog |
normal |
nw-venus-cc |
2026-05-29 02:58 |
| #580 |
basquetwi |
bwi inter-site: Postgres + UTCP migration |
inProgress |
high |
pm-basquetwi-cc |
2026-06-05 04:08 |
| #601 |
evolutiva |
Fleet-wide Gmail dot/plus normalization: block duplicate accounts at the DATA LAYER (Mars+Pluto+Venus) |
blocked |
high |
evolutiva-pm-cc-w |
2026-06-03 21:33 |
| #608 |
agent-ops |
lezama host-dark recurrence: root-cause + harden against full-dark (2nd occurrence; died 2026-06-01 18:03 ART, clean cliff) |
backlog |
high |
nw-lezama-cc |
2026-06-02 00:45 |
| #610 |
agent-ops |
└─ Validate the installed recovery software (failed twice): identify unit, check prior-boot status+journal (fired/tried/failed?), confirm dead-kernel/power is below userland scope; validate reverse-tunnel health EXTERNALLY from whey, never trust the ssh_r_active self-report flag |
backlog |
high |
nw-lezama-cc |
2026-06-02 00:45 |
| #609 |
agent-ops |
└─ Reboot forensics: journalctl -b -1 -k (panic trace=crash / empty=power loss) + full -b -1 (OOM?), dmesg|tail-50, df -h, last -x reboot, smartctl -a |
backlog |
high |
nw-lezama-cc |
2026-06-02 00:44 |
| #606 |
llmmsg-srv |
└─ lezama single-path fragility: all 5435 probes since May23 are public-dns with zt_whey_visible=0 (ZeroTier fallback never worked); make ZT a real 2nd route + fix phantom ssh_r_active self-report |
backlog |
normal |
nw-whey-cc |
2026-06-02 05:00 |
| #605 |
llmmsg-srv |
└─ lezama host-dark alert: watchdog fires notify-elazar+eq after 3 consecutive 'unreachable' skips (~15min), instead of silently skipping forever |
backlog |
normal |
nw-whey-cc |
2026-06-02 00:45 |
| #613 |
agent-ops |
└─ Root-cause-gated remediation (after forensics): OOM->add swap + tune vm.overcommit_memory; disk-full->monitor cron + notify-elazar; kernel panic->enable kdump for post-mortem |
blocked |
normal |
nw-lezama-cc |
2026-06-02 00:44 |
| #607 |
llmmsg-srv |
└─ lezama out-of-band reset: a dead kernel cannot self-recover; scope IPMI/iDRAC vs smart-PDU for remote host-dark power-cycle (blocked on Elazar: does box have IPMI?) |
backlog |
low |
pm-llmmsgsrv-cc |
2026-06-02 00:45 |
| #600 |
agent-ops |
Global PreToolUse enforcement hook: deny non-llmmsg-srv-team agents Edit/Write to /opt/llmmsg-srv/{hub,bridge,scripts/lib}/** + deny Bash curl/http to hub privileged endpoints (extend existing PATH-script-block hook). Elazar approved ship - recurring: agents edit hub code/curl API instead of MCP tools. |
backlog |
high |
nw-whey-cc |
2026-06-01 14:43 |
| #589 |
llmmsg-srv |
lezama split-brain: island-b hub (llmmsg-srv.service) auto-started, isolated lezama agents from whey hub |
backlog |
high |
pm-llmmsgsrv-cc |
2026-05-29 17:45 |
| #579 |
agent-ops |
dbcaba backup gaps: dev backup targets wrong db + gdrive backup-mirror broke 2026-05-16 (dbcaba has no auto-backup today) |
backlog |
high |
maintainer-movilba-cc-l |
2026-05-29 08:53 |
| #552 |
agent-ops |
Agent name parsing: forbid dashes inside role/project (single-token parts only) |
backlog |
high |
pm-llmmsgsrv-cc |
2026-05-29 07:30 |
| #565 |
llmmsg-srv |
Memory-discipline policy: make enforcement discoverable fleet-wide (whey/venus/lezama) |
backlog |
high |
pm-llmmsgsrv-cc |
2026-05-29 01:56 |
| #569 |
llmmsg-srv |
└─ Per-host global CLAUDE.md: add memory-discipline.md to Lazy-loaded + 2-line enforcement pointer (whey/venus/lezama, one commit each) |
backlog |
high |
nw-whey-cc |
2026-05-29 02:28 |
| #567 |
llmmsg-srv |
└─ Land canonical memory-discipline.md in sh.git (docs/md), commit+push; nw-* pull propagates to 3 hosts |
backlog |
high |
bin-whey-cc |
2026-05-29 01:56 |
| #566 |
llmmsg-srv |
└─ Consolidate evolutiva-memory-discipline.md into fleet-neutral canonical + scrub project/agent names for public sh.git |
backlog |
high |
nw-whey-cc |
2026-05-29 01:56 |
| #570 |
llmmsg-srv |
└─ Acceptance gate: fresh agent on each host must cite the policy+thresholds when asked is-there-a-md-policy |
backlog |
normal |
pm-llmmsgsrv-cc |
2026-05-29 02:28 |
| #571 |
llmmsg-srv |
└─ memory-discipline.md threshold divergence: prose (§10/§13/§15 ~4k tok/150-200 lines/8000 budget) != enforced memlint-cron.sh (600 warn/1200 trim); make doc reference script as threshold SSOT, drop duplicated numbers |
backlog |
normal |
nw-whey-cc |
2026-05-29 02:25 |
| #568 |
llmmsg-srv |
└─ Stub evolutiva-memory-discipline.md -> sh.git canonical; update maintainer-agents.md pointer |
backlog |
normal |
nw-whey-cc |
2026-05-29 01:56 |
| #639 |
ha |
Mobile UX + best-practices enhancement of pensanta.com (keep close to com.ar, no bugs or bad code) |
inProgress |
high |
— |
2026-05-27 16:20 |
| #640 |
ha |
└─ SEO + structured data + canonical URL setup (canonical = https://hormigonacero.com.ar/ pre-cutover) |
inProgress |
high |
— |
2026-05-27 05:08 |
| #560 |
llmmsg-srv |
ARO topology v3 fleet-wide rollout (epic) |
backlog |
high |
pm-llmmsgsrv-cc |
2026-05-27 00:33 |
| #564 |
llmmsg-srv |
└─ Phase 6: llmmsg-protocol.md §ARO Membership + §Routing rewrite |
backlog |
normal |
pm-llmmsgsrv-cc |
2026-05-27 00:33 |
| #556 |
llmmsg-srv |
chat-duo-web tablet-grade evolution (path A for unified browser client) |
backlog |
high |
coder-chatduo-cc |
2026-05-26 06:31 |
| #542 |
llmmsg-srv |
Agent-hygiene: automated CLAUDE.md/memory bloat detection + LLM compression (fleet-wide) |
backlog |
high |
pm-llmmsgsrv-cc |
2026-05-25 02:03 |
| #549 |
llmmsg-srv |
└─ chat-duo Agent Hygiene pane: surfaces top-bloat agents from /agent_hygiene |
backlog |
low |
coder-chatduo-cc |
2026-05-23 18:52 |
| #531 |
llmmsg-srv |
Transport reliability + observability program (whey/venus/lezama) |
backlog |
high |
pm-llmmsgsrv-cc |
2026-05-23 18:46 |
| #617 |
llmmsg-srv |
└─ Fleet context-cost rollout: send-keys /compact watchdog + aro_leave-on-idle |
backlog |
high |
pm-llmmsgsrv-cc |
2026-06-03 16:03 |
| #621 |
llmmsg-srv |
│ └─ WI592 nag: drop CronCreate /compact from emit_context_budget_nag interactive branch once send-keys watchdog verified fleet-wide |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #620 |
llmmsg-srv |
│ └─ cc-context-monitor safety-net: flag/extend nag for agents that miss self-leave (seq AFTER rule lands) |
backlog |
normal |
cc-context-monitor-lezama |
2026-06-03 15:28 |
| #625 |
llmmsg-srv |
│ └─ path-B UserPromptSubmit injection copy: reframe CronCreate as automatic-fallback not manual action (avoid conflict w/ v2.13 over-cap DM) |
backlog |
low |
pm-llmmsgsrv-cc |
2026-06-03 16:14 |
| #624 |
llmmsg-srv |
│ └─ cc-context-monitor measured role-cap version (floor+EOQ headroom) - successor to #617 seed caps |
backlog |
low |
bin-whey-cc |
2026-06-03 16:14 |
| #614 |
llmmsg-srv |
└─ Idle over-budget agents never self-compact: wire host-side actuator + fix 3 monitor bugs |
backlog |
high |
bin-whey-cc |
2026-06-02 03:25 |
| #615 |
llmmsg-srv |
└─ chat-duo-web 9704 to lezama: move off whey-initiated -R (VPN-dependent) to lezama-initiated -L over public route |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #539 |
llmmsg-srv |
└─ Venus-side watchdog + alert standardization (mirror lezama pattern) |
inProgress |
normal |
nw-venus-cc |
2026-05-29 05:30 |
| #540 |
llmmsg-srv |
└─ Shim transport prefer-list: loopback -> ZT -> public DNS (defer until W3+W4 prove design) |
backlog |
low |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #458 |
agent-ops |
memory-budget over-budget warning: route shared-file footprint breaches to project PM with escalation chain |
backlog |
high |
bin-whey-cc |
2026-05-22 05:50 |
| #454 |
agent-ops |
llmmsg-srv roster & PM resilience: pruneStale soft-offline, offline buffering, PM re-election |
inProgress |
high |
llmmsg-srv-cc |
2026-05-22 03:52 |
| #455 |
agent-ops |
└─ PM-liveness watchdog: cc-context-monitor detects a PM-less ARO, DMs Elazar |
blocked |
high |
bin-whey-cc |
2026-05-21 16:27 |
| #459 |
agent-ops |
Plugin hygiene v2 - rollout completion (lezama + deferred items) |
inProgress |
high |
llmmsg-srv-cc |
2026-05-22 03:15 |
| #460 |
agent-ops |
└─ Plugin hygiene v2 - lezama host portion: telegram uninstall + host-global lean flip + movilba per-agent enables (see parent 459) |
backlog |
high |
nw-lezama-cc |
2026-05-22 03:15 |
| #451 |
agent-ops |
cc-context-monitor over-cap caps are stale — false alarms fleet-wide. THRESH_OPUS=160k/HAIKU=100k/SONNET=135k are ~80% of the OLD ~200k-class windows. Fleet now runs claude-opus-4-7[1m] = 1M-token window; a 268k session is 27% full, not over cap. Transcript model string lacks the [1m] marker so monitor can't auto-detect window size. Fix: bin-whey-cc updates THRESH_* in cc-context-monitor.sh to real values per Elazar's decision (true-window fraction vs. relabelled cost-budget). All of 2026-05-21's over-cap wind-downs were triggered by this false cap. |
blocked |
high |
bin-whey-cc |
2026-05-21 12:56 |
| #445 |
agent-ops |
eq backend unbuilt: hub.mjs has no /eq_* routes + no elazar_questions table — eq CLI POSTs to non-existent endpoints (/eq_ls returns not_found). chat-duo Pending panel reads elazar_questions, so no Elazar question can ever surface. Implement hub-side /eq_add /eq_ls /eq_show /eq_answer /eq_dismiss /eq_stale + elazar_questions schema per eq-spec.md |
backlog |
high |
llmmsg-srv-cc |
2026-05-21 06:16 |
| #421 |
ayudarg |
UX /necesidades/(id): mostrar 'Tomada por [nombre]' junto al botón Liberar cuando estado=En Curso |
backlog |
high |
coder-ayudarg-cc |
2026-05-18 08:40 |
| #418 |
ayudarg |
UX nav: mover Admin al pulldown; Panel pill siempre visible en barra superior |
backlog |
high |
coder-ayudarg-cc |
2026-05-18 08:39 |
| #417 |
ayudarg |
UX app-wide: diferenciar visualmente botones vs badges vs tarjetas |
backlog |
high |
coder-ayudarg-cc |
2026-05-18 08:39 |
| #416 |
ayudarg |
UX /necesidades/(id): Estado+Prioridad en misma línea; botón Yo me ocupo debajo de Estado |
backlog |
high |
coder-ayudarg-cc |
2026-05-18 08:39 |
| #278 |
ayudarg |
Necesidades: no se seleccionan de a 1 (multi-select roto) |
blocked |
high |
coder-ayudarg-cc |
2026-05-12 18:43 |
| #345 |
ayudarg |
Admin: delete data (different from self-erasure CR-290) |
backlog |
high |
— |
2026-05-12 18:43 |
| #344 |
ayudarg |
Admin: assign roles UI missing |
backlog |
high |
— |
2026-05-12 18:43 |
| #342 |
ayudarg |
Missing 'Yo me ocupo' button somewhere — client report |
backlog |
high |
— |
2026-05-12 18:43 |
| #341 |
ayudarg |
Calles: Capital streets missing in picker (e.g. Av. Rivadavia not found) |
backlog |
high |
— |
2026-05-12 18:43 |
| #289 |
ayudarg |
Conversación se actualice cada 24hs |
blocked |
high |
coder-ayudarg-cc |
2026-05-12 15:19 |
| #279 |
ayudarg |
Comunas en /necesidades: no se seleccionan de a 1 |
blocked |
high |
— |
2026-05-12 02:49 |
| #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 |
| #320 |
llmmsg-srv |
multi-subscriber SSE + sender echo + client dedupe (chat-duo + chat-duo-web cohabit) |
backlog |
high |
llmmsg-srv-cc |
2026-05-11 22:07 |
| #265 |
agent-ops |
backup-whey.service: NOPASSWD sudo for cryptsetup+mount in /etc/sudoers.d/backup-whey (failing since run #23 2026-05-08T14:22 - sudo prompts for rob pw under systemd no-tty); owner: os-whey-cc-w |
backlog |
high |
whey-nw-cc |
2026-05-10 03:16 |
| PLUTO-145 |
pluto |
Per-agent git worktree / path-scoped add for coder-pluto + db-pluto on venus (end shared-checkout git-add-all race) |
blocked |
normal |
nw-venus-cc |
2026-06-16 17:24 |
| 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 |
| VENUS-19 |
venus |
feat(infra): DB perf snapshot+diff collector (dbperfSnapshots) |
backlog |
normal |
— |
2026-06-16 02:41 |
| PLUTO-136 |
pluto |
PLUTO-133 follow-up (Elazar 5b, sequenced AFTER the main toast sweep ships): should-be-required / data-integrity candidates needing a verify pass then fix — (1) periodo date-range fechaFin<=fechaInicio unvalidated client+server; (2) practica rejection comentario not required; (3) destructive activo toggles (periodo/comision) no confirm dialog → toggle-off cascades; (4) admin create-user with no role → primaryRoleId NULL → blank-redirect login. Verify each path first (2nd-sweep agent guessed some), then fix. Do NOT start until PLUTO-133 main sweep is shipped. |
backlog |
normal |
— |
2026-06-15 16:33 |
| VENUS-17 |
venus |
chore(db): emailOutbox terminal-row retention prune — sent/permanentlyFailed rows never deleted, accumulate unbounded (was factor in drain-outbox seq-scan slow-query). Add retention prune for sent/permanentlyFailed older than ~30d (evolutiva-commons retention hygiene; emailOutbox not audited → no setArchiveContext needed). Non-urgent: partial index on status IN ('pending','sending') already neutralizes perf impact; this caps table growth. Note: drain-outbox idle-gate + partial-index fix in flight separately. |
backlog |
normal |
— |
2026-06-15 16:13 |
| VENUS-15 |
venus |
chore(db): prune legacy viewport fingerprint rows — 132 pre-reshape client-env/viewport rows store exact-px+full-UA+userId, IMMUTABLE (wi302 appevents-immutable), no retention-prune job → persist indefinitely. Reshape (VENUS-13) stops new fingerprints only. Prune via db-venus SET LOCAL app.bypass_immutable. Irreversible deletion → Elazar go/no-go required. Pre-go-live test-user data (21 testers), low stakes. |
blocked |
normal |
— |
2026-06-15 15:46 |
| VENUS-14 |
venus |
feat(ptd): authed-route PTD tooling — PTD render-GET can't exercise authed routes (302/login); authed pages + authed-only behavior (toast/error-shown producer, práctica gates) never runtime-verified. Fix: in-process self-check route (preferred) or least-priv stored session for manual authed pass. Sibling: MARS-118. |
backlog |
normal |
— |
2026-06-15 14:39 |
| VENUS-11 |
venus |
bug(validation): D3-4/5 antecedentes parent-checked-no-children + complicaciones notas/ids mismatch — advisory-log-only to measure real-user frequency |
deferred |
normal |
— |
2026-06-15 14:38 |
| MSG-51 |
llmmsg-srv |
Triage edge LLMMSG_HUB_BEARER rotation: exposed on GitHub via api-images repo (NOT llmmsg-only exposure, so no-rotate rule does not apply) |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| MSG-49 |
llmmsg-srv |
Unknown /command errors back to sender (not silent-send); usage-error on malformed known verb |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| MSG-23 |
llmmsg-srv |
hub.mjs latent SQLITE_ERROR: 'no such column: ""' at Database.prepare (seen 00:47:15 pre-restart). Route interpolates empty string into query as = "" (SQLite parses "" as column id). Find the unparameterized query, convert to bound params. Route-triggered, not fixed by restart. Also tidy hub.mjs:1007 error string to match widened regex. |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #634 |
llmmsg-srv |
Durable GC for stale bridge registrations (TTL prune) - no more retired-codex corpses in registrations.json |
deferred |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #616 |
llmmsg-srv |
Push llmmsg protocol mechanics into MCP send tool + hub (shrink model-held context) |
backlog |
normal |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| PLUTO-132 |
pluto |
feat(soporte): copy mars soporte into pluto |
deferred |
normal |
— |
2026-06-15 07:32 |
| VENUS-9 |
venus |
feat(soporte): copy mars soporte into venus |
deferred |
normal |
— |
2026-06-15 07:24 |
| MSG-46 |
llmmsg-srv |
cdw PWA: make chat-duo-web installable (manifest+icons+service worker, Add-to-Home-Screen) |
backlog |
normal |
coder-chatduo-cc |
2026-06-15 02:51 |
| 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 |
| OPS-17 |
agent-ops |
cc-context-monitor zombie-detector false-positives on reactive-idle agents: rule (turns>=2 && tool_calls==0 -> zombie) can't distinguish a self-armed-wakeup zombie from a reactive agent woken by inbound llmmsg DM that acked + stood down with no tools needed. At 05:00 it flagged audit-venus-cc (benign: empty CronList, zero ScheduleWakeup ever, 100% inbound-DM-driven) -> 2 dup alerts + cross-host investigation. Hits EVERY reactive agent (host nw between alerts, audit agents). Fix (nw-whey suggested): a wake is zombie-suspect only if NOT preceded by an inbound message in the window (self-triggered) AND/OR non-empty CronList; if wake correlates with inbound DM + empty CronList -> reactive-idle, suppress. Hub has inbound-msg timestamps to correlate. Related: OPS-11 last_turn stale-read. |
backlog |
normal |
bin-whey-cc |
2026-06-14 08:03 |
| PLUTO-129 |
pluto |
Hardening: roster-add forms allow adding a fraud-table membership into a NON-current/closed period — isPeriodoValid checks only deletedAt IS NULL, not isCurrent. Affects BOTH the new docente-detail add-form (PLUTO-128) AND the already-shipped list-page dialog (docentes/page.tsx) — PARITY, not a 128 regression. If cross-period roster-add is NOT an intended workflow (pre-stage future / correct past period), gate both forms on isCurrent. PENDING Elazar's intent call (is cross-period add a feature?). Surfaced by audit on PLUTO-128 pre-push review. |
backlog |
normal |
— |
2026-06-14 07:11 |
| PLUTO-126 |
pluto |
Email retry/failure backstop gap (pre-existing, exposed by PLUTO-38 cron-drop): after dropping the dead drain-email-outbox cron, Pluto has NO email retry and NO failure alert. A failed send (SMTP timeout) strands the row 'pending' forever — no retry, no operator alert (the alert-after-5-attempts only ever fired from the now-dead drain, which never functioned anyway). Invisible today (0 pending). Live happy-path = Next.js after()-hook send. Restore options: (a) pg_net+pg_cron */5 GATED drain (sanctioned path; vercel.json CANNOT host sub-daily cron — fails the whole build); (b) external scheduler; (c) minimum cheap win = alert-on-strand observability (appEvents warn when a row sits pending > N min). Disposition: reliability vs cron-cost — Elazar's call. Not urgent. |
backlog |
normal |
db-pluto-cc |
2026-06-14 06:50 |
| BWI-10 |
basquetwi |
wi ask: drop hardcoded assignedTo='elazar' default + retire stale_elazar_questions_gt_7d doctor check (OPS-16 code part) |
todo |
normal |
coder-basquetwi-cc |
2026-06-14 06:40 |
| 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 |
| OPS-16 |
agent-ops |
Scrub stale eq / Elazar Pending text from bwi-tool PROJECT canonical docs (MSG-36 followup): /home/rob/Documents/work/pensanta/projects/basquetWi/basquetWiInstructions.md + that project's CLAUDE.md still carry old eq/Pending wording. Not the global-rule SSOT (gdrive is, already fixed) but scrub for consistency. Owner: bwi-tool maintainer. |
backlog |
normal |
pm-basquetwi-cc |
2026-06-14 06:39 |
| PLUTO-121 |
pluto |
KPI-rework /informes (gathering inputs, do NOT implement yet): teacher-scoped report quality pass. Inputs so far: (a) wrap bare CohortAndProcedureCards grid (teacher-report.tsx:818) in titled ReportSection; (b) Moda operador/asistente cards mislabeled (modal per-student count, not most-frequent person) + redundant beside Promedio -> cut or relabel; (c) EPI RE-WEIGHT: Puia wants MORE epidemiology on pluto+venus -> KEEP/EXPAND porSexo/porProvincia/etc (REVERSES earlier generic-remove rec; do NOT cut epi buckets). Grounding: judge on ACTUAL teacher-scoped values via audit-venus KPI->source-view map + db-pluto value pull, NOT admin-proxy shape. Awaiting full KPI->view map (~20-30min from audit-venus) + Elazar per-item rulings before WI splits into coder/db work. |
backlog |
normal |
— |
2026-06-14 06:25 |
| PLUTO-119 |
pluto |
Code sweep: retire stale eventType-based appEvents queries (pre-migration schema paths still running, 35-37ms × 112-257 calls/day). Surfaced in PLUTO-115 EXPLAIN. Find + update to the current level/category/action schema. Coder sweep. |
backlog |
normal |
— |
2026-06-14 05:55 |
| 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 |
| PLUTO-117 |
pluto |
Harden getInformesBundle fn-output↔consumer contract (durable fix beyond the 112 runtime guard). Root lesson: Pluto's fn emits UNTYPED jsonb (jsonb_build_object) that TS only CASTS — a key rename (porLookup vs porAnestesia) compiles clean and crashes at runtime. A bare 'as' cast gives FALSE confidence (compiles while runtime JSON lacks the key). Fix: zod-parse (or equivalent runtime validate) the RPC return at the queries.ts:3897 boundary so fn↔consumer key drift fails LOUDLY at the boundary with a clear error, not a deep .map crash. Contrast venus: its reshapes build typed objects in TS code, so key drop fails COMPILE — Pluto's SQL-built JSON can't be compile-checked that way, hence runtime validation. |
backlog |
normal |
— |
2026-06-14 05:33 |
| OPS-14 |
agent-ops |
whey↔lezama global ~/.claude/CLAUDE.md §-level reconcile: lezama missing entire sections whey has (was missing ## Collaborate — added 2026-06-14; also lacks Permission, Communication, others). Audit all 3 hosts' global CLAUDE.md section sets, decide canonical fleet-neutral set, mirror missing sections per-host. Surfaced during the log-review-autonomy global-line rollout. |
backlog |
normal |
nw-whey-cc |
2026-06-14 05:21 |
| PLUTO-101 |
pluto |
D8 views+indexes (db lane): a-solucionar 6-scan view, academic-hierarchy + practicas team-stats/hierarchy views; verify 8d index candidates (deletedAt partial, periodoId, assignment*Id, comisionId/jtpId/adjuntoId, appEvents.createdAt, authId) vs actual index inventory ↳#98 |
backlog |
normal |
— |
2026-06-14 03:20 |
| PLUTO-99 |
pluto |
D8 Tier-2: compute-in-Node over DB rows (cron practicas-kpi-report:277/330/146/208, legacy-export-actions:68-88, hierarchy-utils:22-74/team-stats) -> SQL GROUP BY/ORDER BY ↳#98 |
backlog |
normal |
— |
2026-06-14 03:20 |
| PLUTO-98 |
pluto |
PLUTO D8 compute-placement remediation (self-scan) |
backlog |
normal |
— |
2026-06-14 03:20 |
| 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 |
| PLUTO-82 |
pluto |
Historial de cambios rows appear duplicated (~4x) on practica change history; investigate root cause (view join fan-out / archive double-write / query) and fix at source - data should not be stored 4x |
backlog |
normal |
— |
2026-06-13 08:14 |
| PLUTO-81 |
pluto |
PLUTO-77 v1 LOW followup: comision-day secondary list capped at limit-200 first-page (no cursor pagination); add cursor paging if an ayudante's assisted-comision roster exceeds 200 |
backlog |
normal |
— |
2026-06-13 07:40 |
| MARS-108 |
mars |
Teacher-facing student reassignment surface (JTP/Ayudante self-service, NOT on /alumnos) |
backlog |
normal |
— |
2026-06-13 06:46 |
| PLUTO-78 |
pluto |
Duplicate practicas: operador + asistente each create the SAME clinical event picking each other as counterpart -> 2 mirror practica rows for 1 real práctica. Need duplicate-detection + canonical-record rule (natural key candidates: fecha+comision+paciente/tratamiento+the operador/asistente pair). Design WITH Elazar; covers (a) prevent new dupes at create, (b) reconcile existing dupes in prod. Cross-team lessons-learned for mars/venus. |
backlog |
normal |
— |
2026-06-13 05:59 |
| 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 |
| VENUS-4 |
venus |
Venus appEvents conform to fleet standard: categoryId uuid FK->lookupOptions + seed appEventCategory group + backfill w/ renames (access->authz, app->system, client-env->client); add 4 promoted cols (httpStatus/durationMs/path/failureCode); canonical logError/logWarn/logInfo wrappers + pickKnown + isCritical sync-bypass; canonical v_appEvents_* views; error-tier retention job (180d, GUC-bypass); re-level 1435 perf/warn rows->info; legacy_events sink decision for ~1552 rows. BLOCKED on committed SSOT + Elazar priority call. |
backlog |
normal |
— |
2026-06-13 02:36 |
| PLUTO-73 |
pluto |
conform appEvents to fleet SSOT (categoryId FK, promoted cols, append-only+GUC, appEventRelays sidecar, retention guard, logger, views) |
blocked |
normal |
— |
2026-06-13 02:32 |
| 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 |
| PLUTO-68 |
pluto |
/practicas/nueva form: lay fields side-by-side to save vertical space (currently stacked one-below-the-other) |
inProgress |
normal |
coder-pluto-cc |
2026-06-12 17:24 |
| AYUD-4 |
ayudarg |
CR24-full: remove photo DISPLAY code (listEventPhotosQuery, EventPhotoRow, any /personas/[id] photo render) — Elazar confirmed full erasure |
backlog |
normal |
coder2-ayudarg-cc |
2026-06-12 10:10 |
| AYUD-3 |
ayudarg |
Observability: add success-path logging (login success, key page loads) — currently only error branches log |
backlog |
normal |
coder-ayudarg-cc |
2026-06-12 10:04 |
| 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 |
| PLUTO-61 |
pluto |
Stop writing dot-stripped gmail form to users.email (commons Email-Norm violation, cosmetic) |
backlog |
normal |
— |
2026-06-12 06:34 |
| 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 |
| PLUTO-53 |
pluto |
404: /notificaciones dead route — UI link points to nonexistent page (active Jun 3+9) |
backlog |
normal |
— |
2026-06-12 05:50 |
| PLUTO-46 |
pluto |
Vercel log-drain setup: Elazar greenlit (2026-06-12) true 24h+ runtime-log retention (currently logs are point-in-time only via Vercel MCP). Scope: pick drain destination (log service/endpoint), configure Vercel log-drain, implementer is infra (nw-whey/nw-venus) not coder. PM owes Elazar the concrete scoped plan before dispatch. |
backlog |
normal |
— |
2026-06-12 03:35 |
| PLUTO-44 |
pluto |
Defense-in-depth: render-path requireCapForAction throw should render graceful acceso-denegado, not 500 + admin error-email storm (generic error-boundary / convert render-path cap checks to redirect variant). Surfaced by PLUTO-43 (dead-fetch was the trigger; this guards the class). |
backlog |
normal |
— |
2026-06-12 01:54 |
| PLUTO-42 |
pluto |
/practicas mobile card is read-only: teachers cannot change practica estado/grade from a phone — handleChangeEstado control is desktop-table-only; add it to the md:hidden mobile card |
backlog |
normal |
— |
2026-06-12 01:44 |
| 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 |
| ADRIANAP-2 |
adriana-pavon |
Asesoramiento en SEO |
backlog |
normal |
— |
2026-06-09 04:23 |
| ADRIANAP-20 |
adriana-pavon |
└─ Informe escrito con plan de acción priorizado + llamada de presentación |
backlog |
normal |
— |
2026-06-09 04:24 |
| ADRIANAP-19 |
adriana-pavon |
└─ Recomendaciones Schema.org: Organization, Event, DanceSchool/LocalBusiness por página |
backlog |
normal |
— |
2026-06-09 04:24 |
| ADRIANAP-18 |
adriana-pavon |
└─ Recomendaciones de contenido: fix Cartelera (2024 events visible in 2026), expandir páginas de academias, proponer 3 landing pages SEO |
backlog |
normal |
— |
2026-06-09 04:24 |
| ADRIANAP-17 |
adriana-pavon |
└─ Revisión on-page: title tags, H1 (homepage no tiene), meta descriptions, alt text de imágenes |
backlog |
normal |
— |
2026-06-09 04:24 |
| ADRIANAP-16 |
adriana-pavon |
└─ Keyword research y análisis de competencia para flamenco Buenos Aires |
backlog |
normal |
— |
2026-06-09 04:24 |
| ADRIANAP-15 |
adriana-pavon |
└─ Auditoría técnica: Core Web Vitals, canonicals, errores 404, velocidad, mobile |
backlog |
normal |
— |
2026-06-09 04:24 |
| ADRIANAP-14 |
adriana-pavon |
└─ Configurar accesos: Google Search Console, verificar sitemap.xml, revisar robots.txt |
backlog |
normal |
— |
2026-06-09 04:24 |
| MARS-69 |
mars |
UX Friction (epic): reduce user pain points surfaced by toast/error telemetry |
backlog |
normal |
— |
2026-06-09 03:44 |
| HOAC-1 |
ha |
Vanilla rebuild: replace Divi/WordPress static export with hand-authored HTML/CSS/JS — 100% local, no jQuery, no external CDN, no wp-content/wp-includes |
inProgress |
normal |
webmaster-hormigonacero-cc |
2026-06-09 03:36 |
| HOAC-6 |
ha |
└─ Rebuild index.html as vanilla semantic HTML (header/nav/main/footer, single h1, reserve space to kill CLS) on the new design system |
inProgress |
normal |
— |
2026-06-09 05:02 |
| HOAC-10 |
ha |
└─ Teardown: delete wp-content/ + wp-includes/ once unreferenced; strip wp-* cache rules from vercel.json; update sitemap.xml/robots.txt |
inProgress |
normal |
— |
2026-06-09 03:36 |
| HOAC-12 |
ha |
└─ Accessibility pass (DEFERRED per Elazar 2026-06-08): fix viewport user-scalable=0, footer contrast, heading-order, add main landmark |
backlog |
normal |
— |
2026-06-08 18:06 |
| HOAC-11 |
ha |
└─ Verify: re-run PageSpeed mobile+desktop (target 90+ mobile), visual-parity check vs current live, confirm all internal links + sitemap resolve under cleanUrls |
backlog |
normal |
— |
2026-06-08 18:06 |
| HOAC-13 |
ha |
└─ Phase 2 (ONLY after vanilla index.html ships + verifies): build index-new.html as a from-scratch redesign PROPOSAL to present to client; keep noindex,nofollow until client approves |
backlog |
low |
webmaster-hormigonacero-cc |
2026-06-09 02:37 |
| VENUSINF-5 |
venusinfra |
EPIC: whey + lezama thin-client cutover |
backlog |
normal |
nw-whey-cc |
2026-06-09 02:20 |
| VENUSINF-26 |
venusinfra |
└─ Per-cutover rollback plan + burn-in verification gates |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-25 |
venusinfra |
└─ Define what stays local on whey vs moves to venus (role redefinition) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-24 |
venusinfra |
└─ lezama → thin client via public venus (simplify the whey-VPN dependency) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-23 |
venusinfra |
└─ whey → thin client (hub/pg/smtp point to venus) |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-3 |
venusinfra |
EPIC: Self-hosted SMTP on venus |
backlog |
normal |
nw-whey-cc |
2026-06-09 02:20 |
| VENUSINF-18 |
venusinfra |
└─ Repoint notify-elazar.sh to venus SMTP; verify delivery to Elazar inbox |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-17 |
venusinfra |
└─ PTR/reverse-DNS + SPF/DKIM/DMARC for deliverability |
backlog |
normal |
— |
2026-06-09 02:21 |
| VENUSINF-16 |
venusinfra |
└─ Install + configure MTA (postfix) on venus |
backlog |
normal |
— |
2026-06-09 02:21 |
| 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 |
| MSG-9 |
llmmsg-srv |
venus /opt/llmmsg-srv is NOT a git checkout - no sync path for maintainer pushes (forces manual /gdrive/temp hops; v1.16 bootstrap had to be hand-installed). Make it a proper git checkout of origin/main like lezama (project_lezama_code_drift) so future pushes land via git pull. Care: venus dir has live local files (.agent-name, service config) - clone-in-place or backup+clone, don't clobber runtime config. |
backlog |
normal |
— |
2026-06-06 04:56 |
| OPS-8 |
agent-ops |
Fleet model audit: many agents still pinned Opus 4.7; move to default-tracks-latest (verify default=Opus 4.8 + future models) or pin Opus 4.8; review model choice per agent by role |
backlog |
normal |
nw-whey-cc |
2026-06-06 04:25 |
| OPS-7 |
agent-ops |
attach-tmux.sh: list OFFLINE agents too; selecting one launches its ccs session and attaches you to it |
backlog |
normal |
nw-whey-cc |
2026-06-06 03:53 |
| 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 |
| OPS-1 |
agent-ops |
db-size-monitor blind to /var/lib: add to scan roots (currently /home/rob /opt /srv /rtshared). The llmmsg-srv hub DB (/var/lib/llmmsg-srv/v2.sqlite 38M live + llmmsg.sqlite 30M dead-v1) never appears in size snapshots - exactly the DB Elazar worries about. Also surfaces probe-table growth (host_probes 32k rows) for retention review. |
backlog |
normal |
nw-whey-cc |
2026-06-05 06:25 |
| VENUS-2 |
venus |
alumno→staff comentario reply email — student thread reply notifies teacher; reply-scoped, carga-seed stays silent by construction (direct INSERT bypasses notify, per Pluto practica-actions.ts:358-365); reuse 15-min notifiedAt debounce + Reply-To rectificar-practica@; Q3 yes per Elazar 2026-06-05 |
backlog |
normal |
— |
2026-06-05 06:19 |
| #644 |
agent-ops |
Fleet google-workspace real-usage sweep on venus+lezama: grep each host's transcripts for actual mcp__google-workspace__ tool_use (not installs/mentions); add per-project where used. whey done: odaia(heavy), pluto-pm(light), nw-whey(1 gmail). |
backlog |
normal |
nw-whey-cc |
2026-06-05 04:27 |
| #643 |
agent-ops |
Audit odaia agent roster — 15 cwds under ~/Documents/personal/odaia looks too many; consolidate, then properly scope google-workspace MCP per surviving agent (currently re-added to all 15 per-project as a stopgap 2026-06-05). |
backlog |
normal |
nw-whey-cc |
2026-06-05 04:27 |
| #629 |
agent-ops |
Normalize agent names + folder/.aro/.agent-name layout: fix hyphenated project-names in cc-names, KEEP host suffix -w/-v/-l (it identifies cross-host agents, e.g. proxy-<proj>-cc-w); rename coder->coder01/coderhelp->coder02/db->db01/db2->db02 via claude-mv per-project (agent-driven, not manual); build drift-normalizer script. whey+venus now, lezama later. |
backlog |
normal |
nw-whey-cc |
2026-06-04 14:50 |
| #623 |
llmmsg-srv |
gitmerge.sh diverged-branch newest-wins auto-adds untracked files, defeats gitpush --only strict-staging |
backlog |
normal |
bin-whey-cc |
2026-06-03 16:14 |
| #525 |
agent-ops |
Review evolutiva backup policy + space (2h/30d/gdrive, ~1.75GB steady-state; context: WI #509) |
backlog |
normal |
nw-whey-cc |
2026-06-03 04:06 |
| #602 |
pluto |
Prácticas rectificar + bidirectional comment/email-notification workflow (port/adapt from Mars) |
blocked |
normal |
evolutiva-pm-cc-w |
2026-06-01 22:02 |
| #593 |
llmmsg-srv |
/loop skill self-exports LLMMSG_AUTONOMOUS=1 on entry (so L1 hook branches correctly inside /loop) |
backlog |
normal |
pm-llmmsgsrv-cc |
2026-05-31 13:29 |
| #555 |
agent-ops |
bisync watchdog: alert when gdrive-bisync.service fails > 2 consecutive runs |
backlog |
normal |
bin-whey-cc |
2026-05-29 02:15 |
| #463 |
llmmsg-srv |
Next.js chat client to supersede chat-duo GTK + chat-duo-web (brainstorm item 4): node service on whey, Tailscale-only, native Pending tabs. Needs design brainstorm->spec->plan. |
backlog |
normal |
coder-chatduo-cc |
2026-05-26 08:37 |
| #554 |
agent-ops |
Fleet audit: every agent's cwd has local .agent-name matching registered name |
backlog |
normal |
bin-whey-cc |
2026-05-25 02:04 |
| #490 |
pluto |
Plan: paciente DNI + HC central store — autocomplete, dedup warning, estadísticas |
blocked |
normal |
— |
2026-05-25 02:04 |
| #529 |
llmmsg-srv |
chat-duo timestamp display drops date - stale msgs read as today |
backlog |
normal |
coder-chatduo-cc |
2026-05-23 18:07 |
| #527 |
agent-ops |
pull cc-memory-sweep.sh v1.2 (sh.git 20ce2fe) onto whey + lezama |
backlog |
normal |
bin-whey-cc |
2026-05-23 06:33 |
| #526 |
agent-ops |
memlint-cron.sh: replace email escalation with llmmsg DM to host maintainer (nw-{host}-cc) |
backlog |
normal |
bin-whey-cc |
2026-05-23 06:33 |
| #524 |
llmmsg-srv |
aro_config caller field unauthenticated - light-scope hardening |
backlog |
normal |
— |
2026-05-23 06:20 |
| #499 |
ayudarg |
Create dailyErrorDigest DB view for daily PM error review (aggregate logs table errors per day) |
backlog |
normal |
db-ayudarg-cc |
2026-05-22 06:11 |
| #497 |
ayudarg |
Plan beneficiary DNI storage/sharing — autocomplete-suggest, duplicate-DNI warning (same DNI registered under a different name), and statistics |
backlog |
normal |
pm-ayudarg-cc |
2026-05-22 06:11 |
| #480 |
agent-ops |
bwi git-sync dead since 2026-05-06: decide whey-only policy vs resume DB commits+pushes to GitHub; venus agents routing through whey meanwhile |
backlog |
normal |
— |
2026-05-22 05:30 |
| #467 |
agent-ops |
memory-lint compute_footprint over-walks CLAUDE.md chain - ignores claudeMdExcludes |
backlog |
normal |
bin-whey-cc |
2026-05-22 04:15 |
| #464 |
agent-ops |
cc-context efficiency report - read-only reporting layer on cc-context-metrics.sqlite (week/day/48h) |
backlog |
normal |
bin-whey-cc |
2026-05-22 03:40 |
| #443 |
agent-ops |
cc-context daily digest: delivery channel decision (thread 5) — A fold into 08:00 elazar-pending-digest / B standalone unit+hour / skip |
todo |
normal |
nw-whey-cc |
2026-05-21 12:48 |
| #447 |
agent-ops |
STRUCTURAL: /loop self-/compact over-cap workstream. Proven (Elazar 2026-05-21, ~28-30k ctx): a /loop session self-/compacts via ScheduleWakeup prompt /compact. Replaces cap->park->relaunch with cap->ss->self-/compact->continue. Gated on a ccs.sh launcher decision (ScheduleWakeup exists only in /loop-mode sessions) — needs Elazar GO. Separate from v2.7 over-cap path |
todo |
normal |
bin-whey-cc |
2026-05-21 07:12 |
| #438 |
llmmsg-srv |
cc-context-monitor compact half - wire host-side tmux send-keys auto-compact for idle over-cap sessions, after the one-session verification test |
backlog |
normal |
— |
2026-05-20 15:47 |
| #58 |
pluto |
CR 39: Crear una sección interna accesible para usuarios autenticados con manual de uso, SOP operativos y ayudas de carga/revisión. Debe poder crec |
blocked |
normal |
— |
2026-05-18 10:06 |
| #133 |
pluto |
/administrar/comisiones spreadsheet grid — Stage 4 editable comisión/day rows por período |
blocked |
normal |
— |
2026-05-18 10:06 |
| #420 |
ayudarg |
UX /personas/(id): agregar campo Comentarios/Notas debajo de Persona |
backlog |
normal |
— |
2026-05-18 08:39 |
| #419 |
ayudarg |
UX nav: pulldown muestra guión en círculo — reemplazar con ícono usuario + menú estándar |
backlog |
normal |
— |
2026-05-18 08:39 |
| #61 |
pluto |
CR 42: 3 docentes reales sin asignación a comisión: gonzalo.oviedo, lorena.salomone, cirugia1 (@odontologia.uba.ar). Necesitan ser asignados a comi |
blocked |
normal |
— |
2026-05-17 20:47 |
| #402 |
agent-ops |
memory-lint scope bug: gitpush pre-hook runs memory-lint.sh with no arg → scans ALL ~/.claude/projects/*/memory dirs → one project's memory hygiene blocks every other project's pushes. Cross-project DoS. Fix: scope to current-project memory dir only (resolve from PWD or .agent-name). Surfaced 2026-05-17 by coder-mars-cc-29923 blocked on llmmsg-srv-cc's dirty memory dir. |
backlog |
normal |
— |
2026-05-17 06:27 |
| #404 |
agent-ops |
└─ memory-lint A/B/D/E: gitpush-pre.sh per-project scope (arg, not glob) + non-blocking warn-only + drop §11 heading-dup from per-push + never touch CLAUDE.md. Mars+pluto+venus .gitpush-pre.sh mirror. Ratified by Elazar -30088. |
backlog |
high |
whey-nw-cc |
2026-05-17 06:40 |
| #398 |
llmmsg-srv |
hub-resident cross-project WI board: add cross_wi table + MCP wi_add/wi_close/wi_ls/wi_show/wi_event tools. Replaces per-host bwi for cross-project items (mars/pluto/venus/evolutiva). 3-PM consensus pm-mars-29395 / pluto-29405 / venus-29411; Elazar greenlight elazar-…-29506 Q2. Owner: llmmsg-srv-cc-w. |
backlog |
normal |
— |
2026-05-17 05:04 |
| #339 |
ayudarg |
GDPR erasure: fire-and-forget admin email is silent on failure — add error log + retry/queue so the hard-delete loop doesn't stall |
backlog |
normal |
— |
2026-05-12 15:24 |
| #338 |
ayudarg |
Localize Supabase password-reset email template (default English → Spanish + AyudArg branding) via Supabase dashboard |
backlog |
normal |
— |
2026-05-12 15:18 |
| #336 |
ayudarg |
Fix verify-deploy.sh: --format json + project-name positional incompatibility |
backlog |
normal |
— |
2026-05-12 14:47 |
| #331 |
ayudarg |
Vercel MCP token expired — auditor falling back to curl for deploy audit |
backlog |
normal |
— |
2026-05-12 13:47 |
| #317 |
ayudarg |
Server-side userId in createEventoOnExistingAccion (do not trust client payload) |
backlog |
normal |
— |
2026-05-11 18:36 |
| #311 |
ayudarg |
Aplicar diseño de Flor (diseñadora) |
backlog |
normal |
— |
2026-05-11 18:19 |
| #309 |
ayudarg |
Necesidad de salud: notificar admin de Brigada |
backlog |
normal |
— |
2026-05-11 18:19 |
| #308 |
ayudarg |
DNI obligatorio en preguntas |
backlog |
normal |
— |
2026-05-11 18:19 |
| #307 |
ayudarg |
Pregunta: ¿Hay algo que no puedas comer? |
backlog |
normal |
— |
2026-05-11 18:19 |
| #305 |
ayudarg |
Agregar necesidades a la acción al crearla |
backlog |
normal |
— |
2026-05-11 18:19 |
| #304 |
ayudarg |
Crear usuario a Flor |
backlog |
normal |
— |
2026-05-11 18:19 |
| #302 |
ayudarg |
Geolocalización del voluntario |
backlog |
normal |
— |
2026-05-11 18:19 |
| #301 |
ayudarg |
Recordatorio visita 24hs si no hay eventos |
backlog |
normal |
— |
2026-05-11 18:19 |
| #300 |
ayudarg |
Criterios cierre/apertura/alerta para eventos/acciones/necesidades |
backlog |
normal |
— |
2026-05-11 18:19 |
| #299 |
ayudarg |
Emails de alerta + todos criterios timers |
backlog |
normal |
— |
2026-05-11 18:19 |
| #298 |
ayudarg |
Bubble de notificación |
backlog |
normal |
— |
2026-05-11 18:19 |
| #297 |
ayudarg |
Íconos en mapa llevan a acción |
backlog |
normal |
— |
2026-05-11 18:19 |
| #296 |
ayudarg |
Recursero toggle mapa |
backlog |
normal |
— |
2026-05-11 18:19 |
| #295 |
ayudarg |
Bienvenido bring back |
backlog |
normal |
— |
2026-05-11 18:19 |
| #294 |
ayudarg |
Mapa: ver legales |
backlog |
normal |
— |
2026-05-11 18:19 |
| #293 |
ayudarg |
Enriquecer mapa: colores e íconos por acción/evento/necesidad |
backlog |
normal |
— |
2026-05-11 18:19 |
| #292 |
ayudarg |
Alta y reseteo de claves |
backlog |
normal |
— |
2026-05-11 18:19 |
| #174 |
evolutiva |
Vercel + Supabase optimization — reduce Fluid Active CPU bill creep, eliminate dashboard misconfig, lower latency |
backlog |
normal |
— |
2026-05-03 01:48 |
| #158 |
llmmsg-srv |
Brainstorm: connect lezama agents to whey's llmmsg-srv hub |
backlog |
normal |
— |
2026-05-02 03:38 |
| #7 |
mars |
CR-override-grade: adjunto/titular jumps in when JTP unavailable |
backlog |
normal |
— |
2026-04-30 11:12 |
| VENUS-20 |
venus |
bug(auth): seed scripts use raw admin.createUser → NULL-token login-lockout in seeded users |
backlog |
low |
— |
2026-06-16 18:43 |
| 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 |
| PLUTO-139 |
pluto |
DB-health sweep follow-ups (from PLUTO-138, non-urgent): (1) verify practicas.idx_practicas_editlocked query path — drop if genuinely cold; (2) confirm userAuditLogLegacy table is retired → archival candidate (table+idx); (3) FK-usage audit: of 64 advisor-flagged unindexed FKs, identify which appear in live WHERE/JOIN (hot) vs audit/write-path (createdBy/deletedBy/archivedBy — leave cold), index only the hot ones via migration w/ archive-context. Don't index/drop blindly — query-path verify first. |
backlog |
low |
coder-pluto-cc |
2026-06-16 02:39 |
| MARS-132 |
mars |
EXPLAIN ANALYZE teeth_agg practica report query (1661ms mean, /informes teeth aggregation) |
backlog |
low |
— |
2026-06-16 02:37 |
| VENUS-16 |
venus |
chore(db): index unindexed FKs on live query paths |
backlog |
low |
— |
2026-06-15 16:13 |
| 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 |
| MSG-50 |
llmmsg-srv |
dm-* send-authorization: reject non-owner/non-host-nw/non-Elazar sends to or origin_aro'd-as aro:dm-* |
backlog |
low |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #597 |
llmmsg-srv |
Hub cleanup traps (post-#594): systemd unit sets LLMMSG_SRV_DB but code reads LLMMSG_DB (no-op env var); stale llmmsg.sqlite + init-db.sh schema conflicts with live v2.sqlite |
backlog |
low |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| #596 |
llmmsg-srv |
Refresh venus /opt/llmmsg-srv flat copy from whey (hub.mjs+shim) - stale May-18 scp caused misdiagnosis; do NOT delete (venus MCP shim runs from it) |
backlog |
low |
coder-llmmsgsrv-cc |
2026-06-15 08:39 |
| MSG-47 |
llmmsg-srv |
MSG-30 lezama: coordinated full-tree pull-forward (shim v2.9.47 + bootstrap v1.19 + package.json, atomic) - replaces nw-lezama hand-patch, un-dirties staged v1.18 bootstrap |
backlog |
low |
pm-llmmsgsrv-cc |
2026-06-15 03:37 |
| 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 |
| MSG-43 |
llmmsg-srv |
Rationalize errscan-vs-applog overlap fleet-wide (both = error->PM-DM; applog covers all 3 proj+now green, errscan mars-only, mars DOUBLE-covered) - decide consolidate-not-expand; needs PM/Elazar division-of-labor call |
deferred |
low |
pm-llmmsgsrv-cc |
2026-06-14 15:04 |
| PLUTO-125 |
pluto |
Advisory (low pri): enable auth_leaked_password_protection (HaveIBeenPwned check) in Supabase auth — currently disabled. Low value for Pluto (allowlist-only, no open signup) but a free defense-in-depth toggle. From PLUTO-123 security sweep. |
backlog |
low |
— |
2026-06-14 06:44 |
| PLUTO-120 |
pluto |
Phase-2 demo cleanup (BLOCKED on demo-row purge): strip the now-unneeded demo filters/labels/tab once Elazar purges demo rows. These are PROTECTIVE while rows exist — removing earlier leaks demo data into real reports. Sites: admin/page.tsx:11 (@demo pendingUsers filter), informes/page.tsx:117-121 + practicas/page.tsx:139-142 ('Demo ' comision filter), admin-user-detail.tsx:68/127 + audit-log.tsx:122 (isDemo/demo_seed label map), complication-rate/dificultad-distribution/procedure-type cards '(no demo)' text, admin/usuarios 'Usuarios demo' tab. Coupled to PLUTO-118 phase-1 + the row purge. |
backlog |
low |
— |
2026-06-14 06:00 |
| PLUTO-113 |
pluto |
Dead-code removal: softDeletePeriodo + softDeleteComision (admin-actions.ts:443/534) are exports with ZERO callers; live paths are removePeriodo/removeComision. Remove the dead exports. |
backlog |
low |
— |
2026-06-14 05:25 |
| PLUTO-111 |
pluto |
Observability: log /api/image 401/403 auth-denials to appEvents (category auth/authz, level info) so denial-storms are diagnosable; route currently logs only proxy-failures, not the gate denials |
backlog |
low |
coder-pluto-cc |
2026-06-14 05:18 |
| 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 |
| PLUTO-103 |
pluto |
Hygiene: vPracticaParticipantFacts counts demo-practica-by-real-student in scoped teacher stats (pre-existing, surfaced during PLUTO-97 gate-A) |
backlog |
low |
— |
2026-06-14 03:30 |
| PLUTO-100 |
pluto |
D8 Tier-3: batch sequential per-row write loops (personas-actions:378/388 role add/remove) into set-based INSERT VALUES / UPDATE WHERE id=ANY ↳#98 |
backlog |
low |
— |
2026-06-14 03:20 |
| PLUTO-91 |
pluto |
PLUTO-89 fast-follow hardening: multi-pieza dup-guard is order-sensitive ('11,12' vs '12,11' evades tier-1 because piezas keep insertion order). Canonicalize the pieza set for the dedup KEY only (sorted), preserving as-entered display/storage order. Needs functional index or normalized key column |
backlog |
low |
— |
2026-06-13 10:57 |
| PLUTO-85 |
pluto |
public/formulario-practica.pdf rides unrelated commits — byte re-touch (identical size, no content change) re-touches in the push window, not present in pre-push git status. Recurring since PLUTO-77, again on PLUTO-84. Find what regenerates it (build step / file watcher) and either .gitignore it or normalize so it stops riding unrelated commits. Harmless but persistent noise. |
backlog |
low |
— |
2026-06-13 09:29 |
| EVO-3 |
evolutiva |
api-images: immediate-erasure endpoint (GDPR/right-to-erasure) — DELETE /{id}?purge=1 or /erase/{id} that skips _trash + unlinks immediately, tenant-scoped, audit-logged. |
backlog |
low |
coder-apiimages-cc |
2026-06-13 09:05 |
| EVO-2 |
evolutiva |
api-images: reconcile 67 orphan images in flat uploads/2026/ with no mars/pluto DB owner — decide trash vs reassign |
backlog |
low |
— |
2026-06-13 08:29 |
| BWI-9 |
basquetwi |
kpi-report.py digest-integration polish for kpi-weekly-report.sh: (1) add explicit --markdown flag alias (default stdout already md); (2) off-vocab line as count/total (e.g. 14/47) for the digest health metric. Section anchors ## 1/2/3 already grep-stable. |
backlog |
low |
db-basquetwi |
2026-06-13 02:50 |
| AYUD-10 |
ayudarg |
Regen schema.md (stale on personaEventPhotos line) — export-db.py blocked on venus (psycopg2 missing); run elsewhere or fix venv |
backlog |
low |
db-ayudarg-cc |
2026-06-12 10:18 |
| PLUTO-67 |
pluto |
fn_detectRateSpike cadence: every-2min cron is 91% of DB-time (frequency-driven, ~7.6s/day absolute) - weigh fraud-detection latency vs cost |
backlog |
low |
— |
2026-06-12 07:53 |
| PLUTO-66 |
pluto |
log-toast ingest: no server-side rate limit (anon-flood appEvents amplification) |
backlog |
low |
— |
2026-06-12 07:26 |
| 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 |
| PLUTO-65 |
pluto |
PLUTO-34 contract step: DROP flat columns on 7 archive tables after jsonb expand verified in prod (irreversible) |
backlog |
low |
— |
2026-06-12 07:12 |
| 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 |
| PLUTO-60 |
pluto |
Retire residual /login?error=no-profile UI path |
backlog |
low |
— |
2026-06-12 06:26 |
| PLUTO-59 |
pluto |
Convenience VIEW joining clientError.digest -> serverError.detail (full message+stack) for client-error diagnosis |
backlog |
low |
— |
2026-06-12 06:17 |
| PLUTO-58 |
pluto |
Table convergence: drop server page-size oddball 15 (->[10,25,50,100] fleet baseline); later adopt Mars-style column-config API over Pluto server stack |
backlog |
low |
— |
2026-06-12 06:09 |
| PLUTO-57 |
pluto |
UX: pre-filter practica list-row links by viewer scope so out-of-scope rows aren't clickable (avoids working-as-designed scope-deny on /practicas/[id]) |
backlog |
low |
— |
2026-06-12 06:08 |
| PLUTO-51 |
pluto |
Proxy viewport tooling: chrome-devtools-mcp (CDP) for Pluto needs an auth path — Pluto is OAuth-only |
backlog |
low |
— |
2026-06-12 04:21 |
| PLUTO-45 |
pluto |
KPI weekly-cron staleness alert: last-success-timestamp check that pages if no kpiCronReport appEvent in >8 days. Weekly crons (0 9 * * 1) can fail silently for ~7d before anyone notices (PLUTO-39 showed how easily a weekly gap reads as 'dead'). Defensive observability add, NOT a bugfix. Touches email/alert path → audit pre-push. |
backlog |
low |
— |
2026-06-12 03:17 |
| PLUTO-41 |
pluto |
Migrate all touch primitives (Button/Select/Input) to uniform pointer-coarse:min-h-11 for 44px touch targets — replaces the 3-way convention (Button h-11 sm:h-9 / Select flat h-11 / Input sm:-gated); keys on input modality not viewport so a narrowed desktop window stays 36px. Ref Venus impl. Do AFTER PLUTO-40 lands. |
backlog |
low |
— |
2026-06-12 01:39 |
| PLUTO-36 |
pluto |
Pluto P3: canonicalizeEmail JS/DB parity edge — JS lastIndexOf('@') vs DB SPLIT_PART first-'@'; diverge only on malformed multi-@ input (dedup-parity, not dot-strip). Align the @-split semantics. |
backlog |
low |
— |
2026-06-10 13:16 |
| PLUTO-32 |
pluto |
Pluto P3 residual: bulkInviteUsers welcome-email loop bypasses the /send-email HTTP rate limiter (PLUTO-20) — uncapped in-process sends on bulk invite. Decide cap (e.g. 100/batch or inter-send delay) vs accept (admin-initiated, low-freq, in-process-mail-undroppable per PLUTO-20 design). From audit round-1. |
backlog |
low |
— |
2026-06-10 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 |
| PLUTO-31 |
pluto |
Pluto P3: cold audit FK cols (createdBy/updatedBy) unindexed — defer to post-go-live advisor run |
backlog |
low |
— |
2026-06-10 05:12 |
| PLUTO-30 |
pluto |
Pluto P3: periodos.isCurrent no uniqueness constraint — two isCurrent=true rows possible |
backlog |
low |
— |
2026-06-10 05:12 |
| PLUTO-29 |
pluto |
Pluto P3: vPracticas* views don't filter isDemo — demo inflates grader stats (fix at vPracticas base) |
backlog |
low |
— |
2026-06-10 05:12 |
| PLUTO-28 |
pluto |
Pluto P3: denyAccess UUID-in-URL + deny-vs-404 — practica-existence probe |
backlog |
low |
— |
2026-06-10 05:12 |
| PLUTO-27 |
pluto |
Pluto P3: getCurrentPeriodoId + getComisionesForCurrentPeriodo no auth guard — comision enumeration |
backlog |
low |
— |
2026-06-10 05:12 |
| MSG-26 |
llmmsg-srv |
llmmsg-kpi-report.sh: strip dead -small ARO branch from §PM .aro action list (lanes retired MSG-17) |
backlog |
low |
pm-llmmsgsrv-cc |
2026-06-10 04:04 |
| ADRIANAP-9 |
adriana-pavon |
Recuperación de Correos Históricos (condicional: requiere localizar la computadora) |
blocked |
low |
— |
2026-06-09 04:24 |
| ADRIANAP-13 |
adriana-pavon |
└─ Generar informe de volumen y fechas de correos recuperados |
backlog |
low |
— |
2026-06-09 04:24 |
| ADRIANAP-12 |
adriana-pavon |
└─ Importar mensajes recuperados a cuenta activa actual via IMAP |
backlog |
low |
— |
2026-06-09 04:24 |
| ADRIANAP-11 |
adriana-pavon |
└─ Extraer almacén local de correos — Apple Mail: ~/Library/Mail/, o .pst si era Outlook |
backlog |
low |
— |
2026-06-09 04:24 |
| ADRIANAP-10 |
adriana-pavon |
└─ Evaluar estado del equipo y del disco (¿bootea? ¿disco legible?) |
backlog |
low |
— |
2026-06-09 04:24 |
| MARS-67 |
mars |
Index cold FK columns deferred from advisor sweep |
backlog |
low |
— |
2026-06-09 02:53 |
| BWI-7 |
basquetwi |
Migrate bwi PG + wi-http from whey to venus |
deferred |
low |
— |
2026-06-09 02:51 |
| 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 |
| ONEDB-13 |
one-db |
cc-context-monitor v3.0 M1 sys.exit(1) aborts MANUAL venus/lezama runs before pg-mirror write when CCM_HUB_URL=127.0.0.1 default. Unattended unaffected (service unit exports LLMMSG_HUB_URL ZT/tunnel). Fix post-ONEDB-12: document manual-run env requirement (export LLMMSG_HUB_URL) over per-host CCM_HUB_URL remap. Bump VERSION. |
backlog |
low |
— |
2026-06-06 20:04 |
| 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 |
| #647 |
llmmsg-srv |
.llmmsg-aros cleanup: remove 16 repo-tracked copies in pensanta website repos (#631 tail) ↳#631 |
backlog |
low |
nw-venus-cc |
2026-06-05 04:38 |
| #638 |
basquetwi |
Switch bwi bind + BWI_PUBLIC_BASE from ZT IP 172.27.178.27:8042 back to bwi.pensanta.com:8042 once DNS propagates (relates #636) |
deferred |
low |
— |
2026-06-05 03:39 |
| #502 |
mars |
Enable pg_cron + daily errorDigestSnapshots table so error trends survive appEvents pruning (WI#390) |
backlog |
low |
— |
2026-05-22 06:12 |
| #498 |
ayudarg |
Add LLM-copy block to not-found.tsx — cross-app 404 spec parity (venus/mars/pluto WI#486/#487) |
backlog |
low |
coder-ayudarg-cc |
2026-05-22 06:11 |
| #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 |
| #465 |
llmmsg-srv |
Document to=pm:X send target + hub PM election/pending-queue in README.md protocol section (shipped in 5741b17, README not yet updated) |
backlog |
low |
llmmsg-srv-cc |
2026-05-22 03:53 |
| #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 |
| #423 |
ayudarg |
Tooling: playwright auth setup para screenshot regression (blocked en #119 — Chrome Wayland + cookies cifradas) |
backlog |
low |
— |
2026-05-18 09:02 |
| #119 |
pluto |
User contact profile split — userProfile 1:1 table para campos opcionales |
blocked |
low |
— |
2026-05-18 08:48 |
| #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 |
| #328 |
ayudarg |
Recursos: derive comuna options from cards with data (parallel to needOptions) — avoid empty-state on no-data comunas |
backlog |
low |
— |
2026-05-12 02:59 |
| #319 |
ayudarg |
Replace prioridad=87 magic number with named constant |
backlog |
low |
— |
2026-05-11 18:36 |
| #318 |
ayudarg |
a11y: htmlFor/id on Otra + Notas inputs in /acciones/nueva + /necesidades/nueva |
backlog |
low |
— |
2026-05-11 18:36 |
| #310 |
ayudarg |
Estadísticas: edad voluntarios/asistidos, género, necesidades cubiertas |
backlog |
low |
— |
2026-05-11 18:19 |
| #241 |
mars |
Cátedra branding sweep p3: URL slug strategy |
backlog |
low |
— |
2026-05-08 07:21 |
| #8 |
mars |
CR-7 comisionChangeRequests |
backlog |
low |
— |
2026-04-30 11:12 |
| #9 |
mars |
CR-8 informes/calificaciones |
backlog |
low |
— |
2026-04-30 11:12 |
| #312 |
ayudarg |
Callejero |
backlog |
someday |
— |
2026-05-31 21:47 |
| #372 |
pluto |
DEFERRED: extract userDocumentoReview workflow table from users.documento* cols if documento approval flow grows. Workflow entity with natural FK, not generic profile split. Counter to WI#119 verdict. |
backlog |
someday |
— |
2026-05-15 07:20 |
| #314 |
ayudarg |
Alertas por email |
backlog |
someday |
— |
2026-05-11 18:19 |
| #313 |
ayudarg |
Beneficiarios |
backlog |
someday |
— |
2026-05-11 18:19 |
| #100 |
pluto |
Análisis estadístico — rol researcher dedicado + acceso a datos anonimizados |
backlog |
someday |
— |
2026-05-01 01:56 |