Commit Graph
100 Commits
Author SHA1 Message Date
Leonid PershinandCursor 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 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 PershinandCursor f45347b335 Merge branch 'phase/43-whisper'
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:40:35 +03:00
Leonid PershinandCursor 089917025a Mark phase 43 whisper as complete.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:36:06 +03:00
Leonid PershinandCursor 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 9c49c8b3a6 Update SKILL documentation for phase and bug workflows. Clarified branch creation commands to specify main instead of HEAD, emphasized the importance of not committing phase changes to the bug tree, and provided detailed instructions for managing worktrees and agent interactions. Enhanced clarity on handling dependencies and worktree paths to prevent conflicts.
ci / server (push) Failing after 3m36s
ci / client (push) Successful in 20s
2026-08-20 10:29:56 +03:00
Leonid Pershin b14d27dd81 Merge branch 'bug/2-client-endpoint-proxy'
ci / server (push) Failing after 3m42s
ci / client (push) Successful in 16s
2026-08-20 10:17:31 +03:00
Leonid PershinandCursor 8e9ea6715c Mark phase 45 presence talk as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:16:50 +03:00
Leonid PershinandCursor 491ed39184 bug 2: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:14:58 +03:00
Leonid PershinandCursor 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 PershinandCursor 3bb5d45f10 Mark phase 45 presence talk as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:13:19 +03:00
Leonid PershinandCursor 7eac934533 Mark phase 47 romance pack as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:11:20 +03:00
Leonid PershinandCursor 52a4104f68 Mark phase 43 whisper as in progress.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 10:10:20 +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 PershinandCursor 5257636869 Mark phase 39 school owners as complete.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:45:13 +03:00
Leonid PershinandCursor 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 PershinandCursor b826e1394d Merge branch 'phase/53-weather-commute'
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:43:47 +03:00
Leonid PershinandCursor ab97242bbc phase 53: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:41:02 +03:00
Leonid PershinandCursor 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 PershinandCursor 9f433c2a53 phase 53: mark in progress
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:35:40 +03:00
Leonid PershinandCursor fbac890be2 Merge branch 'phase/52-textbook-lesson'
ci / server (push) Failing after 3m45s
ci / client (push) Failing after 15s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:31:20 +03:00
Leonid Pershin 723f60a9ca Update SKILL.md files to clarify usage of phase and bug handling skills. Added details about agent waves in phase-work, phase-review, and side-work descriptions, emphasizing the shared merge lock and the distinction between different task types. Improved guidance on handling ongoing phases and the importance of not interfering with others' work.
ci / server (push) Failing after 3m39s
ci / client (push) Failing after 2s
2026-08-20 09:30:24 +03:00
Leonid PershinandCursor f064ea9b61 phase 52: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:28:26 +03:00
Leonid PershinandCursor 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 PershinandCursor 6eb32e732b bug 1: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:19:34 +03:00
Leonid PershinandCursor 9665302948 phase 52: mark in progress
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:19:27 +03:00
Leonid PershinandCursor 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 f4a793aca4 Update AGENTS.md and SKILL.md to refine testing policies and clarify project-specific test execution. Emphasized the importance of using filters for tests and avoiding full solution runs unless necessary. Adjusted descriptions in phase-work and side-work skills to align with the new testing guidelines.
ci / server (push) Failing after 3m46s
ci / client (push) Failing after 13s
2026-08-20 09:10:42 +03:00
Leonid PershinandCursor 384f9d7273 Merge branch 'phase/51-warmth-lesson'
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:09:55 +03:00
Leonid PershinandCursor 1ca4d758f8 phase 51: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:07:23 +03:00
Leonid Pershin e18a09ea82 Update AGENTS.md and SKILL.md files to clarify task handling and bug reporting. Added documentation for bug-related tasks in AGENTS.md and refined descriptions in phase-work and side-work skills to specify their usage and differentiate from bug work.
ci / server (push) Failing after 3m39s
ci / client (push) Failing after 13s
2026-08-20 09:06:59 +03:00
Leonid PershinandCursor 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 PershinandCursor 91a72b9b99 phase 51: mark in progress
ci / server (push) Failing after 3m35s
ci / client (push) Failing after 14s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 09:01:18 +03:00
Leonid PershinandCursor aaf539cacc Merge branch 'phase/50-teacher-skill-gain'
ci / server (push) Failing after 3m57s
ci / client (push) Failing after 17s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:58:27 +03:00
Leonid Pershin ef36bd5d35 phase 42: mark complete 2026-08-20 08:56:30 +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 PershinandCursor 7935a3086f phase 50: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:54:53 +03:00
Leonid PershinandCursor 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 PershinandCursor 1287d503b2 Merge branch 'phase/49-skip-stale-build'
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:51:57 +03:00
Leonid PershinandCursor f718f4b63d phase 50: mark in progress
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:48:16 +03:00
Leonid PershinandCursor 3eaecc12e7 Mark phase 49 skip-stale-build complete.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:46:39 +03:00
Leonid PershinandCursor 9bd1b8eea0 Skip MSBuild on run-aspire.cmd when binaries are still newer than sources.
dotnet run always evaluates the Aspire graph. A second launch after Ctrl+C should not wait on that.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:45:44 +03:00
Leonid Pershin 6dcbb3303c Merge branch 'phase/48-lesson-teacher-present' 2026-08-20 08:42:38 +03:00
Leonid PershinandCursor 32283bfada phase 48: mark complete
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:40:04 +03:00
Leonid PershinandCursor bdc902b7ff Renumber remaining lesson-coherence phases to 50-53.
Phase 49 is already claimed for skip-stale-build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:39:29 +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 PershinandCursor 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 PershinandCursor 936d6fb04f phase 48: mark in progress
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:21:47 +03:00
Leonid Pershin 7266678ee9 Mark phase 42 talk-circles as in progress.
ci / server (push) Failing after 3m39s
ci / client (push) Failing after 14s
2026-08-20 08:21:21 +03:00
Leonid PershinandCursor 254c43535e Document off-queue lesson coherence (phases 48-52).
Teacher presence, teacher skill, warmth, textbooks and weather commute are already visible numbers that do not affect the lesson or the walk to school.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 08:21:14 +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
Leonid Pershin db95de0ddf Update AGENTS.md with new task documentation and enhance Russian and English localization for portrait settings.
ci / server (push) Failing after 1m16s
ci / client (push) Failing after 13s
2026-08-20 08:01:46 +03:00
Leonid Pershin 26be7c87f8 WIP phase 39: school owners, my/others menu, guest restrictions. 2026-08-20 07:58:12 +03:00
Leonid Pershin 6264034e4b Merge branch 'phase/41-opinions'
# Conflicts:
#	docs/phases/README.md
2026-08-20 07:58:05 +03:00
Leonid Pershin e35aa0d893 phase 39: mark in progress 2026-08-20 07:40:55 +03:00
Leonid Pershin 3fdbbf488e phase 41: mark complete 2026-08-20 07:35:36 +03:00
Leonid Pershin b1b4f18b40 Add opinions storage, morning drift, and Connections card tab. 2026-08-20 07:34:57 +03:00
Leonid Pershin 40929aa3ce Merge branch 'phase/38-session'
# Conflicts:
#	docs/phases/README.md
#	tests/HSchool.AppHost.Tests/PortraitApiTests.cs
2026-08-20 07:25:12 +03:00
Leonid Pershin 660340c216 Enhance apparel definitions: Introduce 'UpperUnderwear' layer and related items (Bra, SportsBra, SoftBra) to support gender-specific clothing. Update inventory and dress generation logic to accommodate new layers and ensure proper coverage. Adjust localization for new apparel terms and refine tests for underwear functionality. 2026-08-20 07:20:40 +03:00
Leonid Pershin fbd18a646f Mark phase 38 session complete. 2026-08-20 07:17:52 +03:00
Leonid Pershin a444fc011e Add alpha session gate with cookie auth and login UI. 2026-08-20 07:17:18 +03:00
Leonid Pershin 2af85e1c41 phase 41: mark in progress 2026-08-20 07:12:49 +03:00
Leonid Pershin b9d91d387e Merge phase/40-clock-tempo. 2026-08-20 07:07:00 +03:00
Leonid Pershin d459f50074 Update swarmui.json configuration: change model to 'babesByStableYogi_v4XLLightning.safetensors', adjust steps to 7, cfgScale to 1.5, clipSkip to 0, and update scheduler to 'normal'. Refine positive prompt and enhance avatar description.
ci / server (push) Failing after 3m42s
ci / client (push) Successful in 18s
2026-08-20 07:06:17 +03:00
Leonid Pershin 121d08b09a Mark phase 40 complete. 2026-08-20 07:02:52 +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 0401e22506 Update swarmui.json configuration: change model to 'lustifyNSFWCheckpoint_v40DMD2.safetensors', adjust steps to 4, cfgScale to 2, clipSkip to 1, and update scheduler to 'simple'.
ci / server (push) Failing after 3m42s
ci / client (push) Successful in 42s
2026-08-20 06:56:39 +03:00
Leonid Pershin 7a82bcc8b4 Journal: set slice 7 B-C review commit hash. 2026-08-20 06:54:23 +03:00
Leonid Pershin 5dcdee6cdd Merge review/slice-7bc-climate-wear (phases 32-37). 2026-08-20 06:51:27 +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 becfe367ba Mark phase 40 clock tempo as in progress.
ci / server (push) Failing after 1m32s
ci / client (push) Failing after 15s
2026-08-20 06:44:21 +03:00
Leonid Pershin 2900b70645 Mark phase 38 session as in progress. 2026-08-20 06:43:34 +03:00
Leonid Pershin 2a55a025f4 Merge review/slice-7a-wardrobe (phases 29-31)
ci / server (push) Failing after 1m57s
ci / client (push) Failing after 17s
# Conflicts:
#	src/HSchool.Client/src/i18n/strings.ts
2026-08-20 06:39:09 +03:00
Leonid Pershin c4d6ed6f72 Journal slice 7 stage B-C review (phases 32-36). 2026-08-20 06:32:07 +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 dc9830f332 Merge branch 'phase/37-school-rules' 2026-08-20 06:23:35 +03:00
Leonid Pershin beb882123d Journal hash for slice 7A review 2026-08-20 06:21:43 +03:00
Leonid Pershin d5547b7b02 Review slice 7A phases 29-31: fix strings duplicate, journal 2026-08-20 06:20:57 +03:00
Leonid Pershin bb2031317d Mark phase 37 complete. 2026-08-20 06:20:36 +03:00
Leonid Pershin aab0c00988 Add school dress rules tab in Management with tests. 2026-08-20 06:20:06 +03:00
Leonid Pershin b36db2ab2b Update SwarmUI configuration with new model settings and parameters
ci / server (push) Failing after 1m24s
ci / client (push) Successful in 16s
- Changed the default model to 'pornmasterFlux2Klein_v4TurboFp8.safetensors' with updated steps and cfgScale.
- Modified the sampler and scheduler settings for improved performance.
- Cleared the positive prompt for better customization options.
- Updated the child preset model name for consistency.
- Reformatted ageRules for better readability.

These changes enhance the flexibility and clarity of the SwarmUI settings.
2026-08-20 06:14:56 +03:00
Leonid Pershin 11f48b6c99 Update phase documentation with new tasks and enhancements
ci / server (push) Failing after 1m34s
ci / client (push) Successful in 16s
- Added a link to phase 31 in the talk circles documentation.
- Expanded task list in phase 42 to include new topics and conditions for interactions.
- Updated phase 43 to reflect changes in student-teacher dynamics and opinion shifts.
- Enhanced phase 44 with new rules for quarrels and fights, including the role of bystanders and apologies.
- Revised phase 46 to clarify the impact of weekend events on student opinions and relationships.
- Updated README to reflect the latest changes in phases 42, 43, and 44.

These updates improve clarity and detail in the phase documentation, ensuring better understanding of interactions and dynamics.
2026-08-20 06:07:42 +03:00
Leonid Pershin 5a400be792 Add SwarmUI settings management and portrait generation enhancements
- Introduced new API endpoints for managing SwarmUI settings, including fetching and saving presets and age rules.
- Updated the portrait generation logic to utilize the new settings structure, allowing for dynamic preset selection based on age.
- Enhanced UI components to support SwarmUI settings, including localization for new strings and improved styling for settings sections.
- Added tests to verify the functionality of new settings endpoints and portrait generation behavior.

This commit lays the groundwork for more flexible and user-friendly portrait generation options.
2026-08-20 06:06:45 +03:00
Leonid Pershin e0b7122f3b Mark phase 37 as in progress. 2026-08-20 06:00:24 +03:00
Leonid Pershin c541156614 Merge branch 'merge/lock'
ci / server (push) Failing after 3m58s
ci / client (push) Failing after 16s
2026-08-20 05:54:23 +03:00
Leonid Pershin 8b4fbdc41b Merge branch 'phase/36-person-card-tabs' 2026-08-20 05:54:23 +03:00
Leonid PershinandCursor b5ea9f4667 Mark phase 36 complete in phases README.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 05:45:05 +03:00
Leonid PershinandCursor 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 6eb16d0edf Enhance person card functionality: add custom prompt textarea persistence during input, streamline portrait prompt API by removing unused parameters, and ensure proper button state management based on input. Update tests to verify new behavior.
ci / server (push) Failing after 3m44s
ci / client (push) Failing after 14s
2026-08-20 05:32:40 +03:00
Leonid Pershin 3fa6ce95df Implement portrait prompt API and UI enhancements. Added a new endpoint to fetch portrait prompts, updated the client to handle prompt display, and improved localization for prompt-related text. Enhanced styling for prompt elements in the UI.
ci / server (push) Failing after 3m40s
ci / client (push) Failing after 15s
2026-08-20 05:27:01 +03:00
Leonid Pershin a214378c6e Merge branch 'phase/35-appropriateness'
ci / server (push) Failing after 3m44s
ci / client (push) Failing after 14s
# Conflicts:
#	docs/phases/README.md
2026-08-20 05:19:33 +03:00
Leonid Pershin feda98d555 Mark phase 35 complete. 2026-08-20 05:17:23 +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 ac0470bbc4 Implement custom portrait generation: update API, UI, and localization to support user-defined prompts for portraits, replacing half-body option with custom variant.
ci / server (push) Failing after 3m38s
ci / client (push) Failing after 14s
2026-08-20 05:16:40 +03:00
Leonid Pershin df0aaad403 Add half-body portrait support: update API, UI, and localization for new portrait type
ci / server (push) Failing after 3m40s
ci / client (push) Failing after 14s
2026-08-20 05:10:51 +03:00
Leonid Pershin 9e11c8c693 Update full body avatar dimensions in swarmui.json to 896x1152 for better visual representation.
ci / server (push) Failing after 3m44s
ci / client (push) Failing after 14s
2026-08-20 05:07:31 +03:00
Leonid Pershin 2d6bf4041c Update avatar dimensions in swarmui.json to 1024x1024 for improved image quality.
ci / server (push) Failing after 3m44s
ci / client (push) Failing after 14s
2026-08-20 05:05:35 +03:00