You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Test suite | 81 passing | 1 pre-existing failure (`test_batch_cli.py`) |
20
+
| MIT license | Done | No AGPL contamination |
22
21
23
22
---
24
23
25
-
## Completed Work
24
+
## Reframe Notes (2026-03-07)
26
25
27
-
### Sprint 1: CI + Documentation (2026-02-27)
26
+
> **Why the roadmap changed:** A downstream integration audit revealed three findings that shifted priorities:
27
+
>
28
+
> 1.**Label accuracy is the highest-leverage improvement.** Downstream tools that consume the manifest render every `label` field directly into prompts. OCR errors in labels propagate through every downstream step. The OCR correction baseline — previously equal-weighted with README polish — is now the top priority because it directly improves the data that flows through every downstream module.
29
+
>
30
+
> 2.**The manifest schema is sufficient and frozen.** Downstream consumers use `image_width`, `image_height`, `element_count`, `som_id`, `label`, `bbox`, and `source`. No new fields are needed. This means uitag's roadmap should focus on making existing fields more accurate (especially `label`), not on schema expansion.
31
+
>
32
+
> 3.**Repeated-call performance matters.** Automated workflows that call uitag after each interaction step accumulate overhead quickly. At 15 steps × ~2.5s = ~37.5s detection overhead. The ~600ms temp file I/O waste per call (mlx_vlm API limitation) becomes 9 seconds of pure waste over a session. This moves I/O optimization from "parked" to "do when repeated-call use cases emerge."
33
+
>
34
+
> 4.**Rescan has no downstream consumer yet.** No downstream tool currently branches on `confidence`. The rescan feature is currently CLI-only quality-of-life. Further rescan investment is deferred until downstream tools begin using confidence values.
35
+
>
36
+
> The reframe prioritizes: **detect accurately → test confidently → optimize for repeated calls**. README polish and validation edge cases are deferred.
37
+
38
+
---
28
39
29
-
-[x]**S1.1:** GitHub Actions CI — `.github/workflows/test.yml`, Python 3.10/3.11/3.12, badge in README
30
-
-[x]**S1.2:** Example output — hero image + redacted manifest in `docs/examples/`
-[]**Broader screenshot testing**— Run pipeline on IDE, settings UIs, web apps in both light/dark mode. Establish a detection quality baseline with documented expected vs. actual element counts. The v0.4.1 spot-check found detection inconsistencies across different captures of the same UI — we need to understand the variance before the next feature cycle.
45
+
-[]**OCR correction baseline**— Minimal deterministic heuristics for common OCR confusions in UI text (`l`→`I`, Cyrillic `Т`→`T`, `w`→`W`). The v0.4.1 spot-check and rescan testing surfaced exactly these failure modes. This directly improves the `label` field that downstream tools feed into prompts. See `docs/ocr-correction-strategy.md`.
46
+
-[]**Fix `test_batch_cli.py`**— `test_format_summary` and `test_format_summary_no_failures` fail due to missing `total_detections` parameter. Pre-existing, straightforward fix. Broken tests erode suite confidence.
## Tier 2 — Do When Repeated-Call Use Cases Emerge
45
51
46
-
### Post-Sprint Fixes (2026-02-27)
52
+
_Theme: prepare for repeated-call integration._
47
53
48
-
-[x] Pip install fix — Swift source bundled in package (`uitag/tools/`)
49
-
-[x]`run_pipeline` exported from `__init__.py`
50
-
-[x] README Quick Start leads with `pip install uitag`
51
-
-[x] Apache-2.0 SPDX headers → MIT (5 files)
52
-
-[x] Stale perf numbers updated in `docs/research.md`
54
+
-[ ]**Temp file I/O optimization** — Eliminate ~600ms overhead from mlx_vlm's file-based API (save 4 temp PNGs, load them back). Over 15 repeated verification calls, this wastes ~9 seconds. Evaluate: can mlx_vlm accept PIL images directly? Can we memory-map the temp files? Is there a streaming interface?
55
+
-[ ]**`crop_region` parameter** — Add optional `crop_region` tuple to `run_pipeline()` for sub-image detection with automatic coordinate offset. Useful when callers outgrow the caller-side PIL crop workaround. Not building proactively — wait for demand.
56
+
-[ ]**Manifest stability doc** — Explicitly document the schema freeze for v0.4.x in `docs/api.md`. Downstream consumers depend on this contract. Any breaking change requires a versioned migration.
53
57
54
-
### v0.3.x Features
58
+
---
55
59
56
-
-[x]**Batch CLI** (`uitag batch <dir>`) — Process folders of screenshots in one command (v0.3.1)
57
-
-[x]**Benchmark CLI** (`uitag benchmark`) — Per-stage timing with stats across N runs, bundled reference images (v0.3.1)
58
-
-[x]**Per-stage timing instrumentation** — All 6 pipeline stages timed in manifest output (v0.3.1)
59
-
-[x]**API reference docs** — `docs/api.md` with functions, types, manifest schema
60
-
-[x]**Performance docs** — `docs/performance.md` with stage breakdown, backend comparison
0 commit comments