Commit graph

  • 5a628a5e60
    Merge c6179f54ab into 447d93df48 github-actions[bot] 2026-08-20 10:24:18 +00:00
  • c6179f54ab
    chore(main): release 2.15.0 release-please--branches--main--components--edopro github-actions[bot] 2026-08-20 10:24:15 +00:00
  • 447d93df48
    feat(matchmaking): add edison to the ranked queue (#322) main Diango Gavidia 2026-08-20 06:23:50 -04:00
  • baa735e950 feat(matchmaking): add edison to the ranked queue feat/matchmaking-edison Diango 2026-08-20 06:15:52 -04:00
  • 6e7baf2cc7
    fix(ban-list): announce whitelist lists with the hash ygopro clients compute (#321) Diango Gavidia 2026-08-19 18:38:35 -04:00
  • 22e2d47ed7 fix(ban-list): announce whitelist lists with the hash ygopro clients compute Diango 2026-08-19 18:03:52 -04:00
  • 46e353c588
    feat(room): join-command overhaul — pairing joins, room identity, edison bots (#319) Diango Gavidia 2026-08-10 18:12:12 -04:00
  • 7081c99f3c feat(room): exact-string pairing joins and (name,password) room identity Diango 2026-08-10 18:03:16 -04:00
  • 8bb525f1a1 fix(room): rule-mapping clamps, state coherence, and boot-order hardening Diango 2026-08-10 18:03:00 -04:00
  • 7ac0190a48 feat(ban-list): deterministic alias resolution with load-time format aliases Diango 2026-08-10 18:02:00 -04:00
  • 6b57d2c933 feat(windbot): playable edison bots and format-scoped random pools Diango 2026-08-10 18:01:29 -04:00
  • 994e7d2769 chore(dependencies): update various package versions in package-lock.json Diango 2026-08-09 10:58:50 -04:00
  • c028fcd495
    chore(main): release 2.14.0 (#240) v2.14.0 v2.14 v2 github-actions[bot] 2026-08-05 20:47:30 -04:00
  • d7a4498beb
    chore(main): release 2.14.0 github-actions[bot] 2026-08-05 20:52:29 +00:00
  • 21f81774c9
    fix(ranking): key rank by banlist name to unify formats across paths (#318) Diango Gavidia 2026-08-05 16:51:42 -04:00
  • d87260219f fix(ranking): key rank by banlist name to unify formats across paths Diango 2026-08-05 16:23:32 -04:00
  • 07b5f4d06a
    chore(edison): post-merge cleanup of #316 (redact framing, fix comment) (#317) Diango Gavidia 2026-08-05 10:09:04 -04:00
  • bba09d7de0 chore: correct fork-core manifest comment (read per load, not once at boot) Diango 2026-08-05 10:06:21 -04:00
  • 81e41fa9d7 chore: drop strategic 'moat' framing from resources-lib comment Diango 2026-08-05 10:02:32 -04:00
  • 83e8cd5a73
    feat(edison): MR1 (2010) format — forked core, pre-errata pool, resource pipeline (#316) Diango Gavidia 2026-08-05 09:34:06 -04:00
  • 7368f44bf6 refactor(core): resolve fork-core path once, fix stale runtime comments Diango 2026-08-05 09:26:41 -04:00
  • 6df84a4b4c chore(docker): drop build-time token machinery; private sources are runtime-only Diango 2026-08-05 08:34:51 -04:00
  • 871b84a56a refactor(core): collapse ocgcore fork verifier into a logged load decision Diango 2026-08-05 07:45:12 -04:00
  • a1f0f81f2b refactor(core): rename edisonCore to generic ocgcoreFork Diango 2026-08-04 21:51:41 -04:00
  • dd8f3e03c9 chore(edison): remove damage-step window debug tracer Diango 2026-08-04 21:27:04 -04:00
  • a0cbcd4540 docs: move edison roadmap out of the public repo Diango 2026-08-04 21:05:55 -04:00
  • 5a2017900e chore: ignore local session dir and fetched core artifact Diango 2026-08-04 20:43:31 -04:00
  • 037bb0e46c test: relocate ocgcore integration tests to fork and pre-errata repos Diango 2026-08-04 20:16:15 -04:00
  • 679aa13990 feat(edison): deliver fork ocgcore as a resources add-on + boot verifier Diango 2026-08-04 18:30:40 -04:00
  • e0566fa033 feat(edison): switch server pool to pre-errata.es.cdb, drop classic from pool Diango 2026-08-04 13:50:47 -04:00
  • 77706a7c3a feat(build): private manifest override + GitHub token for private sources Diango 2026-08-04 13:19:47 -04:00
  • 985542f693 feat(edison): verify core compliance + 3 duel_rule<=1 fork gates Diango 2026-08-04 12:03:45 -04:00
  • 7606261fa5 docs(edison): add format compliance roadmap Diango 2026-07-31 22:17:59 -04:00
  • 89cd2706cb test(edison): add MR1 behavior suite against headless ocgcore WASM Diango 2026-07-31 22:17:51 -04:00
  • ca541a7ab2 fix(edopro): preserve 64-bit duel seeds when launching CoreIntegrator Diango 2026-07-31 11:41:27 -04:00
  • 584ad23207 fix(ygopro): use full 256-bit seed entropy for server deck shuffle Diango 2026-07-31 11:41:17 -04:00
  • 603763dc10 fix(chat): mark replay hint as system message Diango 2026-07-29 15:54:15 -04:00
  • 7462eee8bf feat(rule-mappings): add support for JTP Advanced March 2007 format Diango 2026-07-29 00:08:03 -04:00
  • 7a801b141d
    fix(emotes): reject spectator emotes server-side (#315) Diango Gavidia 2026-07-25 21:39:53 -04:00
  • 4610ce8d4c fix(emotes): reject spectator emotes server-side Diango 2026-07-25 21:37:26 -04:00
  • 8a2a43050d
    feat(emotes): relay a dedicated emote opcode to the room (#313) Diango Gavidia 2026-07-25 16:30:57 -04:00
  • 200aec0be2
    feat(matchmaking): ranked human pairs play best-of-3 matches (#314) Diango Gavidia 2026-07-25 16:10:10 -04:00
  • f373a425e3 feat(matchmaking): ranked human pairs play best-of-3 matches Diango 2026-07-25 15:59:40 -04:00
  • aec7322f94 feat(emotes): relay a dedicated emote opcode to the room Diango 2026-07-25 09:24:06 -04:00
  • d52dfd7408
    feat(windbot): shorten TCG botlist names to fit the join wire budget (#312) Diango Gavidia 2026-07-24 21:25:39 -04:00
  • 211c0eba77 feat(windbot): shorten TCG botlist names to fit the join wire budget Diango 2026-07-24 21:22:21 -04:00
  • 4f706da2e0
    feat(matchmaking): open the ranked TCG room pool via the tt token (#311) Diango Gavidia 2026-07-24 19:37:06 -04:00
  • fdcc982c9b feat(matchmaking): open the ranked TCG room pool via the tt token Diango 2026-07-24 19:25:03 -04:00
  • 7850081571
    fix(matchmaking): abort incomplete room reservations (#310) Diango Gavidia 2026-07-24 09:04:52 -04:00
  • e0437dda7b fix(matchmaking): abort incomplete room reservations Diango 2026-07-24 08:54:56 -04:00
  • 3afaec3f92
    feat(matchmaking): multi-format queue with per-format bot roster (tcg, jtp) (#309) Diango Gavidia 2026-07-23 09:48:38 -04:00
  • 0046687e8c test(matchmaking): harden wire-budget guard and co-locate tests feat/matchmaking-multi-format Diango 2026-07-23 09:34:19 -04:00
  • 9faacf1612 refactor(matchmaking): drop deprecated SUPPORTED_FORMAT alias Diango 2026-07-23 09:01:47 -04:00
  • 8283f57e65 feat(matchmaking): per-format bot roster and bootstrap wiring Diango 2026-07-23 08:56:37 -04:00
  • 8820633298 feat(matchmaking): per-format room token and wire-budget guard Diango 2026-07-23 08:56:14 -04:00
  • f9abf233c0 feat(matchmaking): add multi-format enum and Zod schema guard Diango 2026-07-23 08:55:56 -04:00
  • e2054d15bb
    feat(matchmaking): auto-pairing queue with ranked + windbot fallback (#308) Diango Gavidia 2026-07-21 20:14:17 -04:00
  • 900651c4db fix(matchmaking): tear down bot room when the human leaves (mark AI room on bot join) Diango 2026-07-21 09:25:30 -04:00
  • 11288d4348 fix(matchmaking): clear deckcode on override, poll-based matched expiry, clamp deck index Diango 2026-07-20 20:26:29 -04:00
  • 7529e438ed fix(matchmaking): fit join string within CTOS_JOIN_GAME pass field Diango 2026-07-20 17:40:21 -04:00
  • 11090cada7 fix(matchmaking): serve TCG-legal bot deck in fallback Diango 2026-07-20 16:36:42 -04:00
  • 95bd17e71d fix(matchmaking): reap matched queue entries after grace window Diango 2026-07-20 16:27:58 -04:00
  • f49eda22b1 fix(matchmaking): reap orphaned rooms, throttle status/cancel, contain room-creation throws Diango 2026-07-20 15:59:48 -04:00
  • 47053012ec feat(matchmaking): add auto-pairing queue with ranked/bot fallback Diango 2026-07-20 15:43:18 -04:00
  • 2fa9923eb3
    feat(version): add GET /api/resources/version endpoint (#307) Diango Gavidia 2026-07-14 19:28:53 -04:00
  • 1b13a4b1d6 feat(version): add GET /api/resources/version endpoint Diango 2026-07-14 19:23:31 -04:00
  • 339eae9b8e feat(version): expose sha512 and card-db fingerprint getters Diango 2026-07-14 18:59:24 -04:00
  • 816f30513e
    feat(bootstrap): hot-reload ban lists without a server restart (#306) Diango Gavidia 2026-07-14 18:12:12 -04:00
  • 91818f2ebb chore(ban-list): drop internal requirement tags from comments and test names Diango 2026-07-14 18:04:04 -04:00
  • 50a12b1c49 feat(bootstrap): start banlist reloader on server boot (REQ-304) Diango 2026-07-14 16:57:27 -04:00
  • c12e998ac6 test(room): assert banlist reload does not mutate in-flight rooms (REQ-306) Diango 2026-07-14 16:51:29 -04:00
  • ed56b01480 feat(bootstrap): add banlist reloader with change detection and atomic swap (REQ-304, REQ-305) Diango 2026-07-14 16:35:14 -04:00
  • 66db83af20 feat(bootstrap): extract re-callable banlist loaders (REQ-302, REQ-303) Diango 2026-07-14 16:24:44 -04:00
  • 9ca2b0b2bc test(bootstrap): add re-callable banlist loader extraction tests (REQ-302, REQ-303) Diango 2026-07-14 15:21:07 -04:00
  • 1e744619a4 feat(ban-list): add replaceAll double-buffer swap to edopro and ygopro repos (REQ-301, REQ-305) Diango 2026-07-14 15:17:53 -04:00
  • fda477146c test(ban-list): add replaceAll contract tests for BanListMemoryRepository (REQ-301, REQ-305) Diango 2026-07-14 15:09:59 -04:00
  • aa7c96bd46
    feat(resources): declarative manifest-driven cdb/banlist sources + ygopro pool derivation (#305) Diango Gavidia 2026-07-13 23:36:57 -04:00
  • 7d7284b99a chore(deps): bump koishipro-core.js to ^1.5.2 and ygopro-msg-encode to ^1.3.0 Diango 2026-07-13 21:46:13 -04:00
  • f4174fd30d test(resources): drop brittle manifest-snapshot assertions Diango 2026-07-13 21:12:25 -04:00
  • 0ffc7602a2 refactor(scripts): move resource pipeline scripts into scripts/ dir Diango 2026-07-13 21:08:14 -04:00
  • 6d3590d6a0 refactor(resources)!: remove deprecated YGOPRO_FOLDERS env override; manifest is sole pool source Diango 2026-07-13 20:18:03 -04:00
  • 53ba3bc3e7 fix(resources): make pool diagnostics one-shot and fix doc/test drift Diango 2026-07-13 19:41:37 -04:00
  • fadad64aa0 feat(resources): warn on missing pool dirs and duplicate cdb basenames Diango 2026-07-13 19:08:46 -04:00
  • 9dbb2335d6 feat(resources): adopt production source taxonomy and add classic pre-errata pool Diango 2026-07-13 18:49:24 -04:00
  • 6ae06faa4c docs(resources): update README env section for manifest-driven pool derivation (RFD-008) Diango 2026-07-13 11:15:21 -04:00
  • ac883c92a1 fix(config): remove enumerated YGOPRO_FOLDERS/EXTRA values; derivation is now the default (RFD-006) Diango 2026-07-13 11:03:37 -04:00
  • ff9bc229fc test(resolver): add whole-chain integration test with in-memory fixtures (RFD-007) Diango 2026-07-13 11:01:57 -04:00
  • 33f1449de0 feat(search): wire YGOProCardSearchRepository to use resolved extended pool Diango 2026-07-13 10:06:34 -04:00
  • 0a77399628 feat(loader): wire YGOProResourceLoader to use ResourcePoolResolver for pool derivation Diango 2026-07-13 10:02:42 -04:00
  • ab966b1605 feat(config): add manifestPath (MANIFEST_PATH env, default ./resources.manifest.json) Diango 2026-07-13 10:00:44 -04:00
  • 1e479d9fcd feat(resolver): implement ResourcePoolResolver (RFD-003/004/005) Diango 2026-07-13 10:00:28 -04:00
  • ac18eb69d0 test(resolver): add failing unit tests for ResourcePoolResolver (RFD-003/004/005) Diango 2026-07-13 09:59:48 -04:00
  • 9ace3a6292 test(resources): bats regression for validate_manifest tolerates runtime section (RFD-002) Diango 2026-07-13 09:55:37 -04:00
  • 17f6490c30 feat(resources): add runtime.ygopro pool section to manifest (RFD-001) Diango 2026-07-13 09:54:47 -04:00
  • 3d895a39cf docs(resources): update README env blocks to new layout and add migration + jq notes Diango 2026-07-12 21:03:37 -04:00
  • b25f2182ca ci(resources): add bash-resources-tests job to pipeline Diango 2026-07-12 21:00:34 -04:00
  • 1dc7f1989f fix(resources): guard against non-object assembly elements in validate_manifest Diango 2026-07-12 20:56:14 -04:00
  • bdb86f0b94 test(resources): cover target/filename validation and fix stub bashism Diango 2026-07-12 20:33:13 -04:00
  • e0c033bc89 fix(resources): harden manifest validation and .git strip Diango 2026-07-12 20:31:35 -04:00
  • a4156cceef chore(config): align YGOPRO folder env to new resource layout Diango 2026-07-12 20:31:20 -04:00