make_post_sell/docs
russell@unturf.com 8e31124ca8
fix: MPS-24 Phase 2.8d — proxy-proof AJAX signal (the actual root cause)
Operator DevTools (custom domain shop.printableprompts.com) showed the
tell: bulk-tagger actions did a DOCUMENT POST -> 302 -> 200 and the
page rendered the SERVER-SIDE flash banner. That banner only survives
if the view took the non-AJAX HTTPFound branch — i.e. is_ajax() was
False: the app never saw X-Requested-With. Custom-domain shops sit
behind a Caddy reverse proxy that was not forwarding that request
header to uWSGI, so the capability-driven split ALWAYS chose 302 and
the page full-reloaded. Canonical host worked, so it looked fine.

- views/__init__.py:is_ajax() now returns True for
  X-Requested-With == XMLHttpRequest OR request param ajax=1. The param
  rides in the URL/body — no proxy strips it. Header kept for back-compat.
- tag_bulk.js (submitForm/doReorder/persistOrder FormData, fetchFocus
  URL) and product_tags.js (post helper) now send ajax=1.
- Hardened tag_bulk.js: ZERO code paths full-reload on failure anymore.
  reportFailure() surfaces HTTP status + content-type + body snippet as
  a visible banner (the old form.submit()/location fallbacks turned
  every server hiccup into 'the screen keeps refreshing' and hid the
  cause). safeInit() + window 'error' handler make a dead script
  visible (transient '✓ Tag editor interactive' proof-of-life banner)
  instead of failing silently.
- Tests: +test_ajax_param_signals_ajax_without_header,
  +test_no_ajax_signal_still_redirects,
  +test_ajax_focus_via_param_returns_json. 1134 passed.

Docs: mps-24.md Phase 2.8d, CLAUDE.md (is_ajax dual signal).
2026-05-16 10:16:37 -04:00
..
tickets fix: MPS-24 Phase 2.8d — proxy-proof AJAX signal (the actual root cause) 2026-05-16 10:16:37 -04:00
ADYEN.md Add Adyen payment integration 2025-12-22 17:16:54 -05:00
architecture.md fix: MPS-24 Phase 2.8 — bulk tagger AJAX tag-focus + real drag-to-reorder 2026-05-16 08:31:03 -04:00
auction-house.md feat: bounded SSE feeds for offer & auction state machines 2026-05-12 21:03:50 -04:00
crypto-payments-state-machine.md Update state machine documentation to use dash-separated naming 2025-10-04 13:02:07 -04:00
CRYPTO.rst Update Dogecoin blockchain size to reflect 2025 reality 2025-09-30 22:34:33 -04:00
CRYPTO_PERFORMANCE.rst Update Dogecoin blockchain size to reflect 2025 reality 2025-09-30 22:34:33 -04:00
CRYPTO_PROBLEMS.rst Fix payment UI documentation - buttons are REMOVED not disabled 2025-09-30 22:54:22 -04:00
design-system.md fix: MPS-24 Phase 2.8 — bulk tagger AJAX tag-focus + real drag-to-reorder 2026-05-16 08:31:03 -04:00
DOGECOIN.md Remove redundant Dogecoin configuration examples 2025-09-30 22:43:58 -04:00
DOGECOIN_DOOM.md Document DOGE DOOM vulnerability discovered by walkeruin 2025-10-03 20:04:22 +00:00
JAVASCRIPT.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
karaoke-ondemand.dot docs: karaoke pipeline architecture with dot diagrams 2026-03-11 17:49:57 -04:00
karaoke-ondemand.dot.svg docs: karaoke pipeline architecture with dot diagrams 2026-03-11 17:49:57 -04:00
karaoke-pipeline.dot docs: karaoke pipeline architecture with dot diagrams 2026-03-11 17:49:57 -04:00
karaoke-pipeline.dot.svg docs: karaoke pipeline architecture with dot diagrams 2026-03-11 17:49:57 -04:00
karaoke-pipeline.md docs: karaoke pipeline architecture with dot diagrams 2026-03-11 17:49:57 -04:00
make-offer.md feat: bounded SSE feeds for offer & auction state machines 2026-05-12 21:03:50 -04:00
MONERO.rst Remove database implementation details from crypto docs 2025-09-30 22:40:10 -04:00
MONERO_DOOM.rst Add comprehensive crypto payment state transition validation 2025-09-30 11:26:44 -04:00
notifications.md docs: notification system + design-system surface for offers/auctions 2026-05-14 14:49:39 -04:00
PAYPAL.md Add privacy warnings to PayPal docs, create Adyen integration doc 2025-12-22 16:11:54 -05:00
poc-cwe407.py docs: CWE-407 security section — bleach O(2^N) exposure and PoC 2026-03-29 21:19:59 -04:00
sandbox-mode.md docs: add MPS-6 through MPS-9 tickets, architecture diagram, update JS docs 2026-03-05 06:19:56 -05:00
state-machine.dot Update state machine documentation to use dash-separated naming 2025-10-04 13:02:07 -04:00
state-machine.dot.svg Update state machine documentation to use dash-separated naming 2025-10-04 13:02:07 -04:00
state-machine.png Fix DOGE fee calculation bug and improve UI consistency 2025-10-06 09:36:02 -04:00
state-machine.svg modified: Makefile 2025-09-30 15:43:54 -04:00
testing-performance.md Add comprehensive documentation for parallel test execution system 2026-01-21 12:25:41 -05:00
wordpress-import-html.dot docs: wordpress import pipeline architecture with dot diagrams 2026-03-12 11:32:47 -04:00
wordpress-import-html.dot.svg docs: wordpress import pipeline architecture with dot diagrams 2026-03-12 11:32:47 -04:00
wordpress-import-pipeline.dot docs: wordpress import pipeline architecture with dot diagrams 2026-03-12 11:32:47 -04:00
wordpress-import-pipeline.dot.svg docs: wordpress import pipeline architecture with dot diagrams 2026-03-12 11:32:47 -04:00
wordpress-import-pipeline.md docs: wordpress import pipeline architecture with dot diagrams 2026-03-12 11:32:47 -04:00