Skip to content

fix(formatters): render umbrella envelope in markdown + ai (closes #306) - #308

Merged
Wolfvin merged 1 commit into
mainfrom
fix/issue-306-umbrella-markdown
Jul 17, 2026
Merged

fix(formatters): render umbrella envelope in markdown + ai (closes #306)#308
Wolfvin merged 1 commit into
mainfrom
fix/issue-306-umbrella-markdown

Conversation

@Wolfvin

@Wolfvin Wolfvin commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Closes #306.

Masalah

Sejak konsolidasi #195, umbrella membungkus output sub-check dalam {s, st, r:[...]}. Formatter markdown + ai tak pernah paham shape itu → setiap umbrella render kosong: --format markdown cetak "Symbol not found", --format ai kembalikan items:[]. Lebih luas dari yang difile — semua umbrella, bukan cuma context.

Fix

Akar masalahnya unwrap yang hilang, bukan handler yang salah — tiap sub-result sudah membawa _check yang memetakan ke renderer command yang tepat. Deteksi envelope, rekursi per sub-result: dead-code → _md_dead_code, circular → _md_circular, dst — reuse semua handler yang ada. Unwrap serupa untuk ai (merge items, namespace stats per check).

Tambahan: _md_tags (render tag-audit terbaca manusia), flows sebagai sumber item ai, dan summary→stats last-resort supaya sub-check yang bawa summary datar (tags, diff) mengisi stats ai.

Verifikasi (dijalankan)

  • 6 umbrella render markdown non-kosong: deps circular → "Circular Dependencies", audit dead-code → "Dead Code Analysis", security secrets → "Secrets Scan", impact diff → "Registry Diff", context tags → flow inventory penuh, context overview → generic (bukan lagi "Symbol not found").
  • scan (non-umbrella) tak regres → "Scan Result".
  • tags markdown: daftar 22 flow + lokasi + untagged. tags ai: 22 flow items + summary stats.
  • 8 test baru (tests/test_umbrella_formats.py): envelope→konten, dispatch sub ke handler-nya, envelope kosong tak crash, non-umbrella tak regres.
  • Suite formatter 54 lolos; full suite 19 gagal = 19 di main — nol regresi.

Ini membuat output context --check tags (fitur #307) terbaca manusia — arahan langsung Wolfvin.

🤖 Generated with Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Since the #195 consolidation, umbrella commands wrap sub-check output in
{s, st, r:[...]}. The markdown and ai formatters never learned that shape,
so every umbrella sub-check rendered empty: `context --check X --format
markdown` printed "Symbol not found", and `--format ai` returned an empty
items list. Affected all umbrellas, not just context.

Root cause is a missing unwrap, not wrong handlers: each sub-result already
carries `_check`, which maps to the correct per-command renderer. Detect the
envelope and recurse per sub-result — dead-code reaches _md_dead_code,
circular reaches _md_circular, etc, reusing every existing handler. Same
unwrap for ai (merge items, namespace stats per check).

Adds _md_tags for the new tag-audit sub-check, `flows` as an ai item source,
and a last-resort summary->stats mapping so sub-checks carrying a flat
`summary` (tags, diff) populate ai stats.

Verified: all six umbrellas render non-empty markdown; scan (non-umbrella)
unchanged; tags markdown lists flows + untagged; tags ai carries 22 flow
items + summary stats. Full suite 19 failures = 19 on main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Wolfvin
Wolfvin merged commit aea4d07 into main Jul 17, 2026
1 of 7 checks passed
@Wolfvin
Wolfvin deleted the fix/issue-306-umbrella-markdown branch July 17, 2026 15:41
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(formatters): context umbrella renders empty in markdown + ai formats — envelope {s,st,r} not understood

1 participant