make_post_sell/docs/tickets
russell@unturf.com 7836035d1a
fix: MPS-24 Phase 2.8e — form.action DOM-clobbered by <input name=action>
With 2.8d live the operator's Network panel proved the proxy-proof
ajax=1 signal works (real fetch to /tags -> 200, 0.7kB JSON) but also
showed 4 requests to a URL literally named [object HTMLInputElement],
with a CORRECT payload (action=delete, tag_slug=..., ajax=1).

Cause: every tag form contains <input type=hidden name=action>. A
named form control clobbers the built-in HTMLFormElement.action
property (DOM clobbering), so fetch(form.action) fetched that <input>
element -> 'String([object HTMLInputElement])' -> resolved to the shop
page (200 HTML, 25.9kB) -> reportFailure, no DOM change ('closer but
nothing changes on screen').

Fix: read form.getAttribute('action') (content attribute, never
clobbered) in submitForm + doReorder; build the programmatic toggle
form with setAttribute('action', ...) instead of form.action =.
No bare form.action reads remain. product_tags.js unaffected (posts
to data-product-tags-url). node --check clean; JS-only defect fix,
no Python/template/test impact.

This closes the chain: 2.8c stale cache -> 2.8d proxy-stripped
X-Requested-With -> 2.8e clobbered form.action. Docs: mps-24.md
Phase 2.8e, CLAUDE.md DOM-clobbering note.
2026-05-16 10:32:50 -04:00
..
an-algo Price history on product pages, Fresh toggle, media type filters for ring 2026-02-11 19:22:44 -05:00
mps-0.md Add AJAX comment submission to preserve media playback 2026-02-07 11:19:58 -05:00
mps-1.md Add YouTube-style watch mode with sticky video, autoplay, and related content 2026-02-07 14:57:37 -05:00
mps-2.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
mps-3.md Isolate parallel test runs with PID-based database filenames 2026-02-09 16:24:25 -05:00
mps-4.md Add tickets MPS-4 and MPS-5 for 502 worker recycling fix 2026-02-11 10:13:52 -05:00
mps-5.md Add tickets MPS-4 and MPS-5 for 502 worker recycling fix 2026-02-11 10:13:52 -05:00
mps-6.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
mps-7.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
mps-8.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
mps-9.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
mps-10.md feat: add gift card system for shops (MPS-10 through MPS-13) 2026-03-07 15:38:40 -05:00
mps-11.md feat: add gift card system for shops (MPS-10 through MPS-13) 2026-03-07 15:38:40 -05:00
mps-12.md feat: add gift card system for shops (MPS-10 through MPS-13) 2026-03-07 15:38:40 -05:00
mps-13.md feat: add gift card system for shops (MPS-10 through MPS-13) 2026-03-07 15:38:40 -05:00
mps-14.md docs: add tickets MPS-14 (dev/stage shops), MPS-15 (free trial), MPS-16 (BYOB) 2026-03-07 17:30:05 -05:00
mps-15.md docs: add tickets MPS-14 (dev/stage shops), MPS-15 (free trial), MPS-16 (BYOB) 2026-03-07 17:30:05 -05:00
mps-16.md docs: add tickets MPS-14 (dev/stage shops), MPS-15 (free trial), MPS-16 (BYOB) 2026-03-07 17:30:05 -05:00
mps-17.md feat: REST API v1 — HMAC-signed product/content creation and file upload 2026-04-06 15:23:30 -04:00
mps-18.md docs: tickets MPS-18..21 — karaoke/torrent fixes + auction/offer proposals 2026-05-09 16:13:57 -04:00
mps-19.md docs: tickets MPS-18..21 — karaoke/torrent fixes + auction/offer proposals 2026-05-09 16:13:57 -04:00
mps-20.md docs: tickets MPS-18..21 — karaoke/torrent fixes + auction/offer proposals 2026-05-09 16:13:57 -04:00
mps-21.md docs: tickets MPS-18..21 — karaoke/torrent fixes + auction/offer proposals 2026-05-09 16:13:57 -04:00
mps-22.md MPS-22: kill-switch feature flags for karaoke + torrent 2026-05-09 16:51:24 -04:00
mps-23.md MPS-23: single warm sending identity for transactional mail 2026-05-12 11:13:11 -04:00
mps-24.md fix: MPS-24 Phase 2.8e — form.action DOM-clobbered by <input name=action> 2026-05-16 10:32:50 -04:00