{"slug":"mfr-review-viewer-corruption","total":32,"limit":100,"offset":0,"since":null,"commits":[{"hash":"e7e862b","date":"2026-09-04 10:51:38 -0700","author":"Steve Abrams","subject":"Correct iOS rejection evidence to Apple 5.6","body":""},{"hash":"1bf0022","date":"2026-09-04 09:17:41 -0700","author":"Steve Abrams","subject":"add mark-superseded.mjs — the TK-10922 fallback remediation (Steve-approved)","body":"FileMaker DELETE is structurally blocked by [110]. This stamps each broken placeholder\nmaster's existing free-text Mfr Pattern with 'SUPERSEDED - see master <keepRid>' instead\nof deleting. Deliberately does NOT write the real code onto the placeholder -- that would\nleave two records both carrying gz103 and make the duplicate ambiguity worse (flagged\nindependently by the first-principles panelist and the contrarian).\n\nSame rails as execute-sweep: dry-run default, snapshot-first with refusal if the snapshot\nfails, execute-time re-verify (skuMatch + no sample history + still a placeholder),\nkeep-worthiness guard, idempotent re-run, write-verified by read-back, ledgered with an\nexact undo per record.\n\nDry-run clean on all 3. The --apply is classifier-blocked for an agent; Steve fires it.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5"},{"hash":"5b61b4a","date":"2026-09-04 08:51:26 -0700","author":"Steve Abrams","subject":"pre-stage the graph repair: cascade-impact-map parser + Steve's runbook","body":"The DTD verdict made a cascade-delete impact map a precondition for touching the\nRelationship Graph -- nobody had produced one. parse-ddr-cascade-map.mjs turns a\nread-only FileMaker DDR export into exactly that: dangling table occurrences, every\ncascade-delete relationship and what it would take with it, and the intersection of\nthe two (the [110] culprit). Smoke-tested against a fixture with a planted culprit.\n\nAlso adds the runbook: steps 1-3 are read-only, step 4 is the gated repair with the\ndisarm-vs-repoint distinction the contrarian surfaced, step 5 is the finish command.\n\nNeither depends on which path is chosen, so both are useful either way. No canonical\nFileMaker record touched.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5"},{"hash":"d04f917","date":"2026-09-04 08:48:18 -0700","author":"Steve Abrams","subject":"Document GovArbitrage resubmission readiness","body":""},{"hash":"5dff43f","date":"2026-09-03 16:28:13 -0700","author":"Steve Abrams","subject":"option A executed and failed: the [110] delete block is structural, not intermittent","body":"Steve authorized the single retry delete of rid 129453. Dry-run clean (1 delete, 0 guard\ntrips, snapshot written, keep untouched); live --apply returned [110] Related tables are\nmissing again -- byte-identical to the 2026-08-28 failure six days earlier. That eliminates\nthe external-data-source-availability hypothesis by experiment. deleted=0, changed=0,\nnothing to undo; all 3 targets and 3 keeps re-verified present and unchanged.\n\nOption B (Relationship Graph repair in FileMaker Pro) is now the only remaining path.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5"},{"hash":"8f7032c","date":"2026-09-03 14:24:32 -0700","author":"Steve Abrams","subject":"diagnose the FileMaker [110] delete block: it is delete-time relationship resolution, not the layout","body":"Zero-effect DELETE probe (nonexistent record id, GET-proven absent) returns 101 not 110\nacross all 95 same-base-table layouts with 0 related fields and 0 portals, including\n'Basic List of Fields'. Reads resolve every related TO fine. So 110 is raised during the\ndelete of a real record by a relationship that appears on no layout -- which is why every\nlayout swap failed identically. Narrows the fix to a Relationship Graph repair in\nFileMaker Pro, with retry-first because an external-data-source outage would be intermittent.\n\nAdds scripts/diagnostics/* (read-only probes), verification/probe-*.json evidence, and\nverification/delete-context-diagnosis.md. 0 canonical FileMaker records created, changed,\nor deleted.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01C5qbBnj5C8dVC83qvX6fV5"},{"hash":"d316caf","date":"2026-09-03 13:51:28 -0700","author":"Steve Abrams","subject":"document blocked HSW repair verification","body":""},{"hash":"1ba8310","date":"2026-08-28 07:33:26 -0700","author":"Steve Abrams","subject":"fix [110]: route sweep deletes/writes through Basic List of Fields (no related tables); add corrected 3-record HSW plan","body":""},{"hash":"d32eae4","date":"2026-08-28 00:45:04 -0700","author":"Steve Abrams","subject":"yoloforever c1 (Cody fix): single-flight lock in enrich-suggestions — concurrent rebuild-triggered runs can't race + corrupt queue.jsonl","body":""},{"hash":"039cfdc","date":"2026-08-28 00:43:38 -0700","author":"Steve Abrams","subject":"yoloforever c1: wire /api/rebuild to auto-refill FileMaker suggestions (detached, resumable) so a rebuild never leaves the list blank","body":""},{"hash":"58ae65f","date":"2026-08-27 19:26:22 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-27T19:24:37 (1 data files) — data/queue.jsonl","body":""},{"hash":"564d58c","date":"2026-08-27 18:49:32 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-27T18:47:45 (1 data files) — data/queue.jsonl","body":""},{"hash":"9ba7a0c","date":"2026-08-27 18:12:39 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-27T18:10:50 (1 data files) — data/queue.jsonl","body":""},{"hash":"e65092a","date":"2026-08-27 18:04:32 -0700","author":"Steve Abrams","subject":"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","body":""},{"hash":"50b2a99","date":"2026-08-27 11:38:23 -0700","author":"Steve","subject":"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.","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"ee721d4","date":"2026-08-27 11:32:50 -0700","author":"Steve","subject":"silence cosmetic /favicon.ico 404 (204 no-content)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"84c6e57","date":"2026-08-27 11:25:43 -0700","author":"Steve","subject":"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","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"dcd7c8f","date":"2026-08-27 11:22:52 -0700","author":"Steve","subject":"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","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"e24c287","date":"2026-08-27 11:20:30 -0700","author":"Steve Abrams","subject":"executor: add belongs-to-SKU (skuMatch) guard to execute-time re-verify — refuses to delete a foreign record even if a plan lists it","body":""},{"hash":"ac96049","date":"2026-08-27 11:14:51 -0700","author":"Steve Abrams","subject":"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","body":""},{"hash":"2326b02","date":"2026-08-27 11:12:13 -0700","author":"Steve Abrams","subject":"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","body":""},{"hash":"c59fa7d","date":"2026-08-27 10:12:15 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-27T10:10:28 (1 data files) — data/plans/HSW-51526-test.json","body":""},{"hash":"5604d8e","date":"2026-08-27 09:37:47 -0700","author":"vp-dw-commerce","subject":"viewer: per-vendor Sweep control — GET /api/vendor-plan (read-only analyzer), Stage-for-approval (safe default) + gated Execute-now (typed APPROVE token) modal","body":""},{"hash":"df9f241","date":"2026-08-27 09:35:22 -0700","author":"auto-commit-fleet","subject":"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","body":""},{"hash":"a0b309d","date":"2026-08-27 09:26:49 -0700","author":"vp-dw-commerce","subject":"mfr-master-sweep executor: Cody-hardened — keep-in-delete guard, keep-worthiness guard (reject inverted plans), real runnable restore-record.mjs undo","body":""},{"hash":"23d36ff","date":"2026-08-27 09:19:31 -0700","author":"vp-dw-commerce","subject":"mfr-master-sweep: gated executor (dry-run default, snapshot-first, re-verify, never-to-zero, blast cap, ledger) + read-only batch analyzer","body":""},{"hash":"377ff9b","date":"2026-08-27 09:08:01 -0700","author":"Steve Abrams","subject":"viewer: per-chip red 'Remove suggested (N)' button — one-click mark the auto-suggested broken masters for deletion","body":""},{"hash":"8c74f84","date":"2026-08-27 09:00:49 -0700","author":"Steve Abrams","subject":"viewer: auto-apply keep/delete rule (delete broken no-sample masters, keep real sample records) + sample-history badges","body":""},{"hash":"8e3663b","date":"2026-08-27 08:48:02 -0700","author":"Steve Abrams","subject":"mfr-review-viewer: gated delete-record (keep-rest) staging with reversible FM snapshots","body":""},{"hash":"b16f1e1","date":"2026-08-27 08:21:20 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-27T08:19:36 (1 data files) — data/queue.jsonl","body":""},{"hash":"a93a88b","date":"2026-08-27 08:18:37 -0700","author":"Steve Abrams","subject":"mfr-review-viewer: per-SKU candidates drill-down (FmPro + unified DB) + creds-in-URL fetch guard","body":"Each chip gets a '▸ candidates' expander that lazy-fetches GET /api/candidates?dw_sku=<sku>\nand renders two groups: FmPro records (every matching WALLPAPER master, so duplicate/wrong\nmasters are visible) and Unified DB rows (shopify_products/vendor_catalog/dw_sku_registry).\nSelecting a candidate's radio writes its real mfr (noteMfr / metafield / mfrPattern) into the\nrow's confirmed-mfr input for gated staging; a 'none — keep manual' radio is included.\n\nBackend lib/candidates.mjs is READ-ONLY (FM _find + psql SELECTs), imports findRecords from\nfilemaker-mcp (does not modify it), degrades to {filemaker:[],unified:[...],fmError} on FM\nfailure. The real mfr note ('#gz127 - $44.10 Net - 1/14') lives in FileMaker field 'Mfr Pattern';\nnoteMfr parses the token after '#'. Added the fleet creds-in-URL window.fetch guard (the\nembedded-creds baseURI trap was silently breaking every fetch, queue + candidates alike).\n\nVerified: GET /api/candidates?dw_sku=HSW-51526 -> 18 FmPro masters (gz127 surfaces, duplicate\nmasters visible), 3 unified rows; radio-pick writes gz127 into the confirmed-mfr input.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"ffd4b1a","date":"2026-08-27 07:49:32 -0700","author":"Steve Abrams","subject":"mfr-review-viewer: authenticated viewer for broken DW#==Mfr SKU corruption (read-only + gated staging)","body":"Loader (scripts/build-queue.mjs) runs the corruption-signature query against\ndw_unified.shopify_products, classifies each row (TIER-2 alpha-prefix recovery /\nLIKELY-LEGIT Schumacher / TIER-4 bad-sku / TIER-3 needs-review), prefers the\nfilemaker-mcp peer output when present, writes data/queue.jsonl. Express server\n(Basic Auth admin/DW2024!) serves the facet+sort+density grid with inline-editable\nguesses; POST /api/stage drafts a gated memo to pending-approval and NEVER writes\nto dw_unified/FileMaker/Shopify.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\n"}]}