feat: cast init interactive menu + dashboard parse-error fix#4
Merged
shenxianpeng merged 2 commits intomainfrom Mar 28, 2026
Merged
feat: cast init interactive menu + dashboard parse-error fix#4shenxianpeng merged 2 commits intomainfrom
shenxianpeng merged 2 commits intomainfrom
Conversation
cast init: show a numbered type-selection menu when project detection fails in a TTY environment; non-TTY/CI keeps the existing exit-1 behavior. Dashboard: parse_sarif() now returns an ERROR dict instead of None on JSON/IO failure. ERROR rows are rendered in the table with an amber PARSE ERR badge and the error message. The compliance banner shows PARSE ERRORS instead of ALL CLEAR when unresolved parse failures exist. Updated tests to match new behavior (65 passing). https://claude.ai/code/session_01PovvcUbam7c1xDTrEPRhT7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cast initinteractive type selection: when project type detection fails in a TTY, show a numbered menu instead of exiting. Non-TTY/CI keeps the existing exit-1 behavior.parse_sarif()now returns an ERROR dict instead ofNoneon JSON/IO failure. Failed files show as a visible PARSE ERR row (amber) in the dashboard table. The compliance banner shows PARSE ERRORS instead of the misleading ALL CLEAR when unresolved parse failures exist.Changes
src/cast_cli/main.pyimport sys,_prompt_type_selection()helper, TTY-aware branch ininitdashboard/generate.pyparse_sarif()returns error dict;generate_dashboard()includes error rows;render_badge/render_table/render_compliance_bannerhandleERRORstatusdashboard/template.html--error-row-bg,.row-error,.badge.error,.parse-error-msg,.compliance-banner.has-parse-errorstests/test_dashboard.pyTest plan
pytest tests/ -v)cast initin a TTY with no project markers shows numbered menucast initin CI (non-TTY) with no project markers exits 1 with instructionscast init --type gostill works as beforehttps://claude.ai/code/session_01PovvcUbam7c1xDTrEPRhT7