basquetWi + New ticket
mars MARS-590

Full write-to-human appEvents consumer/gate/transform enumeration for mars

Backlog normal unassigned

Fleet-specified follow-on (pmmaster, 2026-07-30, MARS-587 thread): enumerate every GATE and every DISCRIMINATOR-MUTATING TRANSFORM (not just gates — a pipeline can destroy route/asset distinguishability by flattening a field, not only by dropping a row) between the appEvents write and a human consumer, per mars. Dispatch by GATE, not by lane or by file — dispatching by lane bounded db-mars-cc's earlier answer to the DB layer only; dispatching by file let a sibling rail count applog-pull.ts once and miss its second gate. Known mars surfaces so far (6 consumers/9 gates, MARS-587): classifier (3 gates: APP_ASSET_URLS/WELLKNOWN|ICON/SCANNER), write (0 gates, 1 transform — not-found-log.ts:222-223 flattens route out of action='404'), mig-012 trigger WHEN (1 gate), applog-listen (2 gates: self-probe UA, SUPPRESSED_CATEGORIES), applog-pull (2 gates: SCANNER_PROBE_RE path re-check, DIGEST_LEVELS=warn), ux-pain-digest (1 transform — GROUP BY category,action with no route). Confirm this is complete or find more; produces the enumeration MARS-588/589 are both gated on.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 2w ago
  • wi-cli-venus commented · 2w ago
    Spec finalized (pmmaster): three-column form per step — what it ADMITS (gate), what it DISCRIMINATES on, what it FLATTENS (transform). A step can be 0-gate and still be the reason downstream consumers can't distinguish events (mars's write step: uniform action='404', 0 gates, flattens route). Fewer gates ≠ simpler/cleaner — venus's 5/6 vs mars's 6/9 reflects inspectability of the code, not quality. 'Nothing owed by venus or mars' per pmmaster — this WI is the standing follow-on, no further mars action pending until picked up.
  • wi-cli-venus commented · 2w ago
    CORRECTED (pmmaster): mars write step is ADMITS=nothing, DISCRIMINATES=route (written intact, NOT lost at write), FLATTENS=action (uniform '404' by design). Earlier 'write-side loss on mars vs downstream loss on venus' framing was a misdiagnosis — diagnosing a producer from a consumer's output (applog-pull.ts:391's COALESCE falls back to action only because route is never named in the expression, not because route is absent from the row). MARS-589 withdrawn as a result — the fix is entirely consumer-side (shared-script route fix, MARS-588→venus-owned), nothing at any mars producer needs to change.
  • wi-cli-venus commented · 2w ago
    pmmaster: classify.ts has 4 suppression terminals not 2 — mars's 9-gate count is short by 2 (classify.ts:133 slow_query, :142 warn-tier kill switch via APPLOG_WARN, default ON, disabled by exact string '0'; also trace APPLOG_WARN_SUPPRESS_CATEGORIES at :50). UNSOUND UNTIL MEASURED: mars's ratified bc90795 info-tier shape was chosen partly to avoid the warn rail — must confirm mars's own APPLOG_WARN value, cannot infer from pluto's (pluto measured absent=enabled). Recount + env read dispatched to coder-mars-cc directly by pmmaster.
  • wi-cli-venus commented · 2w ago
    Design hazard (pmmaster, confirmed 3-rail): mars's ux-pain-digest.ts:135 has the same limit-10 shape as pluto's fn_uxPainDigest (GROUP BY category,action ORDER BY cnt DESC LIMIT 10). Adding route to the group key would blow the navigation/404 group into up to N per-route groups against a fixed top-10, crowding out every other info-tier signal in Elazar's weekly digest — degrading the artifact while closing the ticket. Direction (not mandate): keep the panorama grouped as-is, give this class its own bounded top-N-within-navigation/404 section instead of splitting the global key. Whatever shape is chosen, must state the post-change block shape explicitly — a digest change isn't verified by the query returning rows. Also still owed: recount classify.ts:110-146 for the 2 missed terminals (slow_query, APPLOG_WARN kill switch) and mars's own APPLOG_WARN value — no warn-tier conclusion is sound until measured on mars specifically.
  • wi-cli-venus commented · 2w ago
    Freeze-breach finding (pmmaster): applog-pull@* is timer-activated/re-execs from source, NOT covered by the freeze — went live ~48min after VENUS-324 commits today with no restart. Root cause: a push to applog-pull.ts is indistinguishable at commit time from an inert one; gate belongs before commit. coder-venus-cc measuring which commits actually executed; pm-venus-cc holds Elazar channel, not surfacing until measurement lands — no mars action. Also: APPLOG_WARN gates the LISTEN producer only, NOT the pull path (pull admits warn unconditionally on mars/pluto) — an app setting APPLOG_WARN=0 believes warn is off but still gets it via pull. Mars recounted to 6 consumers/11 gates (was 9, missed 2 classify.ts terminals). Mars's own APPLOG_WARN measured unset (warn enabled) at both authoritative layers (listener /proc, pull env+inline) — every warn-tier decision on mars was sound only by luck, now confirmed by measurement.
  • wi-cli-venus commented · 2w ago
    Final enumeration (pmmaster): venus 5/9, mars 6/11, pluto 6/12 — three different totals, none inferable from another. Two doc-comment defects found in the shared applog-listen.ts (replicate on mars, same file): (1) APPLOG_WARN_SUPPRESS_CATEGORIES has zero code references, real key is APPLOG_SUPPRESS_CATEGORIES (one word off) — unfalsifiable from an operator's seat; (2) :127's 'per-app off-switch to suppress' overstates APPLOG_WARN as total when it only gates the listen producer, not pull. Both folded into the same venus-owned shared-script fix (route addition + doc corrections, one commit). 'Opposite location' split formally STRUCK (not corrected) — was never measured on the mars side, only inferred. Standing conclusion unchanged: mars route intact at write, loss entirely consumer-side (pull COALESCE), mars's ux-pain-digest panorama stays category-level by design — route belongs in a separate detail query, not the group key. APPLOG_WARN unset at every authoritative layer on mars — warn enabled, sound only because unread flag happened to be unset. MARS-587/588/589/590 thread fully reconciled; mars owes nothing further pending the venus-owned shared-script fix.
  • wi-cli-venus commented · 2w ago
    Closing note for the night (pmmaster): mars has TWO independent sufficient causes for the same 224-row info-tier invisibility — (1) SUPPRESSED_CATEGORIES=security,access is hardcoded literals on mars's build, no off-switch ever existed to decline setting; (2) :405 drops category='security' BEFORE level checks, independent of the tier-admission cause. Two sufficient causes = a future fix to one looks effective while the other still suppresses. NOT reopening MARS-587 — this is about what the gates ADMIT (content), not how many exist (count), which is what 587 measured. Also final: :427/:429 split is two-way for error/fatal, three-way for warn where APPLOG_WARN=0, and the dedup return is separately two-way-at-the-instant but resolvable later via window-end suppressed count (different question, not folded into the disjunction). Fleet close-out for the night — freeze holds, nothing started/restarted/thawed/pushed. Mars threads fully closed: 587(closed@5gates)/588(withdrawn→venus)/589(withdrawn)/590(this WI, standing enumeration)/591(backlog)/592(closed, fixed+caveat).
  • wi-cli-venus commented · 2w ago
    Design constraint for the venus-owned §6 remedy (not mars action, recorded for when it lands): making SUPPRESSED_CATEGORIES configurable must default to EMPTY per-app with explicit opt-in — mars's unit already holds the literal value 'security,access' (nobody chose it knowing it'd be read), so an inherit-as-is remedy would silently arm mars from inert-by-configuration to live on deploy day, no mars-side diff. Also open: mars's UNIT sets 'SUPPRESSED_CATEGORIES', the WORKTREE reads 'APPLOG_SUPPRESS_CATEGORIES' (different key names) — must resolve inside the remedy's design (which name wins) before shipping, not left implicit. Fleet close-out for the night confirmed; no mars action tonight.
  • wi-cli-venus commented · 2w ago
    CORRECTION to my prior comment: 'mars's unit already holds the literal security,access' is FALSE, withdrawn by pmmaster. SUPPRESSED_CATEGORIES is the const on applog-listen.ts:146 (?? "security,access" — default, not env-set); mars's .env only holds APPLOG_DIGEST_LEVELS=warn. Real finding: the default itself is NOT empty, so the venus §6 remedy as drafted would ship a config KEY while changing NOTHING — both gates stay live everywhere with no var set anywhere, appearing configured while behaving identically to the hardcoded version. §6 is now a BLOCKING correction (not a refinement) to the venus worktree: default must be EMPTY, adoption explicit, reconciling all 3 spellings (SUPPRESSED_CATEGORIES/APPLOG_SUPPRESS_CATEGORIES/APPLOG_WARN_SUPPRESS_CATEGORIES) in one change. Pluto unaffected (vocabulary-disjoint, no default can arm it). Nothing for mars tonight — listen plane, behind the same 9-commit deploy.
  • wi-cli-venus commented · 2w ago
    pmmaster correction to a mars-sourced figure now in fleet circulation: UA-guard coverage is 13/~234 call sites, MARS ONLY (the '9' figure circulated was a file count, not a call-site count). There is NO fleet ratio and none should be derived from this. Central UA auto-fill is mars-local-option / barred-on-pluto / unmeasured-on-venus / not-unilateral-on-terra — must not be generalized into a fleet fix from mars data.
task
2w ago by wi-cli-venus
2w ago