merge work/merge-89-90 into main (Create-string #89/#90 + PR #97 fixes)
Reconciles two independent lines of work that both touched Review.svelte, MultiSelect.svelte, and the thickness band: - main's PR #97 (client-side thicknessBand.ts + MultiSelect names/commit + syncSelects DOM race fix + box-sizing CSS) - work/merge-89-90 (server-side thickness band in thickness_band.py, Create-string #89, metadata_locked dropped, photo strip, wood primary) Canonical resolution: the band is SERVER-side (hidden from UI, sent to Woo on publish), so the client-side thicknessBand.ts + read-only band display are removed from Review.svelte; PR #97's syncSelects() and box-sizing CSS are preserved (orthogonal fixes). MultiSelect takes selectedSummary from woodPrimary.ts (names in closed state) + the ms-count testid + onDestroy timer cleanup; duplicate close()/summary definitions dropped. Gates: backend 117/117, unit 88/88, tsc clean, e2e 6/6 (m3-create + photo-strip).
This commit is contained in:
@@ -24,3 +24,56 @@ Check to see if you are running on ubudual5060 (192.168.1.202) before attempting
|
||||
Future deploys use a **separate** container name and a free port in `10880`–`10889`
|
||||
(other than `10880`), bound `0.0.0.0`.
|
||||
Do not put a host name in the product spec.
|
||||
|
||||
## Deploy records
|
||||
|
||||
### 2026-09-21 02:41 PDT — #90 wood primary category + derived thickness band
|
||||
|
||||
- Source ref: `0329052` on `issue-89-metadata-lock` (pushed to Gitea; pulled into `~/slab-deploy`).
|
||||
- Images (built on `ubudual5060`): `deploy-frontend:latest` `1c169c29f131`,
|
||||
`deploy-fastapi:latest` `32671659639b`.
|
||||
- Compose: `deploy/docker-compose.yml` + host-local (untracked) `deploy/override-m3.yml`.
|
||||
- URL: `http://192.168.1.202:10881` (LAN) · `http://100.64.0.9:10881` (Tailscale).
|
||||
- `matches HEAD`: **yes**.
|
||||
- Sample data preserved: **yes** — 24 slabs before and after `up -d` (no `-v`, no volume removal).
|
||||
- Verified on the live stack: served asset `assets/index-tlFib3RM.js` (sha256 `3b665746ec81f28e…`)
|
||||
contains the new markers and no `#thickness` select; `POST /api/v1/slabs` at `thickness_in 1.0`
|
||||
stored band `350` (`1"- 1 1/2"`); `PUT` at `2.75` re-banded to `352`; a client-sent stale band id
|
||||
was ignored; `POST /review` no longer lists thickness as missing; the Review screen in a real
|
||||
browser (LAN URL) shows the wood-category MultiSelect closed summary with names + count, the
|
||||
`Primary wood category` radio set switching on click, and the band as read-only text.
|
||||
- Not exercised: the Woo publish path. Rows created **before** this deploy keep `thickness_term_id`
|
||||
NULL until their next save (the band is derived on write, so any Review commit fills it in).
|
||||
|
||||
### 2026-09-21 03:12 PDT — follow-up: thickness band omitted entirely from Review
|
||||
|
||||
- Commit: `204bc5e` (fix #90: band removed from UI, not merely read-only; publish test added).
|
||||
- Rebuilt `deploy-frontend:latest` and recreated the container on 10881.
|
||||
- Live verification: served HTML and bundle contain zero occurrences of "Thickness band" or "set from the measurement".
|
||||
- Sample data unchanged (still 25 slabs post-recreate).
|
||||
- All gates (unit, build, requirements, coverage, m3-create e2e) pass.
|
||||
|
||||
### 2026-09-21 11:52 PDT — merge `issue-89-metadata-lock` → main (Create-string model)
|
||||
|
||||
- Source: branch `work/merge-89-90` (base `origin/issue-89-metadata-lock` + Create-string re-applied).
|
||||
`matches HEAD`: **no** — staged from the uncommitted working tree (local sync; Gitea push not
|
||||
attempted this round). 9 files changed: Review.svelte, slabs.ts, review.py, slabs.py, schema.sql,
|
||||
db/__init__.py, test_review.py, m3-create.spec.ts, review-photo-strip.spec.ts.
|
||||
- Model change: `metadata_locked` DB column + "Save and lock" UI **dropped end-to-end**. The
|
||||
deterministic title/short_description are now built by the review endpoint on every call; the
|
||||
owner's **Create title / Create short desc** buttons fire the build and write the result
|
||||
(overwrite contract). `commitReview` auto-fills only empty fields (no owner-clobber); `createTitle`
|
||||
is the explicit force-overwrite. Photo strip, wood primary/secondary, and server-side thickness
|
||||
band (item: not shown in UI, passed to Woo on publish) all taken from the branch.
|
||||
- LAN binds: `deploy/override-m3.yml` was absent from disk; the live stack's 10881/10882 LAN binds
|
||||
were re-created by editing `deploy/docker-compose.yml` ports in-place (loopback 18082/18083 from
|
||||
`.env` + `0.0.0.0:10881`/`0.0.0.0:10882`), then `down --remove-orphans` + `up -d` (no `-v`).
|
||||
- Bundle: `assets/index-YPAqx609.js` (new; contains `create-title`). API `/api/health`
|
||||
`woo_reachable:true`.
|
||||
- Sample data preserved: **yes** — 34 slabs before/after.
|
||||
- Live verification (LAN URL, real DB): `slabs` table has **no** `metadata_locked` column;
|
||||
`slab_photos.role` present. `POST /review` on slab `ec4088da…` → `title:'Curl Black Walnut Slab'`,
|
||||
`ready:True`. `PUT` title persisted (rev 1→2) then restored (original sample value intact, rev 3).
|
||||
- Not exercised live: the full browser Create-button click (verified via in-repo Playwright 6/6
|
||||
m3-create + review-photo-strip; the endpoint + PUT path are proven live above). Woo publish path
|
||||
not exercised this round.
|
||||
|
||||
Reference in New Issue
Block a user