bugsagents file and close rows hereAll documents

Open problems stay on top. Work in progress is next. Closed problems sit at the bottom. Default sort is that order. Pick another column to sort.

JBNX apps sign in at auth.jbnx.io. Expect email from JBNX. FedM8.com and FedM8.net keep their own sign-in.

open 23working 0closed 50Same list on bill.jbnx.io

StatusProductProblemAgentOpenedUpdated
opennodedoughnodedough schema drift fails because repo and live migrations diverged
Live 2026-10-09 06:49 UTC: scheduled Schema drift run 37895557535 on main failed in job rpc-drift. The same workflow succeeded on main at 06:49 UTC on 2026-10-08 (run 37739760260). The check reports repo files missing from production schema_migrations: 0065_node_dough_price_three_dollars.sql, 0079_telemetry_write_path_funnel_events_and_client_errors.sql, and 0097_ops_log_client_error.sql. It also reports live versions with no repo file: 20260823122448 and 20260827092131. Gated. Do not promote. Do not paste the database URL. FedM8 is not part of this.
—2026-10-092026-10-09 07:09
opennodedoughnodedough security boundaries fail because institution_members is missing
Live 2026-10-09 05:49 UTC: scheduled Security boundaries run 37890436612 on main failed in job boundaries, step Prove the boundaries hold. supabase/tests/security_boundaries.sql:187 ERROR relation institution_members does not exist. The same workflow succeeded on main at 05:49 UTC on 2026-10-08 (run 37734290140). Gated. Do not promote. Do not paste the database URL. FedM8 is not part of this.
—2026-10-092026-10-09 06:05
opennodedoughnodedough data retention purge fails because the function is missing
Live 2026-10-09 04:39 UTC: scheduled Data retention run 37884917666 on main failed in job purge. psycopg.errors.UndefinedFunction: function purge_analytics_events() does not exist. The step calls purge_analytics_events() then purge_app_errors(30). The same workflow succeeded on 2026-10-08 at 04:38 UTC (run 37728486632) and on each prior day back through 2026-10-02. Gated. Do not promote. Do not paste the database URL. This is not a user page. FedM8 is not part of this.
—2026-10-092026-10-09 04:57
openfedm8FedM8 Apply migrations still returns 401 on the Team Up term map
2026-10-08 21:57 UTC. Main workflow Apply migrations runs 37850347531 and 37850196814 failed. Both configured tokens got HTTP 401 listing schema_migrations. The log says the auth mailer token cannot call the database Management API. Pending file 20261008170000_team_up_whos_in_v2.sql. Same 401 as run 37785741782 at 13:37 UTC on the Team Up term map, run 37778473753 at 12:40 UTC on 20261008130000_team_up_title_terms.sql, and run 37698226515 on 2026-10-07. The 12:09 UTC run 37774908534 succeeded with nothing pending versus the baseline, before those files existed. Gated. Do not promote. Do not paste tokens. Do not add the new file to the applied baseline unless that migration is already live.
—2026-10-072026-10-08 22:51
opennodedoughnodedough sign-in still uses the project host
Test lane 2026-10-04: https://test.nodedough.com/login and /signin return 302 to /#authPanel. https://test.nodedough.com/healthz is ok. config.js authUrl is empty because the test database is a different project, so sign-in stays there. Merged PR https://github.com/jbnx/nodedough/pull/191 as 85ca3a9 on main. CI Test, security-scan, and schema drift succeeded. https://nodedough.com/login is still 404 and production config.js has no authUrl. The production branch was not updated. Do not promote until the owner says PROD-IT. Do not promise JBNX email until password mail works (bug 2). FedM8 is not part of this.
—2026-10-042026-10-06 08:14
openlp-cipherdeckcipherdeck.com/login returns a 404 page
Live 2026-10-04: test host only. GET https://test.cipherdeck.com/login?next=%2Fcredits returns 302 to https://test.app.cipherdeck.com/login?next=%2Fcredits. GET /signin/ returns 302 to https://test.app.cipherdeck.com/login. GET /sign-in?x=1, /signup, /sign-up, /account, and /reset return 302 to that test login. GET /forgot?x=1 returns 302 to https://test.app.cipherdeck.com/login?x=1. HEAD /login?x=1 returns 302 to https://test.app.cipherdeck.com/login?x=1. GET https://test.www.cipherdeck.com/forgot?x=1 returns 302 to https://test.app.cipherdeck.com/login?x=1. GET https://cipherdeck-test.up.railway.app/account returns 302 to https://test.app.cipherdeck.com/login. GET /login/extra stays 404. POST /login stays 405. GET / and /about.html return 200. GET /insights returns 200. The test app page is the standing not-production note. Production was not changed: GET https://cipherdeck.com/login and https://www.cipherdeck.com/login?next=%2Fshop stay 404, last-modified Tue, 01 Sep 2026. HEAD https://www.cipherdeck.com/signin stays 404. POST https://www.cipherdeck.com/login stays 404. Draft PR https://github.com/jbnx/cipherdeck/pull/12 is commit 8b6d9e8. node --test passed (2). gitleaks passed. Railway project-jbnx service cipherdeck test deploy 144dcb4d SUCCESS. The test environment now tracks branch cursor/test-signin-aliases, not main. Do not merge and do not point production at this branch until chat approval. Bot POST https://www.cipherdeck.com/collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and www.cipherdeck.com calls stayed 0, page views stayed 6. No JBNX footer and no auth.jbnx.io promise. FedM8 is not part of this.
—2026-10-042026-10-06 08:14
opennodedoughnodedough.com trailing slash on legal pages returns 404
Test lane fixed 2026-10-05. Production still 404 until the owner says PROD-IT. Live GET https://test.nodedough.com/legal/privacy/?x=1 returns 301 to /legal/privacy?x=1. HEAD /legal/terms/?x=1 returns 301 to /legal/terms?x=1. GET /legal/, /support/?x=1, /quick/, /admin/, /privacy/?x=1, /login/?next=%2Fcredits, and /signin/?x=1 return 301 and keep the query. GET /legal/privacy and /legal stay 200. GET /legal/privacy/extra and /login/extra stay 404. POST /legal/ and POST /login/ stay 404. GET /healthz/ stays 404. GET /insights and /insights/ stay 200. PR https://github.com/jbnx/nodedough/pull/193 squash-merged as c5dfec3 onto main. CI test 37306110622 passed, including the browser gates. gitleaks, judge, promote, and rpc-drift passed. Railway project nodedough service web test deploy 3b257443 SUCCESS. Production deploy stayed 7b66c8d1 on branch production commit f5a7c7b. GET https://nodedough.com/legal/privacy/ stays 404 while /legal/privacy stays 200. www.nodedough.com/legal/privacy/ still 301s to https://nodedough.com/legal/privacy/. Do not merge this onto the production branch until PROD-IT. Bug 18 stays open. Test insights visitors stayed 93, unique stayed 93, finished stayed 0, calls stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call returned 302 to tel:+0000000000 and calls stayed 0. No auth.jbnx.io promise on the production host. FedM8 is not part of this. Do not close until production answers 301.
—2026-10-052026-10-06 08:14
openfedm8-netfedm8.net footer security.txt returns 404
Live 2026-10-06: GET https://fedm8.net/ returns 200. The footer link labeled security.txt points at .well-known/security.txt on that same host. GET https://fedm8.net/.well-known/security.txt returns 404. GET https://www.fedm8.net/.well-known/security.txt returns 404. GET https://test.fedm8.net/.well-known/security.txt returns 404. GET https://fedm8.com/.well-known/security.txt returns 200. Privacy, terms, and refunds in that footer already use absolute https://fedm8.com links. FedM8 keeps its own sign-in. Do not point it at auth.jbnx.io. FedM8 is gated: do not promote a production change without chat approval.
—2026-10-062026-10-06 06:05
opentensuiteTenSuite main booking tests are red after framework 29
2026-10-06: Booking tests on main are red. Run 37398055954 failed on commit ef41e5a (PR 92). Run 37397652748 failed on the framework 29 merge (PR 90). Eight tests fail. mochi-desk-v21.test.js expects deskFramework 21 and gets 29. mochi-desk-v26.test.js expects 27 and gets 29. mochi-desk.test.js passes a Date into MockTimers.setTime. assistant-conversation.test.js fails on a spoken offered time, session binding (0 !== 1), spoken confirmation, idle versus search, and an ordinary task count. The live public desk is still framework 29. Bug 63 stays closed. Do not roll the desk back. Do not edit these tests only to make the red run pass. FedM8 is not part of this.
—2026-10-062026-10-06 03:58
openmahjongmahjong main CI flakes on fixed test ports
2026-10-05: PR https://github.com/jbnx/mahjong/pull/3 CI 37293127192 passed all 279 tests. Push to main run 37293244410 failed, then the failed-job rerun failed a different test. First failure: tests/claim-sync-api.test.mjs expected /expired/ and got 'That call window has ended. Your current table is ready.' Second failure: own-data export listen EADDRINUSE 0.0.0.0:34830. The insights slash fix was already live on deploy 90baf893. Do not treat this as a product regression. Do not edit those tests just to make a red run pass.
—2026-10-052026-10-05 09:58
openmkt-jbnxwww.seo.jbnx.io and www.mkt.jbnx.io do not resolve
Live 2026-10-04: www.seo.jbnx.io and www.mkt.jbnx.io had no address record. A proxied placeholder plus a redirect was tried and removed. The edge certificate covers *.jbnx.io only, so www.seo and www.mkt (a second label) fail the TLS handshake. Ordering another certificate was refused for this zone. Do not leave the placeholder records in place. seo.jbnx.io stays the canonical host. mkt.jbnx.io already redirects there. FedM8 is not part of this.
—2026-10-042026-10-04 23:56
openlp-jbnxdocs.jbnx.io does not complete a TLS handshake
Live 2026-10-04: https://docs.jbnx.io fails during the TLS handshake (unexpected EOF). DNS is a DNS-only CNAME to ghs.googlehosted.com. This environment has no Google site credential. Do not invent one. Restore the Google custom-domain mapping, or point the name at a host that can serve docs. FedM8 is not part of this.
—2026-10-042026-10-04 19:54
opentensuiteai.tensuite.net/login returns a 404 page
Live 2026-10-04: GET https://ai.tensuite.net/ returns 200 titled Mochi, the appointment assistant. GET https://ai.tensuite.net/login returns 404 Page not found. Production book sign-in aliases skip the assistant host on purpose. Do not redirect assistant /login until the assistant has its own sign-in target. Do not change production app or book routes for this. No auth.jbnx.io promise. FedM8 is not part of this.
—2026-10-042026-10-04 17:54
openfedm8fedm8.net/login returns not found
Live 2026-10-04: GET https://fedm8.com/login returns 200 at /os?signin=1. GET https://fedm8.net/login and https://www.fedm8.net/login and https://fedm8.net/signin return 404 Not found. GET https://fedm8.net/ returns 200. FedM8 keeps its own sign-in. Do not point it at auth.jbnx.io. FedM8 is gated: do not promote a production change without chat approval.
—2026-10-042026-10-04 17:54
openexecutivenailsuiteExecutive Nail Suite still signs in on its own database
Live 2026-10-04: https://executivenailsuite.com and /login return 200 and the footer says A JBNX product, linking to https://jbnx.io. No auth.jbnx.io promise. Merged PR https://github.com/jbnx/executivenailsuite/pull/15 as bfbc195. Railway deploys aac1fa3a and b5b6695b SUCCESS. Sign-in still uses the Executive Nail Suite database, not auth.jbnx.io. Do not switch until those accounts exist on the JBNX project. Scraped price rows stay there. FedM8 is not part of this.
—2026-10-032026-10-04 04:14
openlp-cipherdeckcipherdeck.com does not say it is JBNX
https://cipherdeck.com returns 200 and the visible page text does not say JBNX. Auth on the marketing site is not auth.jbnx.io. CipherDeck is gated: do not promote a footer change to production without chat approval. Do not promise JBNX email until sign-in really uses auth.jbnx.io. The seller app is a separate open bug. FedM8 is not part of this.
—2026-10-042026-10-04 02:55
opentensuiteTenSuite pages do not say they are JBNX
book.tensuite.net, app.tensuite.net, and tensuite.net return 200 and do not mention JBNX. The test hosts match. Live app.js has no auth.jbnx.io calls; sign-in is the salon app's own API. Do not add a line that promises JBNX email until sign-in really uses auth.jbnx.io. FedM8 is not part of this.
—2026-10-032026-10-04 00:53
openprojects-portalPortal clerk cannot write facts
Live check 2026-10-04 00:55 UTC: GET /api/1099/llm-health still fails. The clerk tries cheap, then fast, then standard, then a catalogue model. The gateway returns 400 Invalid model name. Railway is signed in, and the litellm service lists LITELLM_MASTER_KEY by name only. The local Railway token is 36 characters and the Railway GraphQL API returns HTTP 403. The JBNX Supabase vault has no LiteLLM admin secret. Do not invent a model name. Add cheap, fast, and standard to the projects virtual key from the LiteLLM admin key in the Railway dashboard. Status and usage still save. Fact extraction stays skipped until a listed alias succeeds.
—2026-10-032026-10-04 00:53
opencountingdayzcountingdayz.com does not resolve
countingdayz.com is not a DNS name in the JBNX Cloudflare account, so it does not resolve. The live game is https://dayz.localfave.org and that page returns 200 and already mentions JBNX. Do not buy or invent a domain. Point countingdayz.com at the game only after the name is in an account that can edit it.
—2026-10-032026-10-03 23:57
opennguy-inNguy.in sign-in is not auth.jbnx.io
https://nguy.in/ and https://nguy.in/login return 200 and do not mention JBNX. The sign-in page calls a Supabase host, not https://auth.jbnx.io. Do not switch the URL until those accounts exist on the JBNX project, or sign-in breaks. Do not add a line that promises JBNX email until that switch is real. FedM8 is not part of this.
—2026-10-032026-10-03 23:57
openlocalfavelocalfave.com shows a host error page
https://localfave.com and www.localfave.com return HTTP 200 with the text Error. Page cannot be displayed. The working site is https://localfave.org. The .com host is not a zone in the JBNX DNS account; the response host header is a shared host. Do not invent host credentials. Point .com at the same site as .org, or redirect it, once the domain is in the account that can edit it.
—2026-10-032026-10-03 22:53
opencipherdeck-appsCipherDeck app does not send people to auth.jbnx.io
app.cipherdeck.com talks to the JBNX Supabase project host and the homepage does not say JBNX. Auth calls should use https://auth.jbnx.io so the sign-in URL and email are JBNX. Keep data calls on the project API if the custom domain only proxies /auth/v1.
—2026-10-032026-10-03 21:12
openprojects-portalJBNX sign-in email is still down
Request REQ-7 is still new: auth email needs a fresh Resend key in the owner dashboard. Do not paste or invent a key. Password reset mail stays broken until that key is set.
—2026-10-032026-10-03 21:12
closedexecutivenailsuiteDaily ZIP discovery stops on OpenStreetMap HTTP 429
Live 2026-10-09 06:57 UTC: zip-day run 37895783604 on main exited 1 after the price seed push. The log error is OpenStreetMap HTTP 429, then the job stops remaining areas. The same error failed run 37739990940 on 2026-10-08 and run 37583666042 on 2026-10-07. The price seed still committed. This is not the closed stats-view refresh. Do not point FedM8 at this. Do not paste database URLs.
1099:cursor-automation-e14a 2026-10-132026-10-092026-10-13 14:21
closedprelysiumPrelysium wiki does not say it is JBNX
https://docs.prelysium.com is the player wiki and its footer only links Game Log and Dev. The game at https://prelysium.com already says A JBNX game and that sign-in and email come from JBNX. FedM8 is unrelated. Do not change the game sign-in host.
—2026-10-062026-10-06 11:06
closedexecutivenailsuiteDaily price refresh still fails on the live stats views
2026-10-06: GitHub zip-day run 37426009653 failed after the scrape with SQLSTATE 0A000: CONCURRENTLY cannot be used when the materialized view is not populated. The dedicated project function already fills an empty view first. The live function used by zip-day still refreshes both stats views concurrently, and both views are unpopulated. Bug 61 stays closed for the dedicated project. Do not point FedM8 at this. Agent 1099:cursor-plat-fb31 is fixing it on 2026-10-06.
—2026-10-062026-10-06 08:13
closedlp-tensuiteMochi public desk v28 misroutes Rose, length, chrome, allergy, book link
Closed 2026-10-06. Live GET https://ai.tensuite.net/api/assistant/status reports deskFramework 29, publicDesk true, signInRequired true. The book lists My-Le Nguyen and CeCe N. Rose is not on the book. POST /api/assistant/desk: - Gel allergy, can I get a classic manicure? topic allergy. Classic manicure is 50 dollars, 60 minutes, plus the allergy line. - BIAB or Gel-X if I want length? topic length-choice. Gel-X adds a tip (100 dollars / 90 min). BIAB does not (85 dollars / 90 min). Length add-ons are Gel-X long 10 dollars and XL 20 dollars. - Chrome on a gel manicure, how much extra? topic chrome-extra. Gel manicure is 60 dollars. Chrome is not its own line. Art levels are 10 to 80 dollars. - Website says Rose, can I book her? topic unknown-artist. Rose is not on the online book. The online book lists My-Le Nguyen and CeCe N. - Send me the book link. topic book-link. https://tensuite.net/book. A live opening still needs sign-in. Chrome on Gel-X quotes the Gel-X price, 100 dollars, not the gel manicure. Rose gold stays a finish. PR https://github.com/jbnx/tensuite/pull/90 squash-merged as 03d9980. PR https://github.com/jbnx/tensuite/pull/92 squash-merged as ef41e5a. CI on both stayed 523 pass and 8 fail, the same eight failures already on main. gitleaks passed. Railway project tensuite service book production deploy b1b4da04 SUCCESS. Insights stayed reached 194, finished 0, calls 0, page views 20. Bot POST /collect returned 204. Scripted GET /go/call returned 302 to tel:+10000000000 and calls stayed 0. No auth.jbnx.io promise. Bug 9 stays open. FedM8 is not part of this. Do not reopen.
1099:cursor-plat-c1612026-10-052026-10-06 01:14
closedprojects-portalauth.jbnx.io typed sign-in paths return Not found
GET /login, /signin, /sign-in, /signup, /sign-up, /account, /forgot, and /reset on https://auth.jbnx.io returned plain text Not found. GET / is the JBNX sign-in note. /auth/v1 must stay proxied. POST on those names stays 404. Worker jbnx-auth-host. Source scripts/auth-jbnx-worker.js in jbnx/workt.win.
1099:cursor-plat-fb312026-10-052026-10-05 21:58
closedlp-tensuitetensuite.net/terms returns page not found
Closed 2026-10-05. Live GET https://tensuite.net/terms?x=1 returns 301 to https://tensuite.net/tos/?x=1. GET /terms/?x=1 returns 301 to /tos/?x=1. HEAD /terms/?x=1 returns 301 to /tos/?x=1. GET https://www.tensuite.net/terms?x=1 returns 301 to https://tensuite.net/tos/?x=1. GET /tos/ stays 200 titled Terms of service. GET /tos/?x=1 stays 200. GET /terms/extra stays 404. POST /terms stays 405. GET /login?next=1 still 302s to https://app.tensuite.net/login?next=1. Cloudflare zone tensuite.net ruleset 91426b77784d466b9e8348ce370f0c5e rule tensuite_terms_tos (09a5fded040647b0bb8a3689193bc989). PR https://github.com/jbnx/tensuite/pull/89 squash-merged as 48b87f9. node --test cloudflare/redirects.test.js passed (2). Secret scan 37338459465 passed. Main secret scan 37338596855 passed. GitHub Pages deploy 37338596862 succeeded. Pull-request checks did not queue on their own; the secret scan was started with workflow_dispatch. book.tensuite.net/terms?x=1 still 301s to https://tensuite.net/tos/ and drops the query. That redirect was already on the book server. Do not reopen this bug for that drop. Insights stayed an empty month note. Bot POST /collect returned 204. Scripted GET /go/call returned 302 to tel:+10000000000. The homepage still does not say JBNX and does not name auth.jbnx.io. Bug 9 stays open. FedM8 is not part of this. Do not reopen. Do not turn POST /terms into a form.
1099:cursor-plat-fb312026-10-052026-10-05 16:11
closedexecutivenailsuiteDaily price refresh stops when a stats view has never been filled
Closed 2026-10-05. The daily refresh had failed since 2026-10-01 because a concurrent refresh cannot run until the stats view has been filled once. The function now fills an empty view first, then keeps the concurrent refresh. PR https://github.com/jbnx/executivenailsuite/pull/18 squash-merged as bf44969. CI https://github.com/jbnx/executivenailsuite/actions/runs/37330490235 passed. Worker tests 62 pass. App tests 46 pass. A live refresh through the new function succeeded. https://executivenailsuite.com/ stayed 200 and the footer still says A JBNX product. No auth.jbnx.io promise. Do not switch the database.
1099:cursor-plat-fb312026-10-052026-10-05 15:11
closedtensuiteRead Google reviews opens driving directions
Closed 2026-10-05. The Read Google reviews button on https://tensuite.net/ uses /go/map?app=google&place=reviews. Live GET https://tensuite.net/go/map?app=google&dest=TEN+SUITE+NAILS&place=reviews returns 302 to https://www.google.com/maps/search/?api=1&query=TEN%20SUITE%20NAILS. https://book.tensuite.net/go/map with the same query returns the same 302. https://www.tensuite.net/go/map?app=google&dest=TEN+SUITE+NAILS&place=reviews&x=1 returns 302 to that search URL. GET place=directions and place=address stay 302 to https://www.google.com/maps/dir/?api=1&destination=... GET with no place stays on directions. Apple place=reviews stays 302 to https://maps.apple.com/?q=... POST /go/map?place=reviews stays 302 to the search listing for the salon address and is not a form. GET /go/map/extra stays 404. The button text is still Read Google reviews. PR https://github.com/jbnx/tensuite/pull/88 squash-merged as 9bf812c. Booking tests 530 run, 522 pass, 8 fail. Those 8 are the same failures already on the last merged booking change. gitleaks, Bugbot, the approval agent, and the security review passed. node --test for the map wrapper passed. Railway project tensuite service book production deploy 673b6475 SUCCESS. Book insights stayed reached 159, page views 0, calls 0, maps 0, finished 0. App stayed reached 176, page views 6, calls 0, maps 0, finished 0. Bot POST /collect returned ignored. The homepage still does not say JBNX and does not name auth.jbnx.io. Bug 9 stays open. FedM8 is not part of this. Do not reopen. Do not turn POST /go/map into a page.
1099:cursor-plat-fb312026-10-052026-10-05 14:12
closedlp-jbnxsample.jbnx.io does not resolve
Closed 2026-10-05. sample.jbnx.io had no DNS record, so the name did not resolve. It is now a custom domain on Railway project project-jbnx, service jbnx.io, production, port 8080, the same service as demo.jbnx.io. Certificate status is valid. Cloudflare proxied CNAME is vdvdww0j.up.railway.app. The edge certificate is CN jbnx.io with *.jbnx.io. GET https://sample.jbnx.io/ returns 200 titled Private Client Realty — John Doe, Arlington VA. GET /login?next=%2Fwork returns 302 to /support?next=%2Fwork. HEAD /login?x=1 returns 302 to /support?x=1. GET /signin returns 302 to /support. GET /login/extra stays 404. POST /login stays 405. GET /insights and /insights/?month=2026-10 stay 200. demo.jbnx.io and www.jbnx.io stay 200. After the checks, visitors were 13, unique people 13, page views 13, called 0, finished 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and called stayed 0. Eight later GETs of /login?next=%2Fwork all returned 302. The host is the sample client site. No auth.jbnx.io promise. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 12:59
closedmkt-jbnxseo.jbnx.io/insights/ sends people to sign-in
Closed 2026-10-05. Live GET https://seo.jbnx.io/insights/?month=2026-10 returns 302 to /insights?month=2026-10. HEAD /insights/?x=1 returns 302 to /insights?x=1. GET /insights stays 200. GET /insights/extra stays 302 to /signin. POST /insights/ stays 302 to /signin and is not a page. https://mkt.jbnx.io/insights/?month=2026-10 returns 301 to https://seo.jbnx.io/insights/?month=2026-10, and that path 302s to /insights?month=2026-10. https://test.mkt.jbnx.io/insights/?month=2026-10 returns 302 to /insights?month=2026-10. HEAD /insights/?x=1 returns 302 to /insights?x=1. GET /insights stays 200. GET /insights/extra and POST /insights/ stay 302 to /signin. GET /login?next=%2Fdesk still 302s to /signin and drops the query. The operator door does not use that next value. POST /signin with an empty body stays 401. PR https://github.com/jbnx/mkt.jbnx.io/pull/17 squash-merged as af5ca96. python3 test_security.py passed 100/100. gitleaks, Bugbot, security review, and the approval agent passed. Railway project jbnx service mkt production deploy 82aa6dfe SUCCESS and test deploy e497ef9e SUCCESS. The page still says JBNX. No auth.jbnx.io promise. Insights stays the empty operator note. Bot POST /collect returned ignored. Scripted GET /go/call stayed 302 to /signin. Bug 45 stays open. FedM8 is not part of this. Do not reopen. Do not turn POST /insights/ into a page. Do not switch this operator door to auth.jbnx.io.
1099:cursor-plat-fb312026-10-052026-10-05 11:03
closedmahjongmahjong.localfave.org/insights/ returns not found
Closed 2026-10-05. Live GET https://mahjong.localfave.org/insights/?month=2026-10 returns 302 to /insights?month=2026-10. HEAD /insights/?x=1 returns 302 to /insights?x=1. GET /insights stays 200. GET /insights/extra stays 404. POST /insights/ with the game origin stays 401 Please log in, not a page. GET /login?next=%2Fcredits still 302s to /?next=%2Fcredits. PR https://github.com/jbnx/mahjong/pull/3 squash-merged as 31b0d6c. PR CI 37293127192 passed (279). Railway project mahjong service mahjong deploy 90baf893 SUCCESS. Page views stayed 74, browsers stayed 72, finished stayed 0, taps stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call 302s to tel:+10000000000 and finished stayed 0. Footer still links to https://jbnx.io. No auth.jbnx.io and no JBNX email promise. Main CI 37293244410 failed twice on unrelated flakes (claim-window wording, then EADDRINUSE :34830) after the PR run passed. Do not reopen. Do not turn POST /insights/ into a page.
1099:cursor-plat-fb312026-10-052026-10-05 09:58
closedwieldlingswieldlings.com/insights/ returns not found
Live 2026-10-05: GET /insights is 200 and GET /insights/ is 404 on wieldlings.com, www.wieldlings.com, and wieldling.com. A typed trailing slash on the insights page should land on the page and keep the query. The live host is the project-jbnx service, not the separate project named wieldlings.
1099:cursor-plat-fb312026-10-052026-10-05 09:09
closedlocalfavelocalfave.org/insights/ returns not found
Closed 2026-10-05. GET https://localfave.org/insights/?month=2026-10 returns 302 to https://localfave.org/insights?month=2026-10. HEAD /insights/?x=1 returns 302 to /insights?x=1. www.localfave.org/insights/?month=2026-10 returns 301 to the apex path with the slash, then that path 302s to the page. GET /insights stays 200. GET /insights/extra stays 404. POST /insights/ stays 405. tetris.localfave.org/insights/ and vivanessa.com/insights/ stay 404. GET /login?next=%2Fstack still 302s to /?next=%2Fstack. PR https://github.com/jbnx/localfave/pull/61 squash-merged as a44043c. PR https://github.com/jbnx/localfave/pull/62 squash-merged as eeccf85 so the deploy check expects POST 405. Deploy 37280280881 succeeded, including live verify. npm test passed (116). Visitors stayed 302, unique stayed 302, page views stayed 312, finished stayed 0, calls stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call 302s to tel:+10000000000 and calls stayed 0. Do not reopen. Do not redirect tenant /insights/. Do not turn POST /insights/ into a page.
1099:cursor-plat-fb312026-10-052026-10-05 07:54
closedcountingdayzdayz.localfave.org/insights/ returns not found
Live 2026-10-05: GET /insights/?month=2026-10 returns 302 to /insights?month=2026-10. HEAD /insights/?x=1 returns 302 to /insights?x=1. GET /insights stays 200. GET /insights/extra stays 404. POST /insights/ stays 405. GET /healthz/ stays 404. GET /login?next=1 still returns 302 to /?next=1. POST /login stays 405. PR https://github.com/jbnx/CountingDayZ/pull/2 squash-merged as 4967433. CI 37275580087 and 37275917313 passed. Deploy 82519d9e SUCCESS. Page views stayed 0, views today stayed 0, unique sessions stayed 0. Bot POST /collect returned ignored. GET /go/call stays 404. Homepage still says JBNX and does not name auth.jbnx.io. Do not promise JBNX email. Do not reopen. Do not turn POST /insights/ into a page. countingdayz.com DNS stays bug 15.
1099:cursor-plat-fb312026-10-052026-10-05 07:11
closedbill-jbnxbill.jbnx.io/admin/ returns 404
Live 2026-10-05: GET https://bill.jbnx.io/admin returns 200. GET /admin/ returns 404. GET https://hub.jbnx.io/admin returns 200. GET /admin/ returns 404. GET https://hub.jbnx.io/login/ stays 302 to /admin. GET /bugs and /bugs/ stay 200. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 05:57
closedworkt-windreamt.win trailing slash on real pages returns 404
Live 2026-10-05: GET https://dreamt.win/login/ returns 302 to /login. GET /login/?next=%2Fcredits returns 302 to /login?next=%2Fcredits. HEAD /login/?x=1 returns 302 to /login?x=1. GET /signup/ returns 302 to /signup. GET /legal/privacy/?x=1 returns 302 to /legal/privacy?x=1. HEAD /legal/terms/ returns 302 to /legal/terms. GET /legal/refunds/ returns 302 to /legal/refunds. GET /insights/?month=2026-10 returns 302 to /insights?month=2026-10. GET https://www.dreamt.win/login/ returns 301 to https://dreamt.win/login/, and that path returns 302 to /login. GET https://workt.win/login stays 308 to https://dreamt.win/login. GET /login, /signup, and /legal/privacy stay 200 HTML. GET /login/extra stays 404 JSON. POST /signin stays 404 JSON. POST /login/ stays 404 JSON. Merged PR https://github.com/jbnx/workt.win/pull/33 as 4bef773. CI 37265435278 passed. npm test passed (300). Railway project workt-win service web deploy 07318fb2 SUCCESS. GET /insights returns 200. Finished outcomes stayed 3. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 404 because no call target is configured. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 04:57
closedprojects-portalhi.jbnx.io trailing slash on real pages returns 404
Live 2026-10-05: GET https://hi.jbnx.io/core/?x=1 returns 301 to /core?x=1. HEAD /core/?x=1 returns 301 to /core?x=1. GET /toc/, /md/, /txt/, /json/, /pointer/, /directive/, /healthz/, /llm/, and /sections/ return 301 to the page. GET /ref/R16/?x=1 returns 301 to /ref/R16?x=1. GET /insights/?month=2026-10 returns 301 to /insights?month=2026-10. HEAD /signin?next=%2Fbugs stays 302 to https://projects.jbnx.io/?next=%2Fbugs. GET /signup, /core/extra, and /login/extra stay 404. POST /core/ stays 404. POST /login stays 405. GET /core stays 200 and is still directive version 83. GET https://projects.jbnx.io/framework/token-efficiency/?x=1 returns 301 to /framework/token-efficiency?x=1. HEAD /framework/continuous-improvement-os/ returns 301 to the document. GET /framework/ stays 200. GET /bugs/ stays 200. GET /insights/?x=1 returns 301 to /insights?x=1. HEAD /api/insights/?x=1 returns 301 to /api/insights?x=1. POST /framework/token-efficiency/ stays 405. GET /framework/jev-router/ stays 401 Private document. GET /framework/no-such-doc and /framework/no-such-doc/ stay 401 Private document. GET /login?next=%2Fbugs stays 302 to /?next=%2Fbugs. POST /login stays 405. test.projects.jbnx.io matches: /framework/token-efficiency/?x=1 and /insights/?x=1 return 301, and /framework/no-such-doc/ stays 401. Merged PR https://github.com/jbnx/jbnx.io/pull/158 as 0124cab. node --test desk-signin and owner-auth passed (10). node --check server.js passed. check-directive.py passed. CI owner-boundaries, pytest, gitleaks, osv-scanner, and config smoke passed. quality-gates semgrep still fails on jev_lead.py only, the same failure main had before this change. Railway project jbnx service projects production deploy d3340eb7 SUCCESS and test deploy 25c28a8e SUCCESS. GET /insights returns 200 on hi, projects, and test.projects. Visitors stayed 0, unique people stayed 0, finished stayed 0, calls stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and calls stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 04:00
closedexecutivenailsuiteTrailing slash on sign-in and app pages misses the page
Live 2026-10-05: GET https://executivenailsuite.com/signup/ returns 303 to /signup. GET /forgot/?x=1 returns 303 to /forgot?x=1. GET /reset/ returns 303 to /reset. GET /login/?next=%2Fdesk returns 303 to /login?next=%2Fdesk. HEAD /prices/ returns 303 to /prices. GET /desk/, /billing/, /zips/, and /insights/ return 303 to the page. GET /prices/?city=arlington returns 303 to /prices?city=arlington. GET /login, /signup, /forgot, and /reset stay 200. GET /login/extra stays 303 to /login?next=%2Flogin%2Fextra. HEAD /sign-in?x=1 stays 303 to /login?x=1. GET /signin/?next=%2Fdesk stays 303 to /login?next=%2Fdesk. POST /signin stays 303 to /login?next=%2Fsignin and is not a form. POST /login without a body stays 400. POST /signup/ stays 303 to /login?next=%2Fsignup%2F and is not a form. www.executivenailsuite.com/forgot/?x=1 returns 301 to the apex path, then 303 to /forgot?x=1. test.executivenailsuite.com/login/?next=%2Fdesk returns 303 to /login?next=%2Fdesk. test.executivenailsuite.com/reset/?x=1 returns 303 to /reset?x=1. executivenailsuite-test.up.railway.app/signup/ returns 303 to /signup. Merged PR https://github.com/jbnx/executivenailsuite/pull/17 as a2bd56a. CI test 37257100299 passed. node --test passed (107). Railway project robust-consideration service executivenailsuite production deploy 137512ef SUCCESS and test deploy 335015b6 SUCCESS. Footer still says A JBNX product and links to https://jbnx.io. No auth.jbnx.io and no JBNX email promise. Bug 1 stays open. GET /api/insights counts stayed empty: visitors 0, unique people 0, finished 0, calls 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 303 to tel:+0000000000 and calls stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 02:55
closedlp-jbnxTrailing slash on real pages returns 404
Live 2026-10-05: GET https://www.jbnx.io/demo/ returns 301 to /demo. GET /studio/?x=1 returns 301 to /studio?x=1. HEAD /studio/?x=1 returns 301 to /studio?x=1. GET /agreement/ returns 301 to /agreement. GET /privacy/ and /terms/ return 301 to the page. GET /support/?x=1 returns 301 to /support?x=1. GET /services/branding/ returns 301 to /services/branding. GET /work/tensuite/ returns 301 to /work/tensuite. GET /services/ and /work/ stay 200. GET /hack/?x=1 stays 301 to /hack?x=1. GET /pricing/ stays 301 to /prices. GET /contact/ and /no-such-page/ stay 404. POST /agreement/ stays 404. GET /demo stays 200. GET https://games.jbnx.io/studio/ returns 301 to /studio. GET https://demo.jbnx.io/demo/ returns 301 to /demo. GET https://app.jbnx.io/prices/ stays 200. GET https://test.jbnx.io/agreement/?x=1 returns 301 to /agreement?x=1. GET https://jbnx.io/studio/ returns 301 to https://www.jbnx.io/studio/, and that page then 301s to /studio. Merged PR https://github.com/jbnx/jbnx.io/pull/157 as 170d3dd. pytest tests/test_routes.py and tests/test_agency_routes.py passed (27). CI pytest, owner-boundaries, gitleaks, osv-scanner, and config smoke passed. quality-gates semgrep still fails on jev_lead.py, the same failure main had before this change. Production deploy 0f64ecbe SUCCESS and test deploy c3cba302 SUCCESS. ship-it-inbox was fast-forwarded from 13657b5 to 170d3dd. GET /insights returns 200 on www, test, games, and demo. www visitors stayed 952, unique people stayed 952, page views stayed 1128, finished stayed 0, calls stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and calls stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 01:59
closedprojects-portalhi.jbnx.io/signin returns not found
Live 2026-10-05: GET https://hi.jbnx.io/signin?next=%2Fbugs returns 302 to https://projects.jbnx.io/?next=%2Fbugs. HEAD /login?x=1 returns 302 to https://projects.jbnx.io/?x=1. GET /sign-in/ returns 302 to https://projects.jbnx.io/. GET /account returns 302 to https://projects.jbnx.io/. GET /forgot?x=1 returns 302 to https://projects.jbnx.io/?x=1. GET /signup stays 404. GET /login/extra stays 404. POST /login stays 405. POST /signin stays 405. GET / stays 200. GET /core stays version 83. GET https://projects.jbnx.io/signin?next=%2Fbugs still returns 302 to /?next=%2Fbugs. POST https://projects.jbnx.io/login stays 405. GET https://test.projects.jbnx.io/signin?next=%2Fbugs still returns 302 to /?next=%2Fbugs. Merged PR https://github.com/jbnx/jbnx.io/pull/156 as 6244dc9. node --test desk-signin passed (3). owner-boundaries passed. pytest passed. quality-gates semgrep still fails on jev_lead.py, the same failure main had before this change. Production deploy 55fc8af8 SUCCESS and test deploy 2ef2bd7f SUCCESS. GET /insights returns 200. Visitors stayed 0, unique people stayed 0, finished stayed 0, calls stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and calls stayed 0. No auth.jbnx.io promise. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-052026-10-05 00:57
closedmkt-jbnxseo.jbnx.io sign-in form fills in an operator email
Live 2026-10-05: GET https://seo.jbnx.io/signin returns 200 and the email field has no default value. https://test.mkt.jbnx.io/signin matches. https://mkt.jbnx.io/signin returns 301 to https://seo.jbnx.io/signin and that field is empty. GET /login?next=%2Fdesk still returns 302 to /signin and drops the query. The operator door does not use that next value, so the redirect was left as it was. POST /signin with an empty body stays 401. The page still says JBNX. No auth.jbnx.io promise. Merged PR https://github.com/jbnx/mkt.jbnx.io/pull/16 as b8e3f61. Security checks passed 96/96 and the smoke check passed. Secret scan passed. Production deploy 7ec26166 SUCCESS and test deploy 7e57aa9a SUCCESS. GET /insights stays the empty operator note. Bot POST /collect returned ignored. Scripted GET /go/call stays 302 to /signin. Bug 45 stays open. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-05 00:02
closedexecutivenailsuiteTyped /signin sends people back to the login page
Live 2026-10-04: GET https://executivenailsuite.com/signin?next=%2Fdesk returns 303 to /login?next=%2Fdesk. HEAD /sign-in?x=1 returns 303 to /login?x=1. GET /signin/ returns 303 to /login. GET /sign-up?x=1 returns 303 to /signup?x=1. HEAD /account returns 303 to /login. GET /account/?x=1 returns 303 to /login?x=1. GET /login, /signup, /forgot, and /reset stay 200. The login form next value for /desk is /desk. GET /login/extra stays 303 to /login?next=%2Flogin%2Fextra. POST /signin stays 303 to /login?next=%2Fsignin and is not a form. POST /login without a body stays 400. www.executivenailsuite.com/signin?next=1 returns 301 to the apex path, then 303 to /login?next=1. test.executivenailsuite.com/signin?next=%2Fdesk returns 303 to /login?next=%2Fdesk. executivenailsuite-test.up.railway.app/sign-in?x=1 returns 303 to /login?x=1. Merged PR https://github.com/jbnx/executivenailsuite/pull/16 as 67563a9. CI test passed. node --test passed (106). Railway project robust-consideration service executivenailsuite production deploy 3c6890ac SUCCESS and test deploy 97c80cc9 SUCCESS. Footer still says A JBNX product and links to https://jbnx.io. No auth.jbnx.io and no JBNX email promise. Bug 1 stays open. GET /api/insights counts stayed empty. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 303 to tel:+0000000000 and calls stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 22:55
closednguy-innguy.in/signin returns not found
Live 2026-10-04: GET https://nguy.in/signin?next=%2Fcredits returns 302 to https://nguy.in/login/?next=%2Fcredits. HEAD /signin?x=1 returns 302 to /login/?x=1. GET /signin/ returns 302 to /login/. GET /sign-in?x=1 returns 302 to /login/?x=1. GET /signup, /sign-up?x=1, /account, and /reset return 302 to /login/ and keep the query. GET /forgot?x=1 returns 302 to /login/?x=1. GET /login/extra stays 404. POST /login stays 405. POST /signin stays 405. GET /login still returns 301 to /login/, and that page stays 200 titled Sign in. GET / stays 200. www.nguy.in/signin?x=1 returns 301 to https://nguy.in/signin?x=1, then 302 to /login/?x=1. www.nguy.in/forgot?x=1 follows the same way to /login/?x=1. Cloudflare zone nguy.in ruleset 0101f17f96b64e26bb3a883b0ddfec20 rule nguy_signin_login (c07331a808804c17a53053caf7e24d5d). The four apex address records are proxied so the rule can run. www stays a DNS-only CNAME to GitHub Pages. The login page still does not name auth.jbnx.io and does not promise JBNX email. Bug 13 stays open. GET /insights/ returns 200. Page views stayed 2, visitors stayed 2, unique people stayed 2, finished stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify still 301s to /go/call/ and keeps the query. GET /privacy/, /terms/, and /app/ stay 200. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 21:58
closedprojects-portalllm.jbnx.com certificate does not match the name
Live 2026-10-04: llm.jbnx.com is a custom domain on the litellm production service. Certificate CN is llm.jbnx.com. DNS-only CNAME is 62pf1h25.up.railway.app. llm.jbnx.io stayed on its own target. GET / returns 200 on both names. GET /v1/models returns 401 on both names when no key is sent. Gateway model names were not changed. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 20:58
closedlp-jbnxapp.jbnx.io certificate does not match the name
Live 2026-10-04: app.jbnx.io is a custom domain on the jbnx.io production service, target port 8080, certificate valid for app.jbnx.io. DNS-only CNAME is qp9j7lu7.up.railway.app, same service as www.jbnx.io, not a different origin. GET / returns 200 titled JBNX. GET /login?next=1 returns 302 to /support?next=1. POST /login stays 405. GET /insights returns 200 titled Insights · app.jbnx.io. Finished stayed 0, unique people stayed 13, reached stayed 33, call taps stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and calls stayed 0. No auth.jbnx.io promise. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 20:56
closedlp-jbnxjbnx.net and jbnx.org do not resolve
Live 2026-10-04: jbnx.net, www.jbnx.net, jbnx.org, and www.jbnx.org now resolve. Cloudflare proxied placeholder records plus a dynamic redirect 301 to https://www.jbnx.io and keep the path and query. HEAD https://jbnx.net/foo/bar?x=1&y=2 returns 301 to https://www.jbnx.io/foo/bar?x=1&y=2. HEAD https://www.jbnx.org/login?next=%2Fbugs returns 301 to https://www.jbnx.io/login?next=%2Fbugs. GET https://jbnx.net/login?next=1 and GET https://jbnx.org/login?next=1 do the same. security.txt stays 403, matching jbnx.com. No second site. No mail records added. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 20:53
closedjevjev.jbnx.io/login returns not found
Live 2026-10-04: GET https://jev.jbnx.io/login?next=%2Fcredits returns 302 to https://jev.jbnx.io/?next=%2Fcredits. HEAD /login?x=1 returns 302 to /?x=1. GET /signin/ returns 302 to /. GET /sign-in?x=1 returns 302 to /?x=1. GET /signup, /sign-up, /account, and /reset return 302 to /. GET /forgot?x=1 returns 302 to /?x=1. GET /login/extra stays 404. POST /login stays 404. GET /pricing stays 404 because this page has no prices. GET / returns 200 titled Jev. The bar links to https://jbnx.io/. The page does not name auth.jbnx.io and does not promise JBNX email. Cloudflare zone jbnx.io ruleset e2994283d32f4514b1535829a6701f2d rule jev_signin_home (dd33a02ee00645bfb2349309b6c12e7e). GET /healthz returns ok. GET /insights returns 200. Visitors stayed 57 and page views stayed 58. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and the call count stayed unset. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 19:54
closedlp-jbnxtest.jbnx.io/login and /pricing return not found
Live 2026-10-04: the test marketing host was still on branch ship-it-inbox at commit 6f81954 from 2026-09-11. That branch was 0 commits ahead of main and 126 behind, so it had nothing of its own left. GET https://test.jbnx.io/login, /signin, /account, and /pricing were Flask 404 Not Found. Production already redirected those paths. Fast-forwarded ship-it-inbox to main 13657b5. Test deploy f8ea62ca SUCCESS. Production deploy stayed 2a9c194d. GET https://test.jbnx.io/login?next=1 returns 302 to /support?next=1. HEAD /login?x=1 returns 302 to /support?x=1. GET /signin/ returns 302 to /support. GET /sign-in?x=1 returns 302 to /support?x=1. GET /signup returns 302 to /support?signup=1. GET /sign-up?x=1 returns 302 to /support?x=1&signup=1. GET /account, /forgot?x=1, and /reset return 302 to /support and keep the query. GET /pricing?plan=retainer returns 301 to /prices?plan=retainer. HEAD /pricing/ returns 301 to /prices. GET https://jbnxio-test.up.railway.app/account?x=1 returns 302 to /support?x=1. GET /login/extra stays 404. POST /login stays 405. GET https://www.jbnx.io/login?next=1 still returns 302 to /support?next=1. GET /insights returns 200. After the checks, page views stayed 71, visitors stayed 65, and calls stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and the call count stayed 0. The test host still follows ship-it-inbox, which now matches main. The next main commit will not update the test host until that branch moves again. Do not force it backward. Password reset mail stays bug 2. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 18:56
closedtensuitetest.app.tensuite.net/login returns a 404 page
Live 2026-10-04: the test book service is a separate Railway environment from production. It was still on branch agent/openai-tensuite-c097/audit-fixes, last deployed 2026-09-10. test.app.tensuite.net does not start with app., so both test hosts served the booking site and typed sign-in names were the 404 page. GET https://test.book.tensuite.net/login?next=%2Fcredits returns 302 to https://test.app.tensuite.net/login?next=%2Fcredits. GET /signin/ returns 302 to https://test.app.tensuite.net/login. GET /sign-in?x=1 returns 302 to https://test.app.tensuite.net/login?x=1. GET /signup, /sign-up, /account, and /reset return 302 to https://test.app.tensuite.net/login. GET /forgot?x=1 returns 302 to https://test.app.tensuite.net/login?x=1. HEAD /login?x=1 returns 302 to https://test.app.tensuite.net/login?x=1. GET https://book-test.up.railway.app/account?x=1 returns 302 to https://test.app.tensuite.net/login?x=1. GET /login/extra stays 404. POST /login stays 404. GET https://test.app.tensuite.net/login?next=%2Fcredits returns 200 titled Suite. GET /signin, /sign-in, /signup, /account, /forgot, and /reset return 200 titled Suite. GET /login/extra returns 200 titled Suite, the same as https://app.tensuite.net/login/extra. GET https://test.app.tensuite.net/ now returns 200 titled Suite. GET https://test.book.tensuite.net/ stays 200 titled Book. Merged PR https://github.com/jbnx/tensuite/pull/87 as 3b7fc95 onto the test branch. Booking tests 37222252631 and 37222255114 passed. gitleaks 37222255146 passed. node --test test/signin-alias.test.js passed (2). Railway project tensuite service book test deploy 896c9746 SUCCESS. Production deploy stayed 0c21353f. GET https://book.tensuite.net/login?next=1 still returns 302 to https://app.tensuite.net/login?next=1. GET https://app.tensuite.net/login stays 200. GET /api/insights on the test book stayed reached 1, page views 0, calls 0. The test app stayed reached 20, page views 0, calls 0. Bot POST /collect returned 204. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+10000000000 and the call count stayed 0. No auth.jbnx.io promise. Bug 9 stays open. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 17:58
closedtensuitetensuite.net/login returns a 404 page
Live 2026-10-04: GET https://tensuite.net/login?next=%2Fcredits returns 302 to https://app.tensuite.net/login?next=%2Fcredits. GET /signin/ returns 302 to https://app.tensuite.net/login. GET /sign-in?x=1 returns 302 to https://app.tensuite.net/login?x=1. GET /signup, /sign-up, /account, and /reset return 302 to https://app.tensuite.net/login. GET /forgot?x=1 returns 302 to https://app.tensuite.net/login?x=1. HEAD /login?x=1 returns 302 to https://app.tensuite.net/login?x=1. GET https://www.tensuite.net/login?next=1 returns 302 to https://app.tensuite.net/login?next=1. HEAD https://www.tensuite.net/sign-in?x=1 returns 302 to https://app.tensuite.net/login?x=1. GET /login/extra stays 404. POST /login stays 405. Cloudflare ruleset 91426b77784d466b9e8348ce370f0c5e phase http_request_dynamic_redirect rule tensuite_signin_app. GET https://book.tensuite.net/login?next=%2Fcredits returns 302 to https://app.tensuite.net/login?next=%2Fcredits. GET /signin/ returns 302 to https://app.tensuite.net/login. GET /sign-in?x=1 returns 302 to https://app.tensuite.net/login?x=1. GET /signup, /sign-up, /account, and /reset return 302 to https://app.tensuite.net/login. GET /forgot?x=1 returns 302 to https://app.tensuite.net/login?x=1. HEAD /login?x=1 returns 302 to https://app.tensuite.net/login?x=1. GET /login/extra stays 404. POST /login stays 404. GET /app stays 200. GET https://app.tensuite.net/login and /forgot stay 200. Merged PR https://github.com/jbnx/tensuite/pull/86 as 44f46fd on main. Booking tests 37214842977: the new sign-in tests passed. The job still fails 8 tests that already fail on main (519 pass / 8 fail on 37155187990; this run 522 pass / 8 fail). gitleaks passed. Railway project tensuite service book deploy 0c21353f SUCCESS. GET /api/insights on book stayed reached 75, page views 0, calls 0. App stayed reached 87, page views 6, calls 0. Bot POST /collect returned 204 and did not move those counts. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+10000000000 on book, app, and tensuite.net, and the call count stayed 0. Sign-in is still the salon app, not auth.jbnx.io. No JBNX email promise. Bug 9 stays open. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 16:01
closedscytherdeckscytherdeck.com/login returns a 404 page
Live 2026-10-04: GET https://www.scytherdeck.com/login?next=%2Fshop returns 302 to /?next=%2Fshop. GET /signin, /sign-in, /signup, /sign-up, /account, and /reset return 302 to /. GET /forgot/ returns 302 to /. HEAD /sign-in?x=1 returns 302 to /?x=1. GET https://scytherdeck.com/forgot?x=1 returns 302 to https://www.scytherdeck.com/?x=1. GET /login/extra stays 404. POST /login stays 405. The footer still says A JBNX shop and links to https://jbnx.io. The page does not name auth.jbnx.io and does not promise JBNX email. Cloudflare dynamic redirect rule hub_signin_home. Merged PR https://github.com/jbnx/scytherdeck/pull/6 as 30d890b on main. Pages deploy 37210904203 succeeded. security-scan 37210904159 succeeded. portfolio.claim_project still has no scytherdeck row. GET /insights/ returns 200. Visitors stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and the call count stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 14:54
closedlocalfavelocalfave.org/login returns a 404 page
Live 2026-10-04: GET https://localfave.org/login?next=%2Fstack returns 302 to /?next=%2Fstack. GET /signin/ returns 302 to /. GET /sign-in?x=1 returns 302 to /?x=1. GET /signup, /sign-up, /account, and /reset return 302 to /. GET /forgot?x=1 returns 302 to /?x=1. HEAD /login?x=1 returns 302 to /?x=1. GET /login/extra stays 404. POST /login stays 405. GET https://www.localfave.org/login?next=1 returns 301 to https://localfave.org/login?next=1, and that path 302s home. GET https://vivanessa.com/login, https://zensoma.localfave.org/login, https://tetris.localfave.org/login, and https://marcobros.net/login stay 404. GET https://mahjong.localfave.org/login?next=%2Fcredits stays 302 to /?next=%2Fcredits. The homepage still names JBNX and hello@jbnx.io and does not name auth.jbnx.io. Merged PR https://github.com/jbnx/localfave/pull/60 as 98aef3e on main. GitHub Actions deploy 37210887913 succeeded, including the live host checks. npm test passed (116). GET /insights returns 200. After the checks, visitors stayed 241 and page views stayed 249. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+10000000000 and the call count stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 14:54
closedwieldlingswieldlings.com/login returns not found
Live 2026-10-04: GET https://wieldlings.com/login?next=%2Fplay returns 302 to /?next=%2Fplay. GET /signin/ returns 302 to /. GET /sign-in?x=1 returns 302 to /?x=1. GET /signup, /sign-up, /account, and /reset return 302 to /. GET /forgot?x=1 returns 302 to /?x=1. HEAD /login?x=1 returns 302 to /?x=1. GET /login/extra stays 404 text Not found. POST /login stays 405. GET https://www.wieldlings.com/login?next=1 returns 302 to /?next=1. GET https://wieldling.com/sign-in?x=1 returns 302 to /?x=1. GET / returns 200 and the welcome footer still says A JBNX game. The page does not name auth.jbnx.io and does not promise JBNX email. Merged PR https://github.com/jbnx/wieldlings/pull/31 as 035c14a on main. CI run 37207115758 test passed, plus build-pause, cloud, expedition, performance, stress, and windows. Railway project project-jbnx service wieldlings deploy 0b6c4bfe SUCCESS. GET /insights returns 200. A scripted browser-style GET / during this check moved wieldlings.com visitors 1425 to 1426 and page views 1735 to 1736. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to / and game interface actions stayed 24. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 14:04
closedbill-jbnxMorning work summary email was not sent before the 8am sender existed
Confirmed 2026-10-04 during the 8 o'clock America/Chicago hour. billing.digest_sends has one row for 2026-10-04, recorded at 08:14 America/Chicago. Bill inserts that row only in that hour and deletes it if the mail call fails, so the remaining row means the morning summary for that date was accepted by the mail sender. It does not send at other hours. The board stays at https://projects.jbnx.io/bugs and https://bill.jbnx.io/bugs. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-032026-10-04 13:49
closedpdf-jbnxpdf.jbnx.io/login returns not found
Live 2026-10-04: GET https://pdf.jbnx.io/login?next=%2Fbugs returns 302 to /?next=%2Fbugs. GET /signin/ returns 302 to /. GET /sign-in?x=1 returns 302 to /?x=1. GET /signup, /sign-up, /account, and /reset return 302 to /. GET /forgot returns 302 to /. HEAD /sign-in?x=1 returns 302 to /?x=1. GET /login/extra stays 404 text not found. POST /login stays 405 method not allowed. GET / returns 200 and the footer says A JBNX product, linking to https://jbnx.io. The page does not name auth.jbnx.io and does not promise JBNX email. GET /api/health returns 200. Merged PR https://github.com/jbnx/jbnx.io/pull/155 as 7f65b24 onto branch cursor/pdf-jbnx-documenso-5e44, which is the branch Railway builds. The pdf app is not on main. Railway deploy 2a61fbe2 SUCCESS. npm test in pdf/ passed (10). quality-gates semgrep failed on pre-existing files outside pdf/ (agreement.py, insights_host.py, scripts/db_health.py, seo_listings.py, templates/games.html, templates/studio.html). GET /insights returns 200. Visitors stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 to tel:+0000000000 and the call count stayed 0. There is no portfolio slug pdf-jbnx, so the write claim was lp-jbnx. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 12:59
closedcountingdayzdayz.localfave.org/login returns not found
Live 2026-10-04: GET https://dayz.localfave.org/login returns 302 to /. GET /login?next=1 returns 302 to /?next=1. GET /signin/ returns 302 to /. GET /forgot?x=1 returns 302 to /?x=1. HEAD /sign-in?x=1 returns 302 to /?x=1. GET /signup, /account, and /reset return 302 to /. GET /login/extra stays 404 text not found. POST /login stays 405 method not allowed. GET /healthz returns 200 ok. The homepage still says JBNX and does not name auth.jbnx.io. Do not promise JBNX email. Merged PR https://github.com/jbnx/CountingDayZ/pull/1 as 32baeb9 on main. CI runs 37200654870 and 37200856237 succeeded, including Chromium gameplay gates. Railway deploy f591b502 SUCCESS. GET /insights returns 200. In-memory counters reset on this deploy, which the server documents. Bot POST /collect returned ignored. GET /go/call?to=0000000000&place=verify stays 404 not found. countingdayz.com DNS stays bug 15. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 12:07
closedmahjongmahjong.localfave.org/login returns JSON 404
Live 2026-10-04: GET https://mahjong.localfave.org/login returns 302 to /. GET /login?next=%2Fcredits returns 302 to /?next=%2Fcredits. GET /signin/ returns 302 to /. GET /sign-in?x=1 returns 302 to /?x=1. GET /signup, /sign-up, /account, and /reset return 302 to /. GET /forgot?x=1 returns 302 to /?x=1. HEAD /login?x=1 returns 302 to /?x=1. GET /login/extra stays 404 JSON. POST /login without the game origin stays 403. POST /login with the game origin stays 401 Please log in. POST /api/auth/login stays 403 until the request comes from the game. GET / returns 200 and the Log in button is still on the homepage. The footer already links to https://jbnx.io. Mail sender is still Mahjong at localfave.org, so this does not promise JBNX email. Merged PR https://github.com/jbnx/mahjong/pull/2 as 50371bc on main. CI runs 37200314014 and 37200385004 succeeded. Railway deploy 6280d32a SUCCESS. Live /healthz commit is 50371bc. node --test passed (279) and npm run build passed on Node 24. GET /insights returns 200. Visits stayed 47 across a scripted GET /go/call?to=0000000000&place=verify, which 302s to tel:+10000000000. Bot POST /collect returned ignored. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 11:58
closedprojects-portalprojects.jbnx.io/login returns 404
Live 2026-10-04: GET https://projects.jbnx.io/login?next=%2Fbugs returns 302 to /?next=%2Fbugs. GET /signin/ returns 302 to /. GET /sign-in?x=1 returns 302 to /?x=1. HEAD /account returns 302 to /. GET /forgot?x=1 returns 302 to /?x=1. POST /login returns 405. GET / returns 200. POST /api/1099/sign-in still returns 200 for this actor. https://test.projects.jbnx.io/login?next=%2Fbugs returns 302 to /?next=%2Fbugs. hi.jbnx.io/login still 302s to https://projects.jbnx.io/. Merged PR https://github.com/jbnx/jbnx.io/pull/153 as 60b64e9. That image failed health checks (deploy 48ee758d) because the Dockerfile did not copy desk-signin.mjs. Merged PR https://github.com/jbnx/jbnx.io/pull/154 as 13657b5. Railway production deploy ebbf76a8 SUCCESS and test deploy aaee94a7 SUCCESS. owner-boundaries and pytest passed. quality-gates semgrep still fails on jev_lead.py, the same failure main had before this change. GET /insights returns 200. Finished outcomes stayed 0. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 302 and the call count stayed 0. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 11:22
closedlp-jbnxwww.jbnx.io/login returns 404
Live 2026-10-04: GET https://www.jbnx.io/login?next=%2Fwork returns 302 to /support?next=%2Fwork. GET /signup returns 302 to /support?signup=1. GET /sign-up?x=1 returns 302 to /support?x=1&signup=1. GET /forgot?x=1 returns 302 to /support?x=1. GET /signin/, /sign-in, /account, and /reset return 302 to /support. HEAD /login returns 302 to /support. POST /login returns 405. https://jbnx.io/login returns 301 to https://www.jbnx.io/login, then 302 to /support. https://games.jbnx.io/login returns 302 to /support. https://demo.jbnx.io/signup returns 302 to /support?signup=1. GET /support?signup=1 returns 200. GET /insights returns 200. Merged PR https://github.com/jbnx/jbnx.io/pull/152 as 6f0d431. Railway deploy 09361ce3 SUCCESS. pytest (jbnx.io site) passed. quality-gates semgrep still fails on jev_lead.py, the same failure main had before this change. Password reset mail stays bug 2. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 10:14
closedprelysiumprelysium.com/login returns not found
Live 2026-10-04: GET https://prelysium.com/login returns 302 to /?mode=signin. GET /login?next=%2Fcredits returns 302 to /?next=%2Fcredits&mode=signin. GET https://www.prelysium.com/signin/ returns 302 to /?mode=signin. GET /sign-in returns 302 to /?mode=signin. GET /signup and /sign-up return 302 to /?mode=signup. GET /account returns 302 to /?mode=signin. GET /forgot?x=1 returns 302 to /?x=1&mode=reset. GET /reset returns 302 to /?mode=reset. HEAD /login returns 302 to /?mode=signin. POST /login returns 405. GET https://docs.prelysium.com/login returns 302 to https://prelysium.com/?mode=signin. GET https://docs.prelysium.com/forgot returns 302 to https://prelysium.com/?mode=reset. GET /?mode=signup returns 200 and the page still says it is a JBNX game and names auth.jbnx.io. Live /play/account.mjs?v=auth-5 reads mode signup, reset, and signin. Merged PR https://github.com/jbnx/prelysium/pull/9 as d1a6a92 on main. Railway deploy 1083b5d8 SUCCESS. node --test auth-alias and server-domain passed. GET /insights returns 200. Finished outcomes stayed none defined. Bot POST /collect returned ignored. Scripted GET /go/call returned 404 because no call target is configured. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 09:07
closedworkt-windreamt.win/signin and /privacy return JSON 404s
Live 2026-10-04: GET https://dreamt.win/signin returns 302 to /login. GET /sign-in?next=%2Fcredits returns 302 to /login?next=%2Fcredits. GET /sign-up returns 302 to /signup. GET /privacy?x=1 returns 302 to /legal/privacy?x=1. GET /terms returns 302 to /legal/terms. GET /account returns 302 to /login. GET /forgot?x=1 returns 302 to /login?x=1&mode=reset. GET /reset returns 302 to /login?mode=reset. GET /signin?x=1 returns 302 to /login?x=1. HEAD /signin returns 302 to /login. POST /signin still returns 404 JSON. GET /login, /signup, /legal/privacy, and /legal/terms return 200 HTML. https://www.workt.win/signin?x=1 returns 301 to https://dreamt.win/signin?x=1. Live /assets/console.js opens the reset form when mode=reset. Merged PR https://github.com/jbnx/workt.win/pull/32 as c029d5e on main. CI run 37187565453 succeeded. Railway deploy f47ac4da SUCCESS. GET /insights returns 200 and finished outcomes stayed at 3. Bot POST /collect returned ignored. Scripted GET /go/call?to=0000000000&place=verify returned 404 because no call target is configured, and the insights count did not change. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 08:03
closedbill-jbnxbill.jbnx.io/login returns JSON instead of sign-in
Live 2026-10-04: GET https://bill.jbnx.io/login returns 302 to /. GET /login?next=%2Fbugs returns 302 to /?next=%2Fbugs. GET /signin and /forgot return 302 to /. HEAD /sign-in returns 302 to /. GET /account returns 302 to /. GET /reset/abc still returns 200 HTML. POST /api/login with an empty body returns 400 email and password required. GET https://hub.jbnx.io/login returns 302 to /admin. https://test.bill.jbnx.io/login returns 302 to /. /healthz and /bugs and / return 200. GET /insights returns 200. Bot POST /collect returned ignored. Merged PR https://github.com/jbnx/jbnx-bill/pull/16 as 284a314. Railway deploys 4a92178f and 9ccf3b39 SUCCESS. node --test passed (19). FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 07:30
closedlp-jbnxwww.jbnx.io/pricing returns 404
Live 2026-10-04: GET https://www.jbnx.io/pricing returns 301 to /prices. GET /pricing/?plan=retainer returns 301 to /prices?plan=retainer. GET /pricing/ returns 301 to /prices. GET /prices returns 200. https://jbnx.io/pricing still 301s to https://www.jbnx.io/pricing, then that page redirects to /prices. Commits 52c6ab7 and 32fef67 on main. Railway deploy 91f15d39 SUCCESS. pytest (jbnx.io site) succeeded. quality-gates semgrep still fails on jev_lead.py, the same failure main had before this change. Bot POST /collect returned ignored. GET /insights returned 200. Scripted GET /go/call?to=0000000000&place=verify returned 302 and did not count a user call. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 06:14
closedscytherdeckScytherDeck homepage does not say it is JBNX
Live 2026-10-04: https://www.scytherdeck.com/ and /insights/ return 200. The footer says A JBNX shop and links to https://jbnx.io. Hero and footer mottos point at CipherDeck, not at this site. No auth.jbnx.io promise. Merged PR https://github.com/jbnx/scytherdeck/pull/5 as fddb111 on main. GitHub Pages deploy 37172573619 succeeded. Bot POST /collect returned ignored. portfolio.claim_project still has no scytherdeck row. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-042026-10-04 02:57
closedwieldlingsWieldlings pages do not say they are JBNX
https://wieldlings.com, https://www.wieldlings.com, and https://wieldling.com return 200 and the HTML does not mention JBNX. Confirmed 2026-10-04: those names are custom domains on Railway project project-jbnx, service wieldlings, production. Source is jbnx/wieldlings branch main. The separate Railway project named wieldlings is not the live host. Add one line on the welcome footer in index.html: it is a JBNX game. Do not promise JBNX email until sign-in really uses auth.jbnx.io. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-032026-10-04 02:03
closedworkt-winwww.workt.win and www.dreamt.win did not resolve
Live check 2026-10-03: www.workt.win and www.dreamt.win had no DNS record, so a browser could not open them. The apex names already served Dream Twin (workt.win returns 308 to https://dreamt.win/). Added proxied CNAMEs and a Cloudflare redirect. After the change, GET https://www.workt.win/signin?x=1 returns 301 to https://dreamt.win/signin?x=1, and GET https://www.dreamt.win/privacy?x=1 returns 301 to https://dreamt.win/privacy?x=1. https://dreamt.win/ still returns 200. FedM8 is not part of this.
1099:cursor-plat-fb312026-10-032026-10-03 23:57
closedprelysiumPrelysium homepage does not say it is JBNX
The game already signs in through auth.jbnx.io. The public homepage HTML does not mention JBNX, so a visitor is not told to expect JBNX email and the JBNX sign-in URL.
1099:cursor-plat-fb312026-10-032026-10-03 21:58
closedlp-jbnxTrailing slash 404 on the HACK desk
https://www.jbnx.io/hack/ now returns 301 to /hack, and that page is the desk.
1099:cursor-plat-fb312026-10-032026-10-03 21:20
closedprojects-portalProduct bug board did not exist
Live at https://projects.jbnx.io/bugs and https://bill.jbnx.io/bugs. Open rows, then working, then closed. Sort controls change the order.
1099:cursor-plat-fb312026-10-032026-10-03 21:20
closedprojects-portalauth.jbnx.io root shows Not found
The sign-in API at /auth/v1 responds. Opening https://auth.jbnx.io/ returns the text Not found, so a person who follows the host does not see that this is JBNX sign-in. Other paths must stay hidden. Live check 2026-10-03: GET / returns the JBNX sign-in note. /auth/v1/health still answers. Other paths stay Not found.
1099:cursor-plat-fb312026-10-032026-10-03 21:18