generated from john/python-template
@@ -64,24 +64,6 @@ Homepage images are **filesystem-only with no metadata store**, so a caption has
|
||||
|
||||
This is cheap **only if** item 3 is being done at the same time, since both need the same metadata layer. Designing that layer twice would be wasteful; design it once or not at all.
|
||||
|
||||
### 5. Model-Performance Rollup (V4.6 review log [54])
|
||||
|
||||
**Practicality: high, but blocked. Effort: M.**
|
||||
|
||||
Run-time telemetry is already captured and is per page: `execution_attempt.duration_ms` is a required non-null field written on all three paths in `workflows.py` (success 278, `TimeoutError` 295, general failure 330), with failures using a monotonic clock. Verified against the live database: 80 rows across 80 distinct (job, source, attempt) combinations, one row per page - the largest job has 60 attempts across 60 distinct pages - and zero nulls. Token counts live on the same row in `normalized_metadata.usage`, so tokens-per-second is already derivable without a join.
|
||||
|
||||
What is missing is **aggregation**. The figure is visible only for the latest attempt of one source at a time (`sources_page.py:400`), rendered raw as `"27612 ms"`. There is no rollup by model, prompt, or document.
|
||||
|
||||
The gap is concrete: calibrating the provider timeout on 2026-08-18 required hand-written SQL against the database, because the application could not answer "which model is slow."
|
||||
|
||||
Proposed shape: median / p95 / max duration, tokens per second, and a timeout rate, grouped by model. **Blocked on V4.7 Phase 4.**
|
||||
|
||||
### 6. Desaturated Background Wallpaper
|
||||
|
||||
**Practicality: low. Recommendation: do not build, or gate behind a setting defaulted off.**
|
||||
|
||||
Trivial to implement (`ui.add_css` with a CSS `filter`), but this is a dense archival data application - transcripts, JSON evidence panels, data tables. A background image behind all of that costs contrast and legibility on every page, for aesthetic gain only.
|
||||
|
||||
## Suggested Grouping
|
||||
|
||||
If V4.8 is scoped as one release, the natural split is:
|
||||
@@ -98,12 +80,5 @@ Item 6 is not recommended.
|
||||
|
||||
- Should Track B happen at all, or is one portrait per person sufficient?
|
||||
- Should the slideshow interval be configurable, or fixed?
|
||||
- Should the model-performance rollup be its own page, or a panel on an existing one?
|
||||
- Should vendored Panzoom be committed to the repository, or fetched at build time?
|
||||
|
||||
## Related Local References
|
||||
|
||||
- [Architecture & Code Review Report](../architecture_code_review_2026-08-17.md)
|
||||
- `.github/instructions/ui.instructions.md`
|
||||
- `src/transcription/ui/homepage_store.py` - existing multi-image storage
|
||||
- `src/transcription/ui/components/media_urls.py` - canonical URL resolution
|
||||
|
||||
Reference in New Issue
Block a user