Commit graph

14 commits

Author SHA1 Message Date
363000eb20 Add LICENSE
MIT — the license already claimed in the README, just missing from disk.
2026-09-27 20:52:52 +05:30
a0e1e7f258 feat: replace real API key with default placeholder, update setup instructions, and polish renderer 2026-09-25 17:25:08 +05:30
4519999535 docs: align the README with the revamped site and the bundled key
The feature list still described a WebGL icosahedron, and the configuration
section claimed the key was required with no fallback even though the repo has
carried REPO_API_KEY since the deploy work. Document the real renderer, the key
precedence (env over repo), the deploy targets and the test layout.
2026-09-22 21:59:52 +05:30
a8dfdbcb60 fix(ui): ink the verdict upright on the die face
The plate is authored y-up while canvas text is laid out y-down, so the affine
solved from the raw local corners had a negative determinant: every verdict drew
mirrored, with the line order reversed, in idle and reveal alike.

Solve the transform in a y-down text space instead, flip the clip to match, and
cover the orientation with a regression test.
2026-09-22 21:59:49 +05:30
455181290f revert: remove tablet Laya integration and restore pure OpenRouter Jev decision oracle 2026-09-22 19:55:03 +05:30
cf9aefc846 feat(deploy): route Cloudflare Worker and Pages to Laya via public tunnel 2026-09-22 07:38:29 +05:30
c1590077c3 feat: integrate Laya typed decision model running on Android tablet with seamless fallback 2026-09-21 20:05:02 +05:30
463712744c test: add Worker regression suite and fix the package entrypoint
Covers the missing-key 503, hasKey reporting, input validation without an
upstream call, the hazy-to-decisive override, upstream failures preserving
status plus fallback, and deterministic offline fallbacks.

Also points "main" at server.js, since index.js did not exist.
2026-09-20 01:47:51 +05:30
889b3f153f fix(ui): label the offline fallback instead of faking calibrated telemetry
A failed upstream call returned HTTP 200 with a hash-derived answer that the UI
rendered with the same P(FAVORABLE) and CONFIDENCE figures as a real decision.
The fallback is now badged OFFLINE with those derived numbers blanked out.

Request errors also rendered "SIGNS POINT TO YES" and always reported a network
timeout. Failures now show CANNOT PREDICT and the real HTTP status or backend
message, and the stored history is validated before use so a malformed value
cannot break the whole interface.
2026-09-20 01:47:51 +05:30
4826b9c2b5 fix: remove the hardcoded OpenRouter key and always-true hasKey reporting
The key was committed to three backends behind `|| DEFAULT_KEY` fallbacks, which
also meant a misconfigured deploy silently billed the bundled key instead of
failing. It is now read from the environment only: /api/ask answers 503 and
/api/status reports hasKey:false when it is absent.

hasKey was unreachable-false as well, via `|| true` in the Pages function and
`|| DEFAULT_KEY` in the worker, so it could never signal a missing key.

All responses now go through a shared json() helper, so error paths carry the
same CORS headers and content type as success paths, and wrangler.json declares
the ASSETS binding the worker's static fallback already referenced.
2026-09-20 01:47:51 +05:30
fc464cb68b feat: 3D hexagonal figure with roll-in-place animation and decisive Jev oracle prompting 2026-09-19 20:40:54 +05:30
f7f14e37e9 fix(deploy): add worker.mjs entrypoint and assets directory for Cloudflare deploy 2026-09-19 20:30:50 +05:30
e555a6bbd9 feat: add Cloudflare Pages Functions and wrangler configuration with Jev API key 2026-09-19 20:28:54 +05:30
6b8c5404bf initial commit: jev8ball minimalist neural oracle 2026-09-19 20:10:58 +05:30