Commit Graph

  • 89bb69bcfa chore: obsidian docs main ejlewis 2026-05-17 23:35:13 -05:00
  • 18aa517319 feat(ui): add bug reporting integrations ejlewis 2026-05-17 23:34:17 -05:00
  • a51bb6f86f docs: implementation plan for bug reporting ejlewis 2026-05-17 23:02:46 -05:00
  • 4f6460297f docs: design for Bugpin + Bugsink bug reporting ejlewis 2026-05-17 22:57:34 -05:00
  • 03482693ea Open source markdown authoring workflow ejlewis 2026-05-13 17:59:13 -05:00
  • 7b1b5d0f6c chore: add build number and release scripts ejlewis 2026-05-12 20:52:35 -05:00
  • e7b74c827a fix(engine): burn lamp one segment per wait ejlewis 2026-05-12 20:31:50 -05:00
  • 52fb869976 feat(mystery): add altered rooms and drunk sequence ejlewis 2026-05-12 20:22:20 -05:00
  • 0755213d6a feat(ui): add confirmations and terminal motion ejlewis 2026-05-12 19:44:18 -05:00
  • cc98aa180b feat(world): expand Halfstreet content slices ejlewis 2026-05-12 14:48:19 -05:00
  • 26dd91947f feat: add kitchen and glitchtip wiring ejlewis 2026-05-10 12:03:12 -05:00
  • 4d9077d586 feat(world): add light timer and indicator ejlewis 2026-05-10 10:17:42 -05:00
  • d56c0c8363 Implement match interactions and wait chip ejlewis 2026-05-10 07:56:31 -05:00
  • 83e4877852 feat(content): add upper floor slice ejlewis 2026-05-10 07:34:51 -05:00
  • daa5e9d655 fix(ui): polish terminal options and assets ejlewis 2026-05-10 07:00:22 -05:00
  • 33933b00d7 fix(mystery): improve mobile terminal and chips ejlewis 2026-05-10 05:53:32 -05:00
  • 29fd371b89 Merge branch 'feat/engine-prereqs' ejlewis 2026-05-09 21:51:37 -05:00
  • 2a9b6155ef feat(mystery): add opening and main-floor content ejlewis 2026-05-09 21:51:12 -05:00
  • b3e708995b Merge pull request 'docs(mystery): Phase 2 content-rewrite roadmap' (#2) from feat/engine-prereqs into main ejlewis 2026-05-09 15:16:07 -05:00
  • e46b2359c0 docs(mystery): Phase 2 content-rewrite roadmap ejlewis 2026-05-09 15:11:06 -05:00
  • f9b6fc164f Merge pull request 'docs(mystery): spec for engine prereqs (verbs, disambiguation, ending UI)' (#1) from feat/engine-prereqs into main ejlewis 2026-05-09 15:10:20 -05:00
  • 5f8e3b1a34 fix(ui): keep input typable post-end so player can type restart/undo ejlewis 2026-05-09 15:06:37 -05:00
  • e167979fa7 feat(ui): render ending lines distinctly and lock input on end-state ejlewis 2026-05-09 14:57:52 -05:00
  • 19d1efc586 feat(engine): detect endings on every successful turn ejlewis 2026-05-09 14:53:07 -05:00
  • 0d9db9bb55 test(engine): self-contained locked-exit fixture replaces the stub ejlewis 2026-05-09 14:42:22 -05:00
  • b870d884ef feat(engine): wire verb-target-prep — explicit \light X with Y\ and \use\ routing ejlewis 2026-05-09 14:22:03 -05:00
  • 8401e7d281 feat(engine): light/extinguish verbs with implicit lighter selection ejlewis 2026-05-09 14:18:54 -05:00
  • dac8487dbe feat(engine): read verb narrates item.readableText ejlewis 2026-05-09 14:15:35 -05:00
  • 2fecc7878d feat(world): annotate lamp/matches/letter for read/light/extinguish ejlewis 2026-05-09 14:12:10 -05:00
  • ee3cfcc00d feat(world): parseItem extracts optional ## read / lit / extinguished / lighter-empty sections ejlewis 2026-05-09 14:06:29 -05:00
  • df50afa479 feat(world): item schema — readable, lightable, lighter, lighterUses ejlewis 2026-05-09 14:01:31 -05:00
  • ab8c17fdd5 feat(engine): dispatcher handles ambiguous parses with a disambiguation prompt ejlewis 2026-05-09 13:58:32 -05:00
  • b318747840 feat(parser): emit verb-target-prep on 'with'/'on'/'in'/'to' separators ejlewis 2026-05-09 13:56:19 -05:00
  • 46f851bc3a feat(parser): return ambiguous variant when noun matches multiple aliases ejlewis 2026-05-09 13:53:38 -05:00
  • b325f04b02 feat(parser): strip leading stop-words (at, the, a, an) from noun phrase ejlewis 2026-05-09 13:36:34 -05:00
  • 14a58481b1 refactor(engine): theme is a UI preference; remove it from GameState ejlewis 2026-05-09 13:33:57 -05:00
  • 657ed22b48 refactor(engine): drop redundant string[] casts now that RoomState includes arrays ejlewis 2026-05-09 13:30:35 -05:00
  • 6cffb87a63 feat(engine): widen state value unions and add 'ending' transcript kind ejlewis 2026-05-09 13:28:14 -05:00
  • e21a308e9d docs(mystery): implementation plan for engine prereqs ejlewis 2026-05-09 13:21:13 -05:00
  • bcff8a42f9 docs(mystery): spec for engine prereqs (verbs, disambiguation, ending UI) ejlewis 2026-05-09 13:07:24 -05:00
  • 2b3a18f208 ci: add Cloudflare Pages deploy + split success/failure notify ejlewis 2026-05-09 11:56:38 -05:00
  • 72f99295ca build: re-add wrangler as devDependency ejlewis 2026-05-09 11:56:38 -05:00
  • e044141043 ci: pushover notification on success too ejlewis 2026-05-09 11:50:28 -05:00
  • c0061491ab ci: pushover notification on pipeline failure ejlewis 2026-05-09 11:47:50 -05:00
  • b80e4c32a5 fix(ci): commit package-lock.json so npm ci works ejlewis 2026-05-09 11:47:50 -05:00
  • e31bf0fbff chore: standalone Halfstreet repo scaffolding ejlewis 2026-05-09 11:33:15 -05:00
  • 86e1aeb973 feat: rename mystery.astro -> index.astro, fix imports for src/ root ejlewis 2026-05-09 11:33:06 -05:00
  • 78b749dac4 chore(halfstreet): bible Obsidian-formatted edits + vault config ejlewis 2026-05-09 11:29:18 -05:00
  • bc21a88786 Merge feature: mystery markdown content migration ejlewis 2026-05-09 11:13:38 -05:00
  • 1f472402fd fix(mystery): code-review followups (locked-exit, endings, headers) ejlewis 2026-05-09 11:12:26 -05:00
  • 4b8ebafe6f fix(mystery): swap gray-matter for yaml package (browser-safe) ejlewis 2026-05-09 09:52:21 -05:00
  • 20619cec09 chore(mystery): commit minimal Obsidian vault config; ignore workspace cache ejlewis 2026-05-09 09:43:53 -05:00
  • 506e36b801 refactor(mystery): remove story.ts; endings live in markdown ejlewis 2026-05-09 09:36:28 -05:00
  • 1b992642ec feat(mystery): encounters.ts uses narration() helper for prose ejlewis 2026-05-09 09:35:41 -05:00
  • c0c1a7e930 feat(mystery): assemble World from markdown via import.meta.glob ejlewis 2026-05-09 09:34:27 -05:00
  • 0523158e61 test(mystery): round-trip verification of migrated markdown ejlewis 2026-05-09 09:27:39 -05:00
  • bbea3f4473 feat(mystery): migration script and produced markdown content ejlewis 2026-05-09 09:26:02 -05:00
  • d3a2f4e1d7 feat(mystery): narration() helper and encounter narration registry ejlewis 2026-05-09 09:23:37 -05:00
  • bf8a693949 feat(mystery): parseEncounterNarration — phase and transition prose ejlewis 2026-05-09 09:21:29 -05:00
  • e60844a937 feat(mystery): parseEnding — markdown to typed Ending ejlewis 2026-05-09 09:17:11 -05:00
  • e108ca16e0 feat(mystery): parseItem — markdown to typed Item ejlewis 2026-05-09 09:13:51 -05:00
  • cf257c040a fix(mystery): handle aliased wikilinks; symmetric locked-exit validation ejlewis 2026-05-09 09:09:38 -05:00
  • 5f3356ffb5 feat(mystery): parseRoom — markdown to typed Room ejlewis 2026-05-09 09:00:35 -05:00
  • da7b6fac83 feat(mystery): add Zod schemas for markdown frontmatter ejlewis 2026-05-09 08:56:44 -05:00
  • 2ad81f356a docs(mystery): implementation plan for markdown content migration ejlewis 2026-05-09 08:50:58 -05:00
  • baed9dd2f7 docs(mystery): camelCase frontmatter, prototype goal, content collections rationale ejlewis 2026-05-09 08:42:12 -05:00
  • 1a283076ac docs(mystery): spec for markdown content migration ejlewis 2026-05-09 08:36:38 -05:00
  • 157dd07c9c fix(mystery): letter doesn't open in foyer ejlewis 2026-05-09 01:03:47 -05:00
  • f75030e7ee fix(mystery): persist player input lines so they survive reload ejlewis 2026-05-09 00:54:54 -05:00
  • d3e2bd72a5 Merge feature: mystery text adventure (Halfstreet) — engine + UI + bible ejlewis 2026-05-09 00:41:23 -05:00
  • 731e51c6b9 docs(mystery): notes for follow-on room-prose plan ejlewis 2026-05-09 00:40:13 -05:00
  • 33bc84e30b fix(mystery): wait verb routes to encounters; chip list reflects dynamic items ejlewis 2026-05-09 00:37:45 -05:00
  • 1b7d2ce4e7 docs(mystery): author Halfstreet content bible — gating artifact for room prose ejlewis 2026-05-09 00:22:57 -05:00
  • 9e49f1f519 feat(mystery): mobile chip computation and rendering ejlewis 2026-05-09 00:18:25 -05:00
  • 3c0c386bbe feat(mystery): theme toggle wiring with localStorage persistence ejlewis 2026-05-09 00:14:15 -05:00
  • 5f5dc6071b feat(mystery): terminal — input handling, dispatch wiring, autosave ejlewis 2026-05-08 23:45:10 -05:00
  • 96d3036c4d feat(mystery): /mystery route + CRT bezel + theme scaffold ejlewis 2026-05-08 23:39:58 -05:00
  • 460626aad9 test(mystery): end-to-end playthrough against sample world ejlewis 2026-05-08 23:32:33 -05:00
  • d8c9b44058 feat(mystery): sample 3-room world for engine validation ejlewis 2026-05-08 23:26:45 -05:00
  • 49fc5a1015 feat(mystery): encounter phase machine wired into dispatcher ejlewis 2026-05-08 23:18:22 -05:00
  • 00f44ce817 feat(mystery): dispatcher — go, look, take, drop, examine, inventory ejlewis 2026-05-08 22:56:11 -05:00
  • bd6b421ce9 feat(mystery): save layer — round-trip, schema versioning, transcript cap ejlewis 2026-05-08 22:50:47 -05:00
  • bf9e210b88 feat(mystery): parser — noun resolution, disambiguation, pronouns ejlewis 2026-05-08 22:44:43 -05:00
  • b59644270e feat(mystery): parser — verb-only, direction, and meta commands ejlewis 2026-05-08 22:38:17 -05:00
  • 7ee5cf96f6 feat(mystery): define engine and world type contracts ejlewis 2026-05-08 22:31:36 -05:00
  • 20c977db1f docs: add mystery text adventure (Halfstreet) design spec ejlewis 2026-05-08 22:07:24 -05:00