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
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
8d07b3606d
Merge branch 'phase/57-client-typecheck'
...
# Conflicts:
# docs/phases/10-craft/README.md
2026-08-20 13:12:16 +03:00
Leonid Pershin
45059b927f
Run client typecheck before vitest in npm test.
...
Duplicate keys in strings.ts were green under vitest and red only on build. Drop the self file: dependency loop so npm test is enough.
2026-08-20 12:57:16 +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
36ec5e9f8e
Restore school tabs and filters after refresh.
...
The URL keeps the open school and current view; sessionStorage keeps list filters and searches so F5 and re-entry do not dump the player on an empty map.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 12:03:04 +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
74720af208
Update Vite configuration to serve on 127.0.0.1 for Tailscale compatibility, preventing connection issues on Windows.
ci / server (push) Failing after 3m40s
ci / client (push) Successful in 17s
2026-08-20 10:54:28 +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
Leonid Pershin
d2911c3daf
Complete phase 47 romance pack on generic orientation and affinity hooks.
...
Vanilla catalogs stay without crushes; a content pack ships the overlay so later mods can reuse it.
2026-08-20 10:42:42 +03:00
Leonid Pershin and Cursor
1a21a64b4b
Bump protocol to v9 and carry talk-circle ids on the presence frame.
...
Names stay off the wire; a person not in a circle writes an empty member list and topic.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:42:11 +03:00
Leonid Pershin and Cursor
f45347b335
Merge branch 'phase/43-whisper'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:40:35 +03:00
Leonid Pershin and Cursor
f7d5e0c042
Add lesson whispers, teacher catch chance, and after-bell teacher talk.
...
Whispering cuts lesson skill gain from BehaviorDef; a teacher in the room may interrupt into a discipline circle, and pedagogy scales the pupil's opinion of the teacher.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:35:31 +03:00
Leonid Pershin and Cursor
7851bed14f
Pin Vite to 5173 without an Aspire proxy so AppHost can start.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 10:14:26 +03:00
Leonid Pershin
cb869e4977
Enhance run-aspire.cmd to support Tailscale integration for remote access. The script now checks for Tailscale availability and connection status, providing warnings if not found or connected. Updated documentation in AGENTS.md and README.md to reflect changes, including instructions for using Tailscale with the Vite client. Fixed Vite configuration to pin the client port to 5173 and support HMR over Tailscale. Adjusted AppHost.cs to ensure proper endpoint targeting for Tailscale.
ci / server (push) Failing after 3m45s
ci / client (push) Successful in 17s
2026-08-20 10:02:42 +03:00
Leonid Pershin
51b4c22b69
Merge branch 'phase/39-school-owners'
ci / client (push) Successful in 18s
ci / server (push) Failing after 3m51s
2026-08-20 09:56:13 +03:00
Leonid Pershin
e6dc0d5313
Merge branch 'bug/1-login-layout'
2026-08-20 09:55:42 +03:00
Leonid Pershin and Cursor
cc18429108
Complete phase 39 school owners with owner-scoped API, menu, and tests.
...
Drop golden save load tests in favor of incompatible-save behavior; dress legacy people files on reload; fix AppHost isolation for multi-user socket and save cleanup.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:44:08 +03:00
Leonid Pershin and Cursor
ce71a91a67
Add rain and snow minutes to the morning commute.
...
Day plans take a precomputed extra; Ai does not know precipitation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:40:24 +03:00
Leonid Pershin and Cursor
1b3479f984
Halve lesson gain when the bag has no textbook for the subject.
...
Locker and home do not count. A pack without the field keeps vanilla 0.5.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:27:46 +03:00
Leonid Pershin and Cursor
66451bc629
Center the login gate so the password field is not a full-width strip.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:18:48 +03:00
Leonid Pershin and Cursor
384f9d7273
Merge branch 'phase/51-warmth-lesson'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:09:55 +03:00
Leonid Pershin and Cursor
274814aecd
Scale lesson gain by warmth the same way hunger already did.
...
The bar was live and drove dressing; a frozen pupil in class still learned as if it were May.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 09:06:50 +03:00
Leonid Pershin
ac17abfd90
Merge branch 'phase/42-talk-circles'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# docs/phases/README.md
# src/HSchool.Simulation/PersonLog.cs
2026-08-20 09:03:38 +03:00
Leonid Pershin
47fc10da02
Add talk circles with TopicDef, staff/phone chat, and opinion outcomes.
2026-08-20 08:55:55 +03:00
Leonid Pershin and Cursor
c2579d6767
Scale lesson skill gain by the teacher's subject skill.
...
Hiring a 78-math applicant already cost more than a 41; the class now actually learns faster when that teacher is in the room.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 08:54:13 +03:00
Leonid Pershin
4b236a7916
Merge main into phase/39-school-owners.
...
Keep school owners and phase 41 opinions/portraits together; ResetAsync wipes all saves so shared AppHost tests stay isolated.
2026-08-20 08:36:13 +03:00
Leonid Pershin and Cursor
fbc32f2bfc
Grow lesson skills only when the assigned teacher is standing in the room.
...
The timetable already named a teacher; learning ignored whether they were in the toilet, still walking, or not a person at all.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 08:33:28 +03:00
Leonid Pershin
9d96108516
Add portrait settings support to school creation and update related API and UI components. Enhance error handling for invalid presets and ensure proper cloning of settings. Update tests to validate new functionality.
ci / server (push) Failing after 3m40s
ci / client (push) Failing after 14s
2026-08-20 08:17:58 +03:00