Leonid Pershin
3288287da9
Add AI parent meetings after a class last lesson.
...
Class teachers rarely keep the homeroom; invited parents walk onto the map, opinions nudge, then parents leave OffCampus. No player schedule API.
2026-08-21 13:33:40 +03:00
Leonid Pershin
ccb185566e
Merge branch 'phase/74-attendance'
2026-08-21 13:15:05 +03:00
Leonid Pershin
9e429d0cd7
Show director summons as info toasts and presence queue labels.
...
Corridor waiters need a summon-phase byte on presence (v11); EventDef DirectorSummoned is info-only so clocks keep running.
2026-08-21 13:07:47 +03:00
Leonid Pershin and Cursor
a2b35da4dd
Add lesson attendance from presence (present/late/absent).
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 12:37:01 +03:00
Leonid Pershin and Cursor
d3c2327e23
Merge branch 'phase/77-health-conditions'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 12:22:23 +03:00
Leonid Pershin and Cursor
1ac71aa80d
Merge branch 'phase/73-lesson-marks'
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 12:00:53 +03:00
Leonid Pershin
e40f130248
Auto-summon pupils to the principal after fight breaks, with a corridor FIFO queue.
2026-08-21 11:49:06 +03:00
Leonid Pershin and Cursor
b359bebb41
Add lesson marks 2-5 from lesson quality once per slot.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 11:45:14 +03:00
Leonid Pershin and Cursor
2d31a59a81
Add health condition list, tick, and save for phase 77.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-21 11:41:25 +03:00
Leonid Pershin
fdcaed0f74
Remember recent quarrels, fights and reprimands on the person.
...
Short offense list for the pupil card and save, capped by BehaviorDef — not a discipline score.
2026-08-21 09:37:12 +03:00
Leonid Pershin and Cursor
a554738084
Add EventDef notices, morning and lesson bells, and info toasts.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 20:46:33 +03:00
Leonid Pershin and Cursor
9972b30257
Keep defender-victim opinions as allies after a quarrel.
...
The clash penalty applied to every pair except defender looking at the victim, so the person being helped disliked the defender like a second enemy.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 18:15:55 +03:00
Leonid Pershin
3bd6b2021c
Merge branch 'review/slice-9-ab-recheck'
2026-08-20 17:33:02 +03:00
Leonid Pershin and Cursor
a80c6f097a
Refuse enemies joining an open talk circle.
...
RankInvitees already skipped enemies when a circle formed; a later Chat in the same node still joined without checking opinions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 17:25:36 +03:00
Leonid Pershin
aa20534b77
Add tests that lesson-consequence promises were missing.
...
Teacher action must not cancel gain, a missing warmth need matches full warmth, snow on the street must reach DayPlans, and a lazy pupil still appears closer to the bell.
2026-08-20 17:11:06 +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
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 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
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 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
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
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
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
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 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 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 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
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
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 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
b1b4f18b40
Add opinions storage, morning drift, and Connections card tab.
2026-08-20 07:34:57 +03:00
Leonid Pershin
b9d91d387e
Merge phase/40-clock-tempo.
2026-08-20 07:07:00 +03:00
Leonid Pershin
9199ea36d2
Phase 40: clock tempo at 1 min/s, x5/x10 heavy stride.
2026-08-20 07:02:24 +03:00
Leonid Pershin
230563d5c5
Merge main into review/slice-7bc-climate-wear; journal 32-37.
...
Integrate stage A review from main; resolve reviewed.md; fix dressRulesPanel unused import, managementPanel test, PortraitApiTests URL.
2026-08-20 06:46:36 +03:00
Leonid Pershin
e461a9f3e4
Fix PE change-clothes interruption and post-PE mode detection.
...
Add appropriateness tests for staging PE kit, wearing form before gym, and returning to everyday clothes after the lesson.
2026-08-20 06:31:41 +03:00
Leonid Pershin
aab0c00988
Add school dress rules tab in Management with tests.
2026-08-20 06:20:06 +03:00
Leonid Pershin and Cursor
3485ce8ac4
Close phase 36 apparel-changed log tail.
...
Add simulation and paged day-log tests; mark the log task complete in the phase doc.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 05:44:09 +03:00
Leonid Pershin
6a0d5a9886
Implement phase 35 dress appropriateness and school rules.
...
Adds outfit evaluation, morning home dressing, locker-room ChangeClothes with day-log events, PE/weather AI goals, dress-rules API, and tests.
2026-08-20 05:16:52 +03:00
Leonid Pershin
ce772cd3c3
Phase 33: technician climate control and locker assignment.
2026-08-20 04:44:41 +03:00
Leonid Pershin
ee23fb4994
Merge branch 'phase/36-person-card-tabs'
ci / server (push) Failing after 4m1s
ci / client (push) Failing after 17s
2026-08-20 04:35:35 +03:00
Leonid Pershin
5a431bba99
Merge branch 'main' into phase/32-weather-warmth
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# src/HSchool.Simulation/School.cs
2026-08-20 04:03:42 +03:00
Leonid Pershin and Cursor
53c4ae0f92
Sum warmth insulation from worn items and refresh goldens for the new trait pool.
...
HeatLoving and ColdLoving shift later trait rolls; worn clothes now feed PersonInsulation instead of reflection.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 04:00:53 +03:00
Leonid Pershin and Cursor
6be4fa75ab
Split the person card into overview, clothes, carry and now tabs.
...
Today's history is a paged HTTP log on the worker, not on the card or in people.json.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-20 04:00:38 +03:00