Mfr Review Viewer Corruption
Search the build
-
e7e862b2026-09-04 Correct iOS rejection evidence to Apple 5.6 -
1bf00222026-09-04 add mark-superseded.mjs — the TK-10922 fallback remediation (Steve-approved) -
5b61b4a2026-09-04 pre-stage the graph repair: cascade-impact-map parser + Steve's runbook -
d04f9172026-09-04 Document GovArbitrage resubmission readiness -
5dff43f2026-09-03 option A executed and failed: the [110] delete block is structural, not intermittent -
8f7032c2026-09-03 diagnose the FileMaker [110] delete block: it is delete-time relationship resolution, not the layout -
d316caf2026-09-03 document blocked HSW repair verification -
1ba83102026-08-28 fix [110]: route sweep deletes/writes through Basic List of Fields (no related tables); add corrected 3-record HSW plan -
d32eae42026-08-28 yoloforever c1 (Cody fix): single-flight lock in enrich-suggestions — concurrent rebuild-triggered runs can't race + corrupt queue.jsonl -
039cfdc2026-08-28 yoloforever c1: wire /api/rebuild to auto-refill FileMaker suggestions (detached, resumable) so a rebuild never leaves the list blank -
58ae65f2026-08-27 auto-data-snapshot: 2026-08-27T19:24:37 (1 data files) — data/queue.jsonl -
564d58c2026-08-27 auto-data-snapshot: 2026-08-27T18:47:45 (1 data files) — data/queue.jsonl -
9ba7a0c2026-08-27 auto-data-snapshot: 2026-08-27T18:10:50 (1 data files) — data/queue.jsonl -
e65092a2026-08-27 suggest the correct REAL mfr NUMBER in the list: FileMaker-own-record enrichment (enrich-suggestions.mjs) + real-code filter (has digit, no spaces, not a filename) + list prefers it + live in-place poller with coverage banner -
50b2a992026-08-27 keep domain aside open on load (data-nav-sidebar=off) — Cody FIX-FIRST: nav-agent was auto-collapsing the search/facets/field-toggle/⚙Sweep toolset behind a hamburger on first paint; nav-agent still mounts its additive #list panel (true 2-into-1). Verified real-click reachable. -
ee721d42026-08-27 silence cosmetic /favicon.ico 404 (204 no-content) -
84c6e572026-08-27 list form + full nav agent: convert card grid to one-row-per-record KV list (identity block: DW SKU + bad→suggested mfr + ACTIVE badge; inline label/value field chips) + wire /nav-agent + /kv-list drop-ins (2-into-1 with existing aside); candidates drill-down / suggested-mfr banner / foreign-marking / stage flow all preserved -
dcd7c8f2026-08-27 scope to ACTIVE patterns only: default status='ACTIVE' in build-queue SIG + vendor-sweep enumerateSkus (STATUS_FILTER=all escape hatch); queue drops 20878 -> 2432, 0 Schumacher -
e24c2872026-08-27 executor: add belongs-to-SKU (skuMatch) guard to execute-time re-verify — refuses to delete a foreign record even if a plan lists it -
ac960492026-08-27 viewer: prominent 'Suggested real mfr → Approve into field' banner (from own-SKU record) + grey/disable foreign records so they can't be picked or deleted -
2326b022026-08-27 candidates: CRITICAL — scope keep/delete/mfr-suggest to own-SKU records (skuMatch); foreign leaks (e.g. Schumacher sharing a number) can no longer be delete-suggested -
c59fa7d2026-08-27 auto-data-snapshot: 2026-08-27T10:10:28 (1 data files) — data/plans/HSW-51526-test.json -
5604d8e2026-08-27 viewer: per-vendor Sweep control — GET /api/vendor-plan (read-only analyzer), Stage-for-approval (safe default) + gated Execute-now (typed APPROVE token) modal -
df9f2412026-08-27 auto-data-snapshot: 2026-08-27T09:33:34 (3 data files) — data/plans/Glitter-Walls-2026-08-27T16-29-28-229Z.json data/plans/Glitter-Walls-2026-08-27T16-35-08-417Z.json data/plans/HSW-51526-test.json -
a0b309d2026-08-27 mfr-master-sweep executor: Cody-hardened — keep-in-delete guard, keep-worthiness guard (reject inverted plans), real runnable restore-record.mjs undo -
23d36ff2026-08-27 mfr-master-sweep: gated executor (dry-run default, snapshot-first, re-verify, never-to-zero, blast cap, ledger) + read-only batch analyzer -
377ff9b2026-08-27 viewer: per-chip red 'Remove suggested (N)' button — one-click mark the auto-suggested broken masters for deletion -
8c74f842026-08-27 viewer: auto-apply keep/delete rule (delete broken no-sample masters, keep real sample records) + sample-history badges -
8e3663b2026-08-27 mfr-review-viewer: gated delete-record (keep-rest) staging with reversible FM snapshots -
b16f1e12026-08-27 auto-data-snapshot: 2026-08-27T08:19:36 (1 data files) — data/queue.jsonl -
a93a88b2026-08-27 mfr-review-viewer: per-SKU candidates drill-down (FmPro + unified DB) + creds-in-URL fetch guard -
ffd4b1a2026-08-27 mfr-review-viewer: authenticated viewer for broken DW#==Mfr SKU corruption (read-only + gated staging)
Authors
- Steve23
- auto-commit-fleet6
- vp-dw-commerce3
Agents used
Skills used
- /queue5
- /claude4
- /code4
- /plans4
- /candidates3
- /delete2
- /diagnostics1
- /probe1
- /delete-context-diagnosis1
- /writes1
- /rebuild1
- /facets1
- /field-toggle1
- /favicon1
- /value1
- /nav-agent1
- /kv-list1
- /disable1
- /mfr-suggest1
- /vendor-plan1
- /wrong1
- /build-queue1
- /stage1
Creative ideas + design notes
1bf0022 · 2026-09-04 · add mark-superseded.mjs — the TK-10922 fallback remediation (Steve-approved)
FileMaker DELETE is structurally blocked by [110]. This stamps each broken placeholder master's existing free-text Mfr Pattern with 'SUPERSEDED - see master <keepRid>' instead of deleting. Deliberately does NOT write the real code onto the placeholder -- that would leave two records both carrying gz103 and make the duplicate ambiguity worse (flagged independently by the first-principles panelist and the contrarian). Same rails as execute-sweep: dry-run default, snapshot-first with refusal if the snapshot fails, execute-time re-verify (skuMatch + no sample history + still a placeholder), keep-worthiness guard, idempotent re-run, write-verified by read-back, ledgered with an exact undo per record. Dry-run clean on all 3. The --apply is classifier-blocked for an agent; Steve fires it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5
5b61b4a · 2026-09-04 · pre-stage the graph repair: cascade-impact-map parser + Steve's runbook
The DTD verdict made a cascade-delete impact map a precondition for touching the Relationship Graph -- nobody had produced one. parse-ddr-cascade-map.mjs turns a read-only FileMaker DDR export into exactly that: dangling table occurrences, every cascade-delete relationship and what it would take with it, and the intersection of the two (the [110] culprit). Smoke-tested against a fixture with a planted culprit. Also adds the runbook: steps 1-3 are read-only, step 4 is the gated repair with the disarm-vs-repoint distinction the contrarian surfaced, step 5 is the finish command. Neither depends on which path is chosen, so both are useful either way. No canonical FileMaker record touched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5
5dff43f · 2026-09-03 · option A executed and failed: the [110] delete block is structural, not intermittent
Steve authorized the single retry delete of rid 129453. Dry-run clean (1 delete, 0 guard trips, snapshot written, keep untouched); live --apply returned [110] Related tables are missing again -- byte-identical to the 2026-08-28 failure six days earlier. That eliminates the external-data-source-availability hypothesis by experiment. deleted=0, changed=0, nothing to undo; all 3 targets and 3 keeps re-verified present and unchanged. Option B (Relationship Graph repair in FileMaker Pro) is now the only remaining path. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5
8f7032c · 2026-09-03 · diagnose the FileMaker [110] delete block: it is delete-time relationship resolution, not the layout
Zero-effect DELETE probe (nonexistent record id, GET-proven absent) returns 101 not 110 across all 95 same-base-table layouts with 0 related fields and 0 portals, including 'Basic List of Fields'. Reads resolve every related TO fine. So 110 is raised during the delete of a real record by a relationship that appears on no layout -- which is why every layout swap failed identically. Narrows the fix to a Relationship Graph repair in FileMaker Pro, with retry-first because an external-data-source outage would be intermittent. Adds scripts/diagnostics/* (read-only probes), verification/probe-*.json evidence, and verification/delete-context-diagnosis.md. 0 canonical FileMaker records created, changed, or deleted. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5
a93a88b · 2026-08-27 · mfr-review-viewer: per-SKU candidates drill-down (FmPro + unified DB) + creds-in-URL fetch guard
Each chip gets a '▸ candidates' expander that lazy-fetches GET /api/candidates?dw_sku=<sku>
and renders two groups: FmPro records (every matching WALLPAPER master, so duplicate/wrong
masters are visible) and Unified DB rows (shopify_products/vendor_catalog/dw_sku_registry).
Selecting a candidate's radio writes its real mfr (noteMfr / metafield / mfrPattern) into the
row's confirmed-mfr input for gated staging; a 'none — keep manual' radio is included.
Backend lib/candidates.mjs is READ-ONLY (FM _find + psql SELECTs), imports findRecords from
filemaker-mcp (does not modify it), degrades to {filemaker:[],unified:[...],fmError} on FM
failure. The real mfr note ('#gz127 - $44.10 Net - 1/14') lives in FileMaker field 'Mfr Pattern';
noteMfr parses the token after '#'. Added the fleet creds-in-URL window.fetch guard (the
embedded-creds baseURI trap was silently breaking every fetch, queue + candidates alike).
Verified: GET /api/candidates?dw_sku=HSW-51526 -> 18 FmPro masters (gz127 surfaces, duplicate
masters visible), 3 unified rows; radio-pick writes gz127 into the confirmed-mfr input.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ffd4b1a · 2026-08-27 · mfr-review-viewer: authenticated viewer for broken DW#==Mfr SKU corruption (read-only + gated staging)
Loader (scripts/build-queue.mjs) runs the corruption-signature query against dw_unified.shopify_products, classifies each row (TIER-2 alpha-prefix recovery / LIKELY-LEGIT Schumacher / TIER-4 bad-sku / TIER-3 needs-review), prefers the filemaker-mcp peer output when present, writes data/queue.jsonl. Express server (Basic Auth admin/DW2024!) serves the facet+sort+density grid with inline-editable guesses; POST /api/stage drafts a gated memo to pending-approval and NEVER writes to dw_unified/FileMaker/Shopify. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
File tree
- .gitignore
- data/candidates-proof-HSW-51526.png
- data/plans/Glitter-Walls-2026-08-27T16-29-28-229Z.json
- data/plans/Glitter-Walls-2026-08-27T16-35-08-417Z.json
- data/queue.jsonl
- lib/candidates.mjs
- lib/fm-record-snapshot.mjs
- package-lock.json
- package.json
- public/index.html
- public/kv-list.css
- public/kv-list.js
- public/nav-agent/nav-agent.css
- public/nav-agent/nav-agent.js
- scripts/build-queue.mjs
- scripts/diagnostics/fixtures/sample-ddr.xml
- scripts/diagnostics/parse-ddr-cascade-map.mjs
- scripts/diagnostics/probe-delete-context-matrix.mjs
- scripts/diagnostics/probe-layout-get-matrix.mjs
- scripts/diagnostics/probe-related-table-occurrences.mjs
- scripts/enrich-suggestions.mjs
- scripts/execute-sweep.mjs
- scripts/mark-superseded.mjs
- scripts/restore-record.mjs
- scripts/vendor-sweep-analyze.mjs
- server.js
- verification/delete-context-diagnosis.md
- verification/e2e-proof.json
- verification/filemaker-graph-repair-runbook.md
- verification/probe-delete-context-matrix.json
- verification/probe-layout-get-matrix.json
- verification/probe-related-table-occurrences.json
- verification/tk11230-ios-resubmission-readiness.json