Commit Graph
100 Commits
Author SHA1 Message Date
admin e9d59a4ca2 Distinguish unlisted games from missing saves 2026-07-15 13:29:06 -07:00
admin 811761ca19 Recover orphaned Postgres games in admin 2026-07-15 13:20:34 -07:00
adminandGitHub c49c4d26e1 Include client texts in save downloads (#8617)
* Include client texts in save downloads

* Fix admin service client text dependencies
2026-07-15 13:16:58 -07:00
adminandGitHub 68906df5b9 Clarify diplomacy with departing heroes (#8618) 2026-07-15 13:15:52 -07:00
adminandGitHub dc54584fa3 Limit support deadline tutorial to first year (#8616)
* Limit support deadline tutorial to first year

* Use the actual tutorial start year
2026-07-15 13:11:37 -07:00
adminandGitHub d665eb53f3 Remove tutorial phase from game state view (#8615) 2026-07-15 13:06:01 -07:00
adminandGitHub 59143a2e04 Add tutorial dialogue for battle conditions (#8613)
* Add tutorial dialogue for battle conditions

* Mention castle morale recovery in tutorial

* Mention Holy Wave battle recovery
2026-07-15 13:01:58 -07:00
adminandGitHub f9825861e3 Order generated hero names before backstories (#8614) 2026-07-15 13:01:09 -07:00
adminandGitHub 9b5dcc40a0 Keep editor OAuth flow in polling mode (#8612) 2026-07-15 13:00:32 -07:00
adminandGitHub 44514fb2f2 Activate unused-hero warning in tutorial battle (#8609) 2026-07-15 12:08:40 -07:00
adminandGitHub 3014602331 Retry transient OAuth polling failures (#8611) 2026-07-15 12:08:10 -07:00
adminandGitHub bb182efc3e Add dormant tutorial end-turn warning support (#8608) 2026-07-15 11:57:29 -07:00
adminandGitHub 3a04d865b6 Add OAuth login to text client (#8610) 2026-07-15 11:56:42 -07:00
adminandGitHub f2f81d1cda Add tutorial unused-hero warning protocol (#8607) 2026-07-15 11:54:11 -07:00
adminandGitHub 72dc8ba9fb Fix command title vertical centering (#8605) 2026-07-15 11:38:51 -07:00
adminandGitHub 7adc38fe12 Report and isolate game loading failures (#8604) 2026-07-15 11:35:19 -07:00
adminandGitHub 67dbf928d6 Isolate running game serialization failures (#8603) 2026-07-15 11:26:58 -07:00
adminandGitHub efad456bef Add tutorial dialogue for duel outcomes (#8601)
* Add tutorial dialogue for duel outcomes

* Distinguish lost and inconclusive duels

* Simplify duel outcome consequences
2026-07-15 11:21:18 -07:00
adminandGitHub 9ebc517c9f Reject unauthenticated game requests (#8602)
* Preserve authentication context for game streams

* Reject unauthenticated game requests
2026-07-15 11:19:11 -07:00
adminandGitHub 49020af5e9 Serialize unit selector touch targets (#8600) 2026-07-15 11:04:15 -07:00
adminandGitHub e5e5dd9fdc Serialize March touch targets (#8598)
* Serialize March touch targets

* Preserve March slider handle aspect
2026-07-15 10:56:25 -07:00
adminandGitHub 0dd780fc63 Add tutorial attack readiness guidance (#8599) 2026-07-15 10:53:39 -07:00
adminandGitHub ae4c441427 Clarify province abandonment before tutorial march (#8597) 2026-07-15 10:38:06 -07:00
adminandGitHub f01a2ee378 Show game over state in text client (#8595) 2026-07-15 10:34:49 -07:00
adminandGitHub e4901b6414 Clarify Retreat and Flee outcomes (#8596) 2026-07-15 10:31:51 -07:00
adminandGitHub f0b2fd5f5e Add attack preparation tutorial sequence (#8591)
* Add attack preparation tutorial sequence

* Emphasize hiring troops in attack tutorial

* Recommend Champions for troop training
2026-07-15 10:27:46 -07:00
adminandGitHub a28a0ef8d5 Serialize Battle Aftermath touch targets (#8594) 2026-07-15 10:26:22 -07:00
adminandGitHub 88ff742bb1 Serialize Attack Decision touch targets (#8593) 2026-07-15 10:21:12 -07:00
adminandGitHub d549c0642b Prevent duplicate gRPC stream closure (#8592) 2026-07-15 10:19:39 -07:00
adminandGitHub 00c677d12a Serialize Improve selector touch targets (#8590) 2026-07-15 10:15:06 -07:00
adminandGitHub 6c47019e8e Explain hero-only March units (#8588) 2026-07-15 09:33:11 -07:00
adminandGitHub f7932c6681 Serialize organize troops touch targets (#8589) 2026-07-15 09:32:44 -07:00
adminandGitHub 13e734d9ae Serialize popup Next button touch sizes (#8587) 2026-07-15 08:28:03 -07:00
adminandGitHub a4f934105f Fix text consistency across game rewinds (#8585) 2026-07-15 07:59:14 -07:00
adminandGitHub 1300ec9ab9 Serialize Eagle play-area touch targets (#8586) 2026-07-15 07:58:36 -07:00
adminandGitHub bfba377c57 Serialize shared UI touch target sizes (#8584) 2026-07-15 07:40:09 -07:00
adminandGitHub 56564c1bee Prevent disposed connections from reconnecting (#8583)
* Prevent disposed connections from reconnecting

* Disambiguate lifecycle test timer
2026-07-15 07:32:29 -07:00
adminandGitHub 1728d719a4 Preserve tutorial games across Eagle deploys (#8578)
* Restore tutorial battle config after deploy

* Invalidate warmed game index after deploy
2026-07-15 07:31:55 -07:00
adminandGitHub 3314ef191f Show valid trade command payloads (#8580) 2026-07-15 07:17:05 -07:00
adminandGitHub 1fbd2e8438 Balance command panel header layout (#8581) 2026-07-15 07:16:40 -07:00
adminandGitHub 7f50b61419 Rewire status UI after connection replacement (#8579) 2026-07-15 07:04:55 -07:00
adminandGitHub c7dea02861 Defer strategic tutorial dialogue during battles (#8572) 2026-07-15 06:54:50 -07:00
adminandGitHub afd8028665 Report malformed command protos as command errors (#8577) 2026-07-15 06:53:41 -07:00
adminandGitHub 2263977668 Preserve pending tutorial dialogue on reconnect (#8574)
* Preserve pending tutorial dialogue on reconnect

* Fix hero departure regression test calls

* Reset tutorial state when switching games
2026-07-15 06:52:59 -07:00
adminandGitHub 4cfec68ef8 Fix stale tutorial battle reinforcements (#8576)
* Fix stale tutorial battle reinforcements

* Limit fix to future tutorial battles
2026-07-15 06:40:23 -07:00
adminandGitHub 432276f550 Show attack decision payloads in text client (#8575)
* Show attack decision command payloads

* Expand complex command templates
2026-07-15 05:31:17 -07:00
adminandGitHub ef179e67ef Improve organize troops text client template (#8573) 2026-07-14 22:28:59 -07:00
adminandGitHub 7ee9fbb8da Recommend tutorial battle starting positions (#8571) 2026-07-14 21:48:25 -07:00
adminandGitHub 3d46bee7dd Prevent game loading lock inversion (#8570) 2026-07-14 21:39:14 -07:00
adminandGitHub c6dc5477f5 Remove client-driven tutorial content (#8569) 2026-07-14 21:38:34 -07:00
adminandGitHub ab7499ca7a Migrate remaining strategic tutorial dialogue to server (#8564)
* Migrate remaining strategic tutorial dialogue

* Restore province replacement in tutorial dialogue
2026-07-14 19:08:44 -07:00
adminandGitHub 7d95c81a00 Resolve province tutorial replacements in text client (#8566) 2026-07-14 18:38:39 -07:00
adminandGitHub e523ebf96e Resolve province tutorial replacements in Unity (#8568) 2026-07-14 18:38:13 -07:00
adminandGitHub b740e1ad59 Refresh same-token strategic updates (#8567) 2026-07-14 17:01:44 -07:00
adminandGitHub 3a612426f6 Add province tutorial replacement schema (#8565) 2026-07-14 16:46:00 -07:00
adminandGitHub 452d0cac5a Show under attack alert in command panel (#8563) 2026-07-14 15:08:04 -07:00
adminandGitHub bdb7b324c4 Use layout groups for command panel (#8562) 2026-07-14 14:53:38 -07:00
adminandGitHub 145f7e9f9c Prepare game schema before client text (#8561) 2026-07-14 14:22:20 -07:00
adminandGitHub 09e5f4801d Explain Shardok command mechanics (#8560) 2026-07-14 14:20:55 -07:00
adminandGitHub 2aa5fa181a Use recommended Shardok starting positions (#8557)
* Use recommended Shardok starting positions

* Snapshot reserves before applying recommendations
2026-07-14 14:20:16 -07:00
adminandGitHub f438c4bbe2 Expose recommended Shardok placements (#8559) 2026-07-14 14:19:44 -07:00
adminandGitHub 66ecc25075 Add Shardok map queries to text client (#8558) 2026-07-14 14:15:20 -07:00
adminandGitHub 562d32d296 Recommend Shardok starting positions (#8556)
* Recommend Shardok starting positions

* Require explicit AI time limits
2026-07-14 14:09:03 -07:00
adminandGitHub bdf9b09b26 Persist creation history in one batch (#8551) 2026-07-14 13:37:29 -07:00
adminandGitHub d2559ff67c Show tactical conditions in text client (#8555) 2026-07-14 13:36:51 -07:00
adminandGitHub 88433fbc18 Batch decision logging off the game thread (#8548) 2026-07-14 13:36:27 -07:00
adminandGitHub 9426488913 Use server-driven tactical tutorial dialogue (#8554) 2026-07-14 13:35:35 -07:00
adminandGitHub 81395a9467 Document Holy Wave mechanics (#8553) 2026-07-14 13:15:10 -07:00
adminandGitHub fb4e0c1bac Validate tactical tutorial dialogues before delivery (#8552) 2026-07-14 11:12:44 -07:00
adminandGitHub 94b273ff60 Validate tutorial dialogue references before delivery (#8544)
* Validate tutorial dialogue references before delivery

* Allow supported tactical tutorial focus
2026-07-14 10:54:12 -07:00
adminandGitHub b179e250dd Render tactical tutorial dialogue in text client (#8550) 2026-07-14 10:51:54 -07:00
adminandGitHub b3e35b60c0 Dispose replaced game model updater (#8545) 2026-07-14 10:47:05 -07:00
adminandGitHub 3a0fa9e59c Instrument AI command phases (#8547) 2026-07-14 10:42:13 -07:00
adminandGitHub cdf7c5649b Serve tactical tutorial dialogue (#8549) 2026-07-14 10:40:27 -07:00
adminandGitHub 743737555e Test tutorial server dialogue queue behavior (#8543) 2026-07-14 10:38:28 -07:00
adminandGitHub 94f2366af3 Reuse AI command availability snapshot (#8546) 2026-07-14 10:36:25 -07:00
adminandGitHub 5d4399cad6 Prefer server copies of tutorial dialogue (#8518)
* Prefer server copies of tutorial dialogue

* Preserve tutorial dialogue model during battle transition

* Retry tutorial dialogue when dependencies arrive

* Pass tutorial model directly to dialogue manager

* Ignore stale game model callbacks

* Ignore incomplete tutorial game identity

* Initialize provisional model game ID

* Persist new game histories with their game ID

* Revert "Persist new game histories with their game ID"

This reverts commit e23610a7c3152b4f4cb5623f1c31b60d1ad23756.

* Remove redundant dialogue text listeners
2026-07-14 09:46:06 -07:00
adminandGitHub 011562a2d6 Avoid Postgres waits during Shardok reconnects (#8542) 2026-07-14 09:44:04 -07:00
adminandGitHub 781c7a8c3d Dispatch initial LLM requests asynchronously (#8541) 2026-07-14 09:26:33 -07:00
adminandGitHub bce1ddaf81 Persist new game histories with their game ID (#8540) 2026-07-14 08:39:30 -07:00
adminandGitHub d734c591a8 Clarify mixed-border AI decision reasons (#8539) 2026-07-14 08:34:45 -07:00
adminandGitHub c5aca2666c Tune AI Rest priority for hero depth (#8537)
* Tune AI rest priority for hero depth

* Raise shallow AI rest threshold

* Consider feast for RestProvince quests
2026-07-14 08:08:42 -07:00
adminandGitHub 6e261ef7b5 Omit unrestricted client text visibility rows (#8538) 2026-07-14 08:02:51 -07:00
adminandGitHub 71240cd9ed Keep one PostgreSQL connection warm (#8536) 2026-07-14 07:05:48 -07:00
adminandGitHub 15d7d30ccf Defer schema pool refill after game creation (#8533) 2026-07-14 06:37:21 -07:00
adminandGitHub f52d54b7c2 Sync Xcode before TestFlight Unity builds (#8534) 2026-07-14 06:35:58 -07:00
6314d3e4e3 Fix water crossing flee scoring (#8527)
* Fix water crossing flee scoring

* Strengthen water crossing creator penalty

* Score crossing creators on one saturating distance scale

Replace the flat unavailable-creator penalty with a single loop over
every crossing-capable unit. Unavailable (fled/captured/destroyed) and
unplaced creators sit at the max distance sentinel, and live distances
(including IMPOSSIBLE) are clamped to it, so losing a crossing creator
can never score better than any placed position. This also removes the
formula discontinuity between the creator-alive and creator-lost
branches that the flee transition crossed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Name water crossing distance sentinel

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 21:37:41 -07:00
adminandGitHub 0e126faee2 Move navigation touch sizing into prefabs (#8529)
* Move navigation touch sizing into prefabs

* Increase Chronicle dismiss touch height
2026-07-13 21:10:10 -07:00
adminandGitHub 763ab63860 Preserve chronicle history on rejoin (#8531) 2026-07-13 18:18:08 -07:00
adminandGitHub 38a15fdf9f Enable PostgreSQL batched insert rewriting (#8530) 2026-07-13 15:11:34 -07:00
adminandGitHub b0446d99e4 Move command panel touch sizing into prefabs (#8528) 2026-07-13 14:32:26 -07:00
adminandGitHub b155494b4d Move Manage Prisoners touch sizing into prefab (#8459) 2026-07-13 14:19:51 -07:00
adminandGitHub 04a51c9fb6 Cap leader relocation marches (#8524) 2026-07-13 14:13:51 -07:00
adminandGitHub ee5cf07db3 Reserve incoming leader destinations (#8523) 2026-07-13 14:13:15 -07:00
adminandGitHub 5c4470b090 Allow left info panels to shrink for alerts (#8467)
* Allow left info panels to shrink for alerts

* Resize left panels only during attacks

* Preserve panel height under attack
2026-07-13 14:10:32 -07:00
adminandGitHub 025bcbbff6 Instrument create-game phases in JFR (#8521) 2026-07-13 08:56:33 -07:00
adminandGitHub c67dc76ed5 Upgrade LLVM toolchain to 22.1.8 (#8520) 2026-07-13 08:40:23 -07:00
adminandGitHub 55c55adf8a Automate Bazel and LLVM Renovate updates (#8519) 2026-07-13 08:23:23 -07:00
adminandGitHub 2c3135a493 Render server-driven tutorial dialogue in Unity (#8487)
* Render server-driven tutorial dialogue in Unity

* Keep startup dialogue fallback available

* Revert "Keep startup dialogue fallback available"

This reverts commit 40ca3b35b3f29c29428f8a08b899ebda13f50dc0.

* Backfill dialogue text for tutorial games

* Restore tutorial runtime for split scenes
2026-07-13 07:38:15 -07:00
adminandGitHub b3b69474e4 Preprovision PostgreSQL game schemas (#8515) 2026-07-13 07:37:37 -07:00