Spaces:
Sleeping
Sleeping
Commit History
-
Fix chatbot bubble CSS: use correct Gradio 6 DOM selectors
In Gradio 6, .chatbot is on the inner prose element inside message bubbles, NOT on the outer container. The old selectors like .chatbot .bot required .bot to be a DESCENDANT of .chatbot, but the actual DOM has .bot as an ANCESTOR - so no rule ever matched. Replace with :root .message-wrap .bot / .user which correctly targets the bubble divs, plus :root .bubble-wrap for the scroll container. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>3dc3729
-
Fix chatbot bubble visibility for Gradio 6
Gradio 6 places .bot and .user classes directly on the bubble wrapper div, not as .message.bot / .message.user combos. Old selectors never matched, leaving Gradio's default light-coloured bubble backgrounds in place. New selectors cover both the class-based (.bot/.user) and attribute-based ([data-testid]) patterns used across Gradio 6 versions. User bubbles get a subtle green tint; bot bubbles get the dark surface-alt colour. All child elements including prose and p tags are forced to pc-text colour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>cffdb58 -
Fix risk register text: add !important to all color rules
app.py has broad .gradio-container CSS rules with !important that cascade into gr.HTML content and override text colors set without !important. Adding !important to all color declarations in _ADAPTIVE_STYLE ensures description, mitigation, phase tags, and badge labels are always readable. Backgrounds remain as CSS variables (working correctly). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>2549c59 -
Fix categorical y-axis labels: add axislayer and yaxis selectors
Horizontal bar charts render categorical y-axis labels (phase names) as direct <text> children of yaxislayer-above — NOT wrapped in ytick groups. So [class*=tick] only reached the date x-axis (numeric/date axis uses tick groups) but silently skipped the y-axis phase names. New selectors: [class*=axislayer] catches both xaxislayer-above and yaxislayer-above; [class*=yaxis] covers any other yaxis variant. Added :root prefix to all selectors for 0,3,1 specificity, beating any conflicting Gradio theme rules at 0,2,1. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>ca77345 -
Fix chart labels, zoom buttons, and risk register theming
CSS: Replace broad low-specificity .js-plotly-plot text selector with [class*=tick] attribute selector (specificity 0,2,1) — matches the same level that made zoom buttons work, and catches the tick class name regardless of exact Plotly.js naming. Restore updatemenu-container rule explicitly. Python: Add color= to both axes in gantt and heatmap as a second-layer guarantee alongside tickfont.color. Risk register: Replace @media (prefers-color-scheme: light) block with CSS custom properties (var(--pc-surface), var(--pc-text) etc.) so the register matches the Gradio theme rather than the OS colour scheme — fixes white summary bar appearing on light-mode OS with dark Gradio app. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>fd5126a -
Broaden Plotly CSS to top-level selector; fix active tab background
- Replace targeted .ytick/.xtick selectors with .js-plotly-plot text/tspan — intermediate class selectors were unreliable; top-level ancestor selector confirmed working (same pattern as the zoom buttons fix) - Active tab: add background: var(--pc-surface-alt) so green text stays readable instead of washing out against Gradio white tab background Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>c137367 -
Fix Plotly CSS selectors: drop .plotly intermediate class, add tspan coverage
The .plotly intermediate class may not exist in Gradio's rendered DOM, causing the previous fill rules to never match. Also added tspan targeting since Plotly wraps label text in <tspan> elements. Covers y/x ticks, updatemenu buttons, and axis titles. Light-mode overrides updated to match same structure. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>d346494 -
Fix Plotly tick CSS: target only tick labels, use hard-coded color
Using CSS variable in SVG fill context is unreliable; blanket text selector would also override intentional annotation colors (e.g. green Today label). Now only .ytick/.xtick text elements are forced to #e8e8e8. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>7c87851 -
Fix chart text visibility and tab label sizing
- Add template=plotly_dark to all Plotly figures so base text defaults to white instead of Plotly's grey default overriding our explicit colors - Make Gantt zoom buttons (Year/Quarter/Month/Week) visible: darker opaque background and a readable border instead of near-invisible defaults - CSS: inactive Gradio tab labels now use full text color (#e8e8e8) instead of muted grey, bumped to 15px/600 weight for legibility - CSS: add Plotly SVG text rule to keep fill bright via CSS variable Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>e4dedbc -
Improve chart text legibility: brighter colours and larger fonts
- Replace silver_muted (#a0a0a0) with silver (#e8e8e8) for all axis tick labels - Increase font sizes from 11-12px to 13-14px across Gantt, heatmap, and risk views Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>bf727d4
-
docs: add CLAUDE.md with architecture, commands, and QA agent requirement
9388a2c -
fix: Gradio 6 compat — css to launch(), plot height via CSS elem_classes
73a58e4 -
fix: 2x plot height, hide Plot/Chatbot labels, green bold headers
149c0c9 -
fix: grass-green borders, remove file box (DownloadButton), fix button text visibility
60767c5 -
fix: reduce refine plan chatbot height from 300 to 160px
b749002 -
fix: light/dark mode UI compatibility across charts and risk panel
Replace hardcoded dark colours with transparent backgrounds in Gantt, heatmap, and RACI charts; add CSS-class-based adaptive styles to the risk register; expand global CSS to cover labels, dropdowns, chatbot, Plotly tick text, and banner-warning colours in light mode.5af4cda
-
UI colour fix
c88fc40
-
simplify: single Export XLSX button replaces accordion with PNG/PDF options
232b3d8 -
fix: replace Gantt image embed (needs Chrome) with styled phase data table in XLSX
7ba53b0 -
remove: PDF export option - keep only PNG and XLSX
9ebf795 -
feat: XLSX now includes Gantt chart image sheet; export moved above refine panel; add pillow dep
7701723 -
feat: add PNG export button with Gantt/RACI/Workload file slots
0e42543
-
feat: add PDF and XLSX export buttons wired to export handlers
cebc3e5 -
fix: refine chat error check uses result.get('error') not 'error' in result - prevents None content in chatbot
3f39ce9 -
feat: Gantt week labels use ISO week-of-year (W20, W21...) instead of project-relative W1, W2
7c0c389 -
fix: full-project range for all Gantt zoom levels, Q1/Q2 quarterly labels, risks debug count
877473c -
feat: Week view shows W1 W2 W3 labels using tickvals/ticktext arrays
141fdf5 -
feat: Gantt zoom buttons Year/Quarter/Month/Week with adaptive x-axis labels
6f08482 -
feat: add Year/Quarter/Month/Week/Day zoom controls and range slider to Gantt chart
ca102bf -
feat: use user-selected team colors in Gantt chart
43a0b8a -
fix: coherence check is advisory only - never blocks valid inputs from generating
e495acd -
debug: print at top of on_generate and orchestrator; disable SSR mode
cbbdc13 -
debug: print full traceback in orchestrator; fix error check to use plan is None
123bba7 -
debug: log orchestrator result and plan_data in on_generate
accbd2c -
debug: log chart render success/failure in on_generate
587f335 -
fix: consistent fence stripping and json-repair in date_agent and validate_agent
3a148fe -
fix: apply json-repair and consistent fence stripping to risk_agent
5bc9790 -
remove: version history and share plan sections from UI
96a32e3 -
fix: full codebase audit - 18 bugs fixed across 9 files
386a178 -
fix: chatbot dict format, heatmap natural week sort, refine max_tokens 8192
be04e27 -
fix: use json-repair to handle unescaped quotes and malformed JSON from LLM
3862dea -
fix: increase max_tokens to 8192 and request minified JSON to prevent truncation
c10ebf0 -
debug: log raw AI response and parse errors in parse_plan_json
7ba7c79 -
fix: strip full opening fence line in parse_plan_json to remove language identifier
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>f07628a -
Fix: risks JSON parsing, RACI combined roles, VIBGYOR heatmap, Gantt bar width
f39699c -
Fix: correct field names and model construction in all four views
8db3604 -
Fix: check result error value not just key presence
53105f0 -
Fix: extract team name from dict before joining team list
464afb0 -
Fix: DateResult is a Pydantic model, not a dict — use attribute access
Replace .get() calls with direct attribute access on DateResult. _merge_dates_into_plan handles both dict and Pydantic object defensively. Serialize date_result to dict in return payload. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>e52795a -
Fix: detect_date_mode uses 'start'/'end' not 'start_date'/'end_date'
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>7265217