Leonid Pershin and Cursor
d8d042349a
Close gaps in off-queue DX 49/54/55.
...
Pass -c through to dotnet run so Release stamp and process match, assert changelog order for more than one commit, and restore the last school tab from sessionStorage when opening from the menu.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 17:10:01 +03:00
Leonid Pershin and Cursor
ed015b9d6b
Add Krea portrait models and write appearance as prose.
...
New schools default to Realism v2.5; living saves keep their catalog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 16:45:40 +03:00
Leonid Pershin
5e23d1f500
Merge branch 'review/off-queue-portraits'
2026-08-20 16:21:21 +03:00
Leonid Pershin and Cursor
118d1815d8
Record slice 7 B-C recheck after later slices drifted climate and dress paths.
...
Adds a weather-drop walk test so a jacket is not teleported onto the body; PE change regressions already red on main stay open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 16:17:45 +03:00
Leonid Pershin and Cursor
94e3e661e8
Record portrait phases 60-61 as reviewed.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 16:17:17 +03:00
Leonid Pershin
71000655e0
Merge branch 'review/slice-8-recheck'
2026-08-20 16:10:07 +03:00
Leonid Pershin
5490cfb247
Show a bare dash on ownerless school cards.
...
The design asked for the owner name or an em dash; wrapping the dash in the Owner template produced Хозяин: —. Low-speed clock tests now cover x1/2 and x2 as well as x1.
2026-08-20 16:06:59 +03:00
Leonid Pershin
5468852529
Merge branch 'review/slice-7-a-recheck'
2026-08-20 15:57:12 +03:00
Leonid Pershin
5df341f91b
Restore Slavic save lift and redress abstract underwear on load.
...
Recheck of slice 7 stage A found UpgradeOlderSave removed after UpperUnderwear, so format-2 nameSetId saves never started, and golden people.json wearing abstract Underwear failed RequireKnownApparel. Bring back the lift, treat unusable items as undressed, and restore GoldenSaveTests.
2026-08-20 15:52:17 +03:00
Leonid Pershin and Cursor
1ef051764b
Restore golden-save host tests for slice 6 after later formats stopped loading historic files.
...
Phase 39 dropped GoldenSaveTests when format 2 saves became unstartable. Recheck restores the missing-field and seed-equals-id assertions against a stamped copy, and records the recheck.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 15:39:07 +03:00
Leonid Pershin and Cursor
cf1403e3b8
Merge branch 'review/slice-3-recheck'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 15:19:22 +03:00
Leonid Pershin
9c92fb44a7
Merge branch 'phase/61-portrait-loras-embeds'
2026-08-20 15:14:45 +03:00
Leonid Pershin
01ef277f96
Merge branch 'review/slice-4-recheck'
2026-08-20 15:05:08 +03:00
Leonid Pershin and Cursor
a0f0152914
Record slice 3 recheck after later slices drifted staffing paths.
...
Pin homeroom seats, the management money row and assign-from-card, and drop the stale top-three skills claim from the protocol.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 15:01:22 +03:00
Leonid Pershin and Cursor
5a049d43c8
Cover class and person timetable filters that phases 16-17 already promised.
...
GET ?classId=/personId= and personTimetableQuery had no tests; occupancy on the grid comment still pointed at the old map snapshot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:58:39 +03:00
Leonid Pershin and Cursor
9e217e93eb
Stack portrait LoRAs and embeddings from model, preset, and shot kind.
...
Swarm loads LoRAs via loras/loraweights; embeddings go in the prompt as embed tags, not lora tags.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:58:26 +03:00
Leonid Pershin
8108508e24
Merge branch 'review/slice-2-recheck'
2026-08-20 14:58:03 +03:00
Leonid Pershin and Cursor
c2e01f09d3
Lock slice-2 filters and the staff-parent intake path later slices left untested.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:53:56 +03:00
Leonid Pershin
67b7f7ec08
Merge branch 'phase/60-portrait-models'
...
ci / server (push) Failing after 3m46s
ci / client (push) Successful in 21s
# Conflicts:
# docs/phases/off-queue/README.md
2026-08-20 14:46:20 +03:00
Leonid Pershin
5d46550f12
checkpoint before checking out main
2026-08-20 14:43:00 +03:00
Leonid Pershin
d08748638a
Merge branch 'review/slice-1-recheck'
2026-08-20 14:41:29 +03:00
Leonid Pershin and Cursor
2f9c2d707e
Merge branch 'review/slice-9-cd'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:39:07 +03:00
Leonid Pershin and Cursor
f6bb4c76cc
Record slice 1 recheck after clothing, session and social.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:33:30 +03:00
Leonid Pershin and Cursor
19554d4362
Review slice 9 C-D: persist clash opinions and the bully's victim.
...
FinishConflict never set RosterTalkDirty, so people.json skipped quarrel shifts until some other save — the same seam as the A-B talk-circle fix. First BullyVictimId write stayed in RAM only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:27:49 +03:00
Leonid Pershin
820aea53fe
Merge branch 'review/slice-10-a'
...
# Conflicts:
# docs/phases/10-craft/reviewed.md
# docs/phases/reviewed.md
2026-08-20 14:21:18 +03:00
Leonid Pershin and Cursor
b23ce583df
Use Seed.Mix in speech-policy PickTopic tests after Roll01.
...
Sequential integer seeds all roll ~0, so NoRude never saw a rude topic under free speech.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 14:13:14 +03:00
Leonid Pershin
81fd3f6181
Split SwarmUI portraits into a model catalog and layered prompts.
...
Picker is Swarm intersect config, preset style/shot inherit model defaults, and living saves lift the old preset shape.
2026-08-20 14:08:11 +03:00
Leonid Pershin
63cde56cc3
Merge branch 'phase/46-speech-home'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/09-social/README.md
# src/HSchool.Server/Game/SchoolWorker.cs
# tests/HSchool.Ai.Tests/TalkCirclesTests.cs
# tests/HSchool.Simulation.Tests/MorningOpinionsTests.cs
# tests/HSchool.Simulation.Tests/TalkCircleTests.cs
2026-08-20 14:06:29 +03:00
Leonid Pershin
e2e7d30701
Tighten layer graph tests and document npm test typecheck.
...
Content and People/Schedule/Ai now fail the same way if they grow a game-layer edge the projects.md graph forbids; README matches the tsc-then-vitest script from phase 57.
2026-08-20 14:04:35 +03:00
Leonid Pershin and Cursor
f4f726a19d
Merge branch 'phase/58-worker-card-split'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:54:25 +03:00
Leonid Pershin and Cursor
92c2143329
Add speech-topic policy from tomorrow and a morning family talk.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:53:12 +03:00
Leonid Pershin and Cursor
b48bbbcf7c
Split SchoolWorker and the person card along existing seams without a second thread or public API.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:51:39 +03:00
Leonid Pershin and Cursor
cc9ea18480
Merge branch 'review/slice-9-ab'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:40:20 +03:00
Leonid Pershin and Cursor
b38d0bb628
Persist talk opinions and pick topics by weight.
...
A finished circle never set Tick's peopleChanged bit, so people.json kept pre-talk numbers until morning drift. PickTopic compared a 0..total roll to a 0..1 cursor, so gossip almost never changed the subject.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:34:34 +03:00
Leonid Pershin
e62f1c3cb7
Merge branch 'bug/4-wwwroot-not-found'
2026-08-20 13:33:14 +03:00
Leonid Pershin
c526921779
Merge branch 'phase/44-quarrel-fight'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/README.md
# src/HSchool.Content/PeopleDefs.cs
# src/HSchool.People/Roster.cs
# src/HSchool.People/Seed.cs
2026-08-20 13:24:12 +03:00
Leonid Pershin and Cursor
e35b8e438c
Skip UseFileServer when wwwroot is missing.
...
Local Aspire has no published client folder; the middleware warned on every boot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:22:28 +03:00
Leonid Pershin and Cursor
da1a4010f6
Merge branch 'phase/59-dump-nodes'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 13:08:19 +03:00
Leonid Pershin
782a56eefe
Merge branch 'phase/56-architecture-tests'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/10-craft/README.md
2026-08-20 12:54:53 +03:00
Leonid Pershin and Cursor
121c28e4a3
Put layer and wall-clock bans in one test project so Content and Protocol fail the same way as People.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 12:48:00 +03:00
Leonid Pershin and Cursor
0b1a52a5e5
Skip users.json when loading school saves.
...
The session user list sits beside {id}.json; LoadAll treated it as a school with id 0.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 12:46:52 +03:00
Leonid Pershin and Cursor
0d6173431a
Wait for a person on a node before asserting the dump.
...
Needs.Count is true for everyone, so the old OR never caught empty occupancy.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 12:45:18 +03:00
Leonid Pershin and Cursor
449be4e0ea
Show unseen Server commits after login.
...
Bake first-parent git log at Server build and remember the SHA in a browser cookie.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 11:43:36 +03:00
Leonid Pershin and Cursor
395107c959
Add recess quarrels, rare yard and gym fights, and apologies.
...
Bullies remember a victim by a trait field, a defender can join, staff break up a fight with a reprimand, and skip empty time clears leftover clashes so they cannot last forever.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 11:31:06 +03:00
Leonid Pershin
ee6930a39d
Merge branch 'phase/45-presence-talk'
...
# Conflicts:
# docs/phases/README.md
# src/HSchool.Server/Api/PeopleModels.cs
# src/HSchool.Server/Game/PersonCardReader.cs
2026-08-20 11:27:58 +03:00
Leonid Pershin
43267e4482
Merge branch 'review/slice-8-session'
ci / server (push) Failing after 3m36s
ci / client (push) Successful in 17s
2026-08-20 11:11:54 +03:00
Leonid Pershin and Cursor
1c3ae9ab7e
Reject a second live WebSocket for the same session name.
...
Two tabs with the cookie already set never POST /api/session, so name-online on login did not cover the design rule. Claim the name under the same lock as the online check.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 11:04:56 +03:00
Leonid Pershin
ae2e3ddc14
Merge branch 'phase/47-romance-pack'
...
ci / server (push) Failing after 3m39s
ci / client (push) Successful in 19s
# Conflicts:
# docs/phases/README.md
# src/HSchool.Content/PeopleDefs.cs
# src/HSchool.People/Seed.cs
2026-08-20 11:00:12 +03:00
Leonid Pershin
d3396b5b8f
Refactor run-aspire scripts for improved cross-platform support. Replace run-aspire.cmd with run-aspire.ps1 for Windows and add run-aspire.sh for Ubuntu. Update documentation to reflect these changes and ensure synchronization between build rules across scripts. Enhance Tailscale integration and clarify usage instructions.
ci / server (push) Failing after 3m38s
ci / client (push) Successful in 18s
2026-08-20 10:48:19 +03:00
Leonid Pershin and Cursor
2034946378
Show talk-circle partners and topic on the location panel and Now tab.
...
The frame and card share member ids; the client builds the sentence from the directory and locale.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:43:16 +03:00