Skip to content

Continuous enhancement: dashboard context contract - #3

Open
ryun6249 wants to merge 1 commit into
automation/continuous-enhancement-20260519-1103from
automation/continuous-enhancement-20260519-1203
Open

Continuous enhancement: dashboard context contract#3
ryun6249 wants to merge 1 commit into
automation/continuous-enhancement-20260519-1103from
automation/continuous-enhancement-20260519-1203

Conversation

@ryun6249

Copy link
Copy Markdown
Owner

Continuous Enhancement Report

1. Current Status

  • Project purpose: FastAPI-served local financial research workstation for market, macro, Quant Lab, Quantamental, ML Forecast, AI Portfolio, and grounded AI briefing workflows.
  • Existing structure preserved: static /ui/ shell, FastAPI routers, domain modules, runtime-checked model selector, All-default dashboard view, and top-right quality summary remain intact.
  • Main issues found: /api/v1/dashboard/decision-cards was referenced by the UI but returned 404; dynamic JS Korean copy was not covered by the mojibake contract; clean stacked branch still lacks the broader Quantamental router/service implementation.

2. Changes Made

Compatibility

  • Added server-backed /api/v1/dashboard/decision-cards contract without changing existing dashboard, strategy, trading/order, secret, or model routes.

Data Consistency

  • Dashboard context cards now declare advisory-only purpose, primary output, and tab-level data/guardrail context for all six dashboard tabs.

UI/UX

  • Dashboard context strip now receives dashboard_decision_cards.v1 instead of silently falling back after 404.

Visualization

  • No chart renderer or chart math changed; desktop/mobile screenshots were captured against /ui/?range=1Y#quantamental.

AI Briefing

  • Quantamental AI panel fixture now blocks broad mojibake/replacement-character and placeholder output while preserving used-data and guardrail section checks.

Translation

  • scripts/check_ui_contract.py now scans app.js and domain UI modules for dynamic-copy mojibake, not only static HTML.

Performance

  • Decision cards are static contract metadata; no provider fetch, polling loop, heavy calculation, or LLM call was added.

Tests / Validation

  • Added dashboard API coverage and dynamic UI copy contract coverage.

3. Changed Files

File Change Reason
app/api/routers/dashboard.py Added decision-card contract helper and route Stop UI 404 and make tab purpose/context explicit
scripts/check_ui_contract.py Added dynamic JS/module mojibake scan Guard runtime UI/translation copy
tests/test_dashboard_api.py Added all-tab decision-card route test Lock API contract
tests/test_ui_routing_contract.py Added dynamic UI copy mojibake test Lock translation quality guard
tests/test_quantamental_ui_ai_panel.py Strengthened Korean AI panel mojibake/placeholder assertion Guard AI briefing output quality
docs/CONTINUOUS_ENHANCEMENT_LOG.md Added 12:03 analysis, changes, validation, blocker notes Automation continuity

4. Validation Results

Check Command / Tool Result Notes
Lint git diff --check -- ... Passed Only CRLF normalization warnings
Build Not run Excluded No repo-level package.json or pnpm-lock.yaml
Test python -m pytest tests/test_dashboard_api.py tests/test_api_routing_contract.py tests/test_ui_routing_contract.py tests/test_quantamental_ui_ai_panel.py tests/test_ui_modules.py -q Passed 68 passed, 4 subtests passed
UI validation Playwright screenshots + DOM check at 1440/390 widths Passed panelView=all, no mobile horizontal overflow, dashboard_decision_cards.v1 visible
Data validation GET /api/v1/dashboard/decision-cards Passed 200, 6 tabs covered
AI briefing validation tests/test_quantamental_ui_ai_panel.py Passed Used-data and guardrail sections preserved
Full Quantamental API regression python -m pytest tests/test_quantamental_api.py -q Blocked Existing clean-branch blocker: missing pipelines.quantamental.service
AI Portfolio smoke python scripts/ai_portfolio_ui_smoke.py --base-url http://127.0.0.1:8408 --timeout-s 120 ... Blocked Decision-card 404 fixed; still blocked on missing /api/v1/quantamental/* routes in this clean branch

5. Remaining Risks

  • This PR is stacked on automation/continuous-enhancement-20260519-1103, not master.
  • Full Quantamental smoke remains blocked until the broader Quantamental router/service files are brought into the stacked branch.

6. Next Enhancement Suggestions

  1. Bring the tracked Quantamental router/service implementation into the clean stacked branch or rebase onto a branch that already contains it.
  2. Add a UI availability state for Quantamental endpoints so missing backend routes show a user-readable unavailable state instead of raw Not Found.
  3. Extend the dynamic mojibake scan to additional docs/report templates if they start rendering user-facing localized copy.

7. Safety Notes

  • main/master was not modified directly.
  • Auto-merge was not enabled.
  • Secrets were not touched.
  • Trading/order execution logic was not modified.
  • Unsupported facts were not presented as verified.
  • codex and codex-automation labels are unavailable in this repo; using enhancement only.

@ryun6249 ryun6249 added the enhancement New feature or request label May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant