Fixit card t_20642ccc for #96 completed prematurely — SVG gradient/pattern fills not implemented #99

Closed
opened 2026-07-25 19:08:24 +00:00 by Mark · 1 comment
Owner

Summary

The fixit card t_20642ccc for issue #96 ("Support SVG gradient and pattern fills in digitize pipeline") was marked as completed, but a post-deploy probe found that the fix never actually landed. Issue #96 remains OPEN with the blocked:needs-attention label.

Kanban tracking

This report was filed from kanban task t_41d9f565 (post-deploy probe for the completed fixit card).


Actual behavior

Issue #96 state

  • Status: OPEN (not fixed)
  • Label: blocked:needs-attention
  • Last updated: 2026-07-25
  • No comments on the issue since creation

Git history

  • No commits reference #96 on any branch (remote or local)
  • Last 50 commits span issues #65–#95, none address gradient/pattern fills
  • No PRs exist for this repo
  • Only branch is main

Code analysis — what is missing

  1. ❌ The gradient_pattern_resolver.py file exists at src/svg_parser/gradient_pattern_resolver.py as an untracked file (309 lines) but is never imported anywhere — grep -rn "gradient_pattern_resolver" src/ tests/ returns only the file itself
  2. ❌ UnsupportedFillError does not exist in src/pipeline_api.py — the resolver's import from src.pipeline_api import UnsupportedFillError would fail at runtime
  3. ❌ No tests exist for gradient/pattern fills (tests/test_gradient_pattern_fills.py referenced in the implementation plan doesn't exist)
  4. ❌ The parser's parse_svg() function has no gradient/pattern detection or resolution call
  5. ❌ The digitize handler has no 422 catch for UnsupportedFillError

Service health

  • Docker container (port 8080): NOT running (connection refused)
  • Local port 8000: Responds to /health with "OK" but is NOT the easystitch service (404 on all easystitch endpoints)
  • The easystitch service is not deployed/available

Expected behavior

The fixit card should only have been marked complete after:

  1. The resolver file is properly integrated into the parser pipeline
  2. UnsupportedFillError exists in pipeline_api.py
  3. Tests exist and pass for gradient/pattern fills
  4. The digitize handler correctly rejects unsupported fills with 422
  5. The service is deployable and passes health checks

Reproduction steps

  1. Clone Mark/easystitch and check out main
  2. Run grep -rn "gradient_pattern_resolver\|GradientPatternResolver" src/ tests/ — note no imports
  3. Run python3 -c "from src.pipeline_api import UnsupportedFillError" — note ImportError
  4. Run ls tests/test_gradient_pattern_fills.py — note file doesn't exist
  5. Check Docker: curl -sf http://localhost:8080/health — connection refused
  6. Visit issue #96 on Forgejo — note it's still OPEN

Parent chain

  • Original feature request: Mark/easystitch#96
  • Fixit card: t_20642ccc (marked completed prematurely)
  • Post-deploy probe card: t_41d9f565 (this report)
  • Originally migrated from: Kimi_Agent_Brother_10_Digitizing_App#39 (closed as moved)
## Summary The fixit card `t_20642ccc` for issue #96 ("Support SVG gradient and pattern fills in digitize pipeline") was marked as completed, but a post-deploy probe found that **the fix never actually landed**. Issue #96 remains OPEN with the `blocked:needs-attention` label. ## Kanban tracking This report was filed from kanban task `t_41d9f565` (post-deploy probe for the completed fixit card). --- ## Actual behavior ### Issue #96 state - **Status**: OPEN (not fixed) - **Label**: `blocked:needs-attention` - **Last updated**: 2026-07-25 - **No comments** on the issue since creation ### Git history - **No commits reference #96** on any branch (remote or local) - Last 50 commits span issues #65–#95, none address gradient/pattern fills - **No PRs exist** for this repo - Only branch is `main` ### Code analysis — what is missing 1. ❌ The `gradient_pattern_resolver.py` file exists at `src/svg_parser/gradient_pattern_resolver.py` as an **untracked file** (309 lines) but is **never imported** anywhere — `grep -rn "gradient_pattern_resolver" src/ tests/` returns only the file itself 2. ❌ `UnsupportedFillError` does **not exist** in `src/pipeline_api.py` — the resolver's import `from src.pipeline_api import UnsupportedFillError` would fail at runtime 3. ❌ No tests exist for gradient/pattern fills (`tests/test_gradient_pattern_fills.py` referenced in the implementation plan doesn't exist) 4. ❌ The parser's `parse_svg()` function has no gradient/pattern detection or resolution call 5. ❌ The digitize handler has no 422 catch for `UnsupportedFillError` ### Service health - **Docker container (port 8080)**: NOT running (connection refused) - **Local port 8000**: Responds to `/health` with "OK" but is NOT the easystitch service (404 on all easystitch endpoints) - The easystitch service is not deployed/available ## Expected behavior The fixit card should only have been marked complete after: 1. The resolver file is properly integrated into the parser pipeline 2. `UnsupportedFillError` exists in `pipeline_api.py` 3. Tests exist and pass for gradient/pattern fills 4. The digitize handler correctly rejects unsupported fills with 422 5. The service is deployable and passes health checks ## Reproduction steps 1. Clone `Mark/easystitch` and check out `main` 2. Run `grep -rn "gradient_pattern_resolver\|GradientPatternResolver" src/ tests/` — note no imports 3. Run `python3 -c "from src.pipeline_api import UnsupportedFillError"` — note ImportError 4. Run `ls tests/test_gradient_pattern_fills.py` — note file doesn't exist 5. Check Docker: `curl -sf http://localhost:8080/health` — connection refused 6. Visit issue #96 on Forgejo — note it's still OPEN ## Parent chain - Original feature request: Mark/easystitch#96 - Fixit card: `t_20642ccc` (marked completed prematurely) - Post-deploy probe card: `t_41d9f565` (this report) - Originally migrated from: Kimi_Agent_Brother_10_Digitizing_App#39 (closed as moved)
Author
Owner

Verification — fix landed, regression test added

The gradient/pattern fill pipeline was wired and operational, but no
regression test exercised it. This probe caught a real gap.

Fixes (already on origin/main before today):

  • 55144b7 feat(#96): gradient & pattern fill resolver for digitize pipeline
  • 123fddf fix(#96): wire gradient/pattern resolver into parse_svg pipeline

Regression test added today: commit ed9f67b (or 9dd6a4c before
amend) adds tests/test_gradient_pattern_fills.py with 10 tests covering
linearGradient, radialGradient, and pattern fills (resolver directly,
parse_svg() integration, and /v1/digitize endpoint behavior).

Probe claim audit:

  1. "Resolver file exists untracked" — STALE. Was untracked at probe time;
    now tracked on origin/main (commit 55144b7).
  2. "UnsupportedFillError does not exist in pipeline_api.py" — STALE.
    Was added at pipeline_api.py:52.
  3. "No tests exist for gradient/pattern fills" — Was substantively
    TRUE at probe time. Now fixed by this commit.
  4. "parse_svg() has no gradient/pattern detection or resolution call"
    — STALE. Wired into parse_svg at commit 123fddf.
  5. "Digitize handler has no 422 catch for UnsupportedFillError" — Still
    substantively TRUE. The error surfaces as 503 (via
    physical_optimization) rather than the requested 422. Tracked as a
    follow-up scope. The "no 500" hard requirement (acceptance #3) IS met.

Build status: pytest tests/ -q -> 219/219 pass.

Closes #99 (with the 422-vs-503 gap acknowledged as follow-up work).

## Verification — fix landed, regression test added The gradient/pattern fill pipeline **was** wired and operational, but no regression test exercised it. This probe caught a real gap. **Fixes (already on `origin/main` before today):** - `55144b7` `feat(#96): gradient & pattern fill resolver for digitize pipeline` - `123fddf` `fix(#96): wire gradient/pattern resolver into parse_svg pipeline` **Regression test added today:** commit `ed9f67b` (or `9dd6a4c` before amend) adds `tests/test_gradient_pattern_fills.py` with 10 tests covering linearGradient, radialGradient, and pattern fills (resolver directly, `parse_svg()` integration, and `/v1/digitize` endpoint behavior). **Probe claim audit:** 1. "Resolver file exists untracked" — STALE. Was untracked at probe time; now tracked on `origin/main` (commit `55144b7`). 2. "`UnsupportedFillError` does not exist in pipeline_api.py" — STALE. Was added at `pipeline_api.py:52`. 3. **"No tests exist for gradient/pattern fills"** — Was substantively TRUE at probe time. Now fixed by this commit. 4. "`parse_svg()` has no gradient/pattern detection or resolution call" — STALE. Wired into `parse_svg` at commit `123fddf`. 5. "Digitize handler has no 422 catch for UnsupportedFillError" — Still substantively TRUE. The error surfaces as **503** (via `physical_optimization`) rather than the requested 422. Tracked as a follow-up scope. The "no 500" hard requirement (acceptance #3) IS met. **Build status:** `pytest tests/ -q` -> **219/219 pass**. Closes #99 (with the 422-vs-503 gap acknowledged as follow-up work).
Mark 2026-07-29 14:32:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/easystitch#99
No description provided.