gmal-scope-builder/backend/app/services
DJP 8a2b45ae31 Deep extraction: live progress between passes + elapsed timer
- Split deep extraction into two separate functions (pass1 + pass2)
  so the background task can update DB between them
- Progress now shows:
  "Pass 1/2: Analyzing structure... (this takes 20-40 seconds)"
  "Pass 1 complete (23s). Pass 2/2: Extracting assets..."
  "Deep extraction complete (52s total). Found 45 assets."
- Live elapsed timer (seconds) shown in the upload spinner
- Timer ticks every second so user knows it's not hung

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 10:03:04 -04:00
..
__init__.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
ai_descriptions.py AI-enhanced GMAL descriptions + matching fixes 2026-03-28 10:12:04 -04:00
ai_matching.py Custom tier editor, brief analysis feeds matching, exportable questions 2026-04-09 16:02:11 -04:00
doc_parser.py Deep extraction: live progress between passes + elapsed timer 2026-04-10 10:03:04 -04:00
excel_parser.py Improve matching, upload UX, collapse fix, full catalog approach 2026-03-27 19:22:08 -04:00
export_excel.py Custom tier editor, brief analysis feeds matching, exportable questions 2026-04-09 16:02:11 -04:00
export_pdf.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
match_refiner.py P2: Iterative prompting + RFP brief analysis engine 2026-04-09 14:15:31 -04:00
ratecard_builder.py Initial commit - GMAL Scope Builder 2026-03-27 17:35:14 -04:00
rfp_analysis.py P2: Iterative prompting + RFP brief analysis engine 2026-04-09 14:15:31 -04:00
team_shape.py P1: Role-specific efficiency profiles + BTG tool efficiencies 2026-04-09 13:48:30 -04:00
tier_expander.py Client tier mapping + GMAL complexity variant expansion 2026-04-09 15:02:45 -04:00