Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
9ab2ccf
Fix test encoding: convert comments to KOI8-R
kvirund Feb 3, 2026
f8f894a
Fix encoding + byte/ubyte via Koi8rYamlEmitter
kvirund Feb 5, 2026
f0a7f6c
Add Web Admin API with Unix Domain Socket
kvirund Feb 7, 2026
a39d162
Fix Admin API implementation issues
kvirund Feb 8, 2026
5320847
Fix Admin API output handling
kvirund Feb 8, 2026
bf073eb
Add room tests to Admin API test suite
kvirund Feb 8, 2026
741baee
Add list commands to Admin API test suite
kvirund Feb 8, 2026
c9df582
Add create/delete tests to Admin API suite
kvirund Feb 8, 2026
3249383
Add create/delete tests for objects and rooms
kvirund Feb 8, 2026
7178236
Fix Admin API crashes and add OLC output capture
kvirund Feb 8, 2026
7813817
Add mudlog notification for Admin API commands
kvirund Feb 8, 2026
bf3a1e6
Fix YAML serialization bugs and improve Admin API tests
kvirund Feb 8, 2026
271092c
Fix YAML verification and improve create tests
kvirund Feb 8, 2026
990261f
Add triggers support for rooms in Admin API
kvirund Feb 8, 2026
d94900d
Add comprehensive field tests for all entities
kvirund Feb 8, 2026
3607d85
Add get_stats API endpoint and redesign Web UI
kvirund Feb 8, 2026
e683bb4
Fix mob save issues and add connection logging
kvirund Feb 8, 2026
c89f28b
Merge statistics and navigation into unified cards
kvirund Feb 8, 2026
8e65454
Remove debug logging from update_mob
kvirund Feb 8, 2026
5063b06
Remove all debug logging from Admin API
kvirund Feb 8, 2026
4fb68e9
Revert to working state: filter unsupported fields in JS
kvirund Feb 8, 2026
7349bd6
Add full mob field support to Admin API
kvirund Feb 8, 2026
7c8ccb6
Unify Admin API tests into single full_crud_test command
kvirund Feb 8, 2026
fd7dc69
Add all editable fields to get_mob response
kvirund Feb 8, 2026
0d49ba6
Add get_players endpoint and integrate into Web UI
kvirund Feb 9, 2026
7802704
Fix room_detail route error in index.html
kvirund Feb 9, 2026
68a2e47
Complete ALL mob fields support and improve get_players
kvirund Feb 9, 2026
6c02db0
Complete OBJECT backend and Web UI with ALL fields
kvirund Feb 9, 2026
c3c707a
Fix objects_list: display short_desc and add view/edit buttons
kvirund Feb 9, 2026
8bdc2aa
Complete object_detail.html to show ALL fields
kvirund Feb 9, 2026
4983053
Fix object_edit form: prevent default submission
kvirund Feb 9, 2026
cadbb93
Fix: Add scripts block to base.html
kvirund Feb 9, 2026
2e7b55d
Complete TRIGGER backend and Web UI with ALL fields
kvirund Feb 9, 2026
c201e5d
Fix socket read for large responses and increase timeout
kvirund Feb 9, 2026
b658b5b
Fix socket reading: use line-based protocol instead of close-based
kvirund Feb 9, 2026
ff0c51a
Fix update_trigger segfault: add missing descriptor initialization
kvirund Feb 9, 2026
a64cf82
Fix update_trigger: initialize cmdlist after copy
kvirund Feb 9, 2026
cac5cd3
Fix trigger persistence to disk in YAML/SQLite formats
kvirund Feb 9, 2026
4624bf2
Fix zone_table[0] reservation to match room design (kNowhere)
kvirund Feb 9, 2026
f6c4851
Fix admin_api_update_zone: use vnum=1 to mark zone as modified
kvirund Feb 9, 2026
83cfb30
Exclude zone 0 (kNowhere) from Admin API list and stats
kvirund Feb 9, 2026
69f23d3
Fix dropdown and textarea styling in zone edit form
kvirund Feb 9, 2026
0ba1951
Add room editing functionality to Web UI
kvirund Feb 9, 2026
b56f18d
Improve form styling and layout
kvirund Feb 9, 2026
595b2f8
Add human-friendly dropdowns and fix all labels
kvirund Feb 9, 2026
619b257
Add human-friendly dropdowns and improve form UX
kvirund Feb 9, 2026
6008522
Add dice roll average preview for Gold + fix breadcrumbs
kvirund Feb 9, 2026
2718b97
Add race/class/attack_type dropdowns in mob_edit.html
kvirund Feb 9, 2026
681ae9a
Fix YAML loader: add race field parsing for mobs
kvirund Feb 9, 2026
9a5e456
Fix SQLite loader: add mob_class and race field reading
kvirund Feb 9, 2026
3fe9612
Improve trigger type flags UI: toggle buttons, hex values, Russian na…
kvirund Feb 10, 2026
eebfc22
Add zone name to room detail page subtitle
kvirund Feb 10, 2026
be0c582
Clarify zone 'top' field label
kvirund Feb 10, 2026
ef570b5
Clarify zone reset_idle label
kvirund Feb 10, 2026
abcde0d
Redesign exits UI: show only existing, add/remove functionality
kvirund Feb 10, 2026
7468866
Improve trigger binary display + make zone top editable
kvirund Feb 10, 2026
3f1e795
Fix zone_edit.html: clarify reset_idle label to match detail view
kvirund Feb 10, 2026
8c86262
Fix trigger binary display alignment
kvirund Feb 10, 2026
de6b9c5
Replace text binary display with visual bit boxes
kvirund Feb 10, 2026
8d30003
Fix bit boxes initialization on page load
kvirund Feb 10, 2026
8f835f7
Fix trigger flag name: HitPrcnt → Hit Percent
kvirund Feb 10, 2026
1d06e2c
Fix room exits update: clear existing exits before applying JSON
kvirund Feb 10, 2026
0e10490
Arrange trigger flags in 4-column grid for better readability
kvirund Feb 10, 2026
d533268
Fix trigger flags grid: reduce to 3 columns
kvirund Feb 10, 2026
0c27039
Add client-side validation to all edit forms
kvirund Feb 10, 2026
f9c450f
Improve trigger flags display: two-column layout with aligned values
kvirund Feb 10, 2026
129b76b
Revert "Improve trigger flags display: two-column layout with aligned…
kvirund Feb 10, 2026
e3af004
feat: Complete OLC field coverage - Room flags, Mob fields, UX improv…
kvirund Feb 10, 2026
9f43c6f
fix: Add zone locked field + fix zone types dropdown
kvirund Feb 10, 2026
903c25c
fix: Correct enum mappings in YAML converter
kvirund Feb 10, 2026
641936f
fix: Fix mob validation + improve roles UI
kvirund Feb 10, 2026
69a2097
fix: Load mob flags from CharData + show OLC players in get_players
kvirund Feb 10, 2026
24b0465
feat: Add MUD color rendering, large payload support, and comprehensi…
kvirund Feb 10, 2026
f43e804
feat: Add tag input component for skills/spells/helpers
kvirund Feb 10, 2026
ca12ffc
feat: Add autocomplete component for entity references
kvirund Feb 10, 2026
04c095b
fix: Complete rewrite of tag input with autocomplete and validation
kvirund Feb 10, 2026
952469d
fix: Don't show autocomplete when entering value part in key:value tags
kvirund Feb 11, 2026
6ccb745
fix: Prevent double wrapping in addColorOverlay
kvirund Feb 11, 2026
92debf1
revert: Disable tag input, use plain text for now
kvirund Feb 11, 2026
2a1e13d
fix: Skip None values when populating sectors table in SQLite
kvirund Feb 11, 2026
7ff435f
fix: Skip None values in YAML dictionary generation
kvirund Feb 11, 2026
1efea20
Update .gitignore
kvirund Feb 11, 2026
281b7e9
Update .gitignore
kvirund Feb 11, 2026
7871c71
Update .gitignore
kvirund Feb 11, 2026
b2f9ef0
Delete WEB_ADMIN_IMPLEMENTATION_STATUS.md
kvirund Feb 11, 2026
dd063dc
Delete docs/ADMIN_API.md
kvirund Feb 11, 2026
a290071
Delete WEB_ADMIN_READY.md
kvirund Feb 11, 2026
7272481
Delete YAML_BUGS.md
kvirund Feb 11, 2026
8c8baab
fix: Skip zone_table[0] (kNowhere) in CalculateFirstAndLastRooms
kvirund Feb 11, 2026
2feabdb
fix: Address PR #2891 review comments
kvirund Feb 11, 2026
8004a4c
fix: Restore proper KOI8-R encoding in comm.cpp and descriptor_data.h
kvirund Feb 11, 2026
596b1bf
fix: Restore proper error notification with MAX(kLvlBuilder, GET_INVI…
kvirund Feb 11, 2026
66cd4eb
fix: Remove NullWorldDataSource fallback and fix structs.h encoding
kvirund Feb 11, 2026
5de2879
fix: Restore indent-level validation in trigedit_save()
kvirund Feb 11, 2026
5c40376
Revert "fix: Restore indent-level validation in trigedit_save()"
kvirund Feb 11, 2026
d67386f
ci: Add GitHub Actions multi-platform CI/CD workflows
kvirund Feb 11, 2026
caabd08
docs: Add CI/CD status badges to README
kvirund Feb 11, 2026
a5a2b85
fix: Remove default parameters and add missing Admin API fields
kvirund Feb 11, 2026
64a230e
fix: Restore lost code from bad encoding fix (including -W flag)
kvirund Feb 11, 2026
0830b04
ci: Add workflow optimizations and local testing support
kvirund Feb 11, 2026
897a6a3
fix: Change GCC 15 to GCC 14 in CI (GCC 15 not available yet)
kvirund Feb 11, 2026
c690e76
fix: Add smart fallback for GCC 15 installation
kvirund Feb 11, 2026
197a940
fix: Use Ubuntu 25.04 container for real GCC 15 build
kvirund Feb 11, 2026
5c66069
fix: Switch to Debian Sid container for GCC 15
kvirund Feb 11, 2026
1d0addd
fix: Add missing gcc-core package for Cygwin
kvirund Feb 11, 2026
4fe6049
fix: Split combined Configure+Build steps for better diagnostics
kvirund Feb 11, 2026
07a19d1
fix: Reserve zone_table[0] for Legacy loader + restore Russian text i…
kvirund Feb 11, 2026
f4b6972
fix: Reserve zone_table[0] for SQLite loader (same bug as Legacy)
kvirund Feb 11, 2026
6d53ece
fix: Always convert SQLite worlds to avoid stale/empty databases
kvirund Feb 11, 2026
a901586
chore: Add data/ and misc/ to .gitignore
kvirund Feb 11, 2026
a4d4190
docs: Emphasize ALL binaries must run from out-of-source build direct…
kvirund Feb 11, 2026
fcb91d7
fix: Change OLC log path from ../log/olc.log to log/olc.log
kvirund Feb 12, 2026
8a6892a
fix: Replace corrupted UTF-8 encoding in comm.cpp with English placeh…
kvirund Feb 12, 2026
37b3c98
fix: Admin API connection closes after authentication
kvirund Feb 12, 2026
212ed68
fix: Wait for checksum completion in run_load_tests.sh
kvirund Feb 12, 2026
86e15cd
feat: Add helpful error message when YAML server encounters Legacy world
kvirund Feb 12, 2026
4e55f1b
fix: Correct response key in test_large_payload and improve trigger test
kvirund Feb 12, 2026
d2f3805
fix: Add null checks to GET_INVIS_LEV and SET_INVIS_LEV
kvirund Feb 12, 2026
432beee
fix: Restore Russian text in comm.cpp log strings
kvirund Feb 12, 2026
69d60b7
refactor: Replace corrupted Russian comments with English in comm.cpp
kvirund Feb 12, 2026
332e19f
Fix of the encoding.
kvirund Feb 13, 2026
f9e3f4e
Balancing the brackets.
kvirund Feb 13, 2026
0b19c84
refactor: Fix brace structure and improve readability in epoll event …
kvirund Feb 13, 2026
e4510ed
Merge remote-tracking branch 'origin/master' into world-load-refactoring
kvirund Feb 13, 2026
b8f94f5
fix: Update kZonedacay to kZonedecay after master merge
kvirund Feb 13, 2026
1bcf9b8
fix: Resolve compiler warnings in YAML/SQLite loaders
kvirund Feb 13, 2026
a5e1790
fix: Use (void) cast instead of [[maybe_unused]] for system() calls
kvirund Feb 13, 2026
b99054f
fix: Complete kZonedecay fix in SQLite and fix GCC 15 git ownership
kvirund Feb 13, 2026
dce6079
refactor: Replace system() mkdir with std::filesystem::create_directo…
kvirund Feb 13, 2026
45fb687
fix: Improve error handling in SaveDetailedBuffers
kvirund Feb 13, 2026
7c34efe
ci: Add missing dependencies for GCC 15 and WSL builds
kvirund Feb 13, 2026
37ff6a4
fix: Replace cp --update=none with -n for compatibility
kvirund Feb 13, 2026
789607b
refactor: Remove duplicate files from lib.template
kvirund Feb 13, 2026
bd4d60a
ci: Upgrade WSL to Ubuntu 24.04 for GCC 13 support
kvirund Feb 13, 2026
e2ba559
ci: Fix Cygwin mirror connection issues
kvirund Feb 13, 2026
2e719f6
ci: Fix Cygwin and MinGW build errors
kvirund Feb 13, 2026
6ac45f6
fix: Copy test data files to build directory, not source
kvirund Feb 13, 2026
dc7fc0f
ci: Change build type to Release and add YAML support for Windows pla…
kvirund Feb 13, 2026
d8c6ac7
ci: Restructure Windows platform builds to separate test and YAML con…
kvirund Feb 13, 2026
28c29ca
fix: Copy test grouping file to build directory instead of source
kvirund Feb 13, 2026
ceb42e1
refactor(admin_api): Stage 1 - Add constants infrastructure
kvirund Feb 13, 2026
14b11f4
ci: Replace MinGW with Clang builds for macOS and Windows
kvirund Feb 13, 2026
a31698c
refactor(admin_api): Stage 2 - Implement JSON Helpers
kvirund Feb 13, 2026
bd5730e
refactor(admin_api): Stage 3 - Implement Serializers
kvirund Feb 13, 2026
86ae780
refactor(admin_api): Stage 4 - Implement Parsers
kvirund Feb 13, 2026
75fd769
refactor(admin_api): Stage 5 - Implement CRUD Handlers
kvirund Feb 13, 2026
20db5b8
fix: Use platform-independent CMake commands for directory copying
kvirund Feb 13, 2026
fdfc4a2
refactor(admin_api): Stage 6 - Implement Command Registry (incomplete)
kvirund Feb 13, 2026
2721f7b
refactor(admin_api): Remove unused Command enum and string conversion
kvirund Feb 13, 2026
50640fa
refactor: Complete Stage 7 - Admin API integration and cleanup
kvirund Feb 13, 2026
faa6210
Revert "refactor: Complete Stage 7 - Admin API integration and cleanup"
kvirund Feb 13, 2026
a697ed9
fix(admin_api): Fix encoding in header comments
kvirund Feb 13, 2026
7085c4f
fix(admin_api): Restore full API declarations after revert
kvirund Feb 13, 2026
26abb5a
Revert "fix(admin_api): Restore full API declarations after revert"
kvirund Feb 13, 2026
2b0bae5
Revert "fix(admin_api): Fix encoding in header comments"
kvirund Feb 13, 2026
7bbf259
Reapply "refactor: Complete Stage 7 - Admin API integration and cleanup"
kvirund Feb 13, 2026
c03cce4
refactor(admin_api): Hybrid approach - keep working code + new modules
kvirund Feb 13, 2026
0f93a9a
feat: Complete Admin API refactoring with all handler implementations
kvirund Feb 13, 2026
b6a824f
fix: Remove stray closing brace in serializers.cpp
kvirund Feb 13, 2026
8faa31a
fix: Restore KOI8-R encoding in comm.cpp
kvirund Feb 13, 2026
5c0635c
refactor: Complete Admin API cleanup - remove old code, use modular h…
kvirund Feb 13, 2026
8852757
fix: Restore comm.cpp from master to fix compilation errors
kvirund Feb 13, 2026
ba83bc9
fix: Restore working comm.cpp from before encoding fix
kvirund Feb 13, 2026
4820da3
refactor: Fix Admin API namespace and cleanup unused code
kvirund Feb 13, 2026
2a20d00
feat: Increase Admin API MAX_CHUNKS and fix test chunking
kvirund Feb 13, 2026
db7826c
fix: Change DescriptorData forward declarations from class to struct
kvirund Feb 13, 2026
8a1af23
fix: Remove redundant const from auto return types
kvirund Feb 13, 2026
4cd4376
fix: Replace std::result_of with std::invoke_result and remove redund…
kvirund Feb 13, 2026
81f2999
ci: Add libgtest-devel to Cygwin packages
kvirund Feb 13, 2026
6e195ca
fix: Remove redundant const from auto return types and fix file encod…
kvirund Feb 13, 2026
c845b8f
fix: Correct std::invoke_result usage in ThreadPool::Enqueue
kvirund Feb 14, 2026
0c55946
fix: Add /lib to GTest search paths for Cygwin compatibility
kvirund Feb 14, 2026
5fb9416
fix: Disable tests for Cygwin builds (GTest not available)
kvirund Feb 14, 2026
8723df0
fix: Add libcrypt-devel for Cygwin and include crypt.h
kvirund Feb 14, 2026
64c4d55
fix: Add fallback for yaml-cpp detection in Cygwin
kvirund Feb 14, 2026
a47cfe2
fix: Check if yaml-cpp target exists before accessing properties
kvirund Feb 14, 2026
939d753
fix: Add more library name variants and debug output for yaml-cpp search
kvirund Feb 14, 2026
7b5fefc
fix: Use .dll import libraries for yaml-cpp in Cygwin
kvirund Feb 14, 2026
e61ba12
fix: Remove Cygwin+YAML build (yaml-cpp not available in official repo)
kvirund Feb 14, 2026
5d80b81
feat: Add Cygwin+YAML build with yaml-cpp built from source
kvirund Feb 14, 2026
b9ab31a
fix: Use yaml-cpp 0.7.0 for Cygwin (0.8.0 requires newer CMake)
kvirund Feb 14, 2026
6dc20f7
fix: Use correct yaml-cpp tag name (yaml-cpp-0.7.0)
kvirund Feb 14, 2026
b93a5b8
fix: Add 1MB size limit for Admin API input with accumulative buffer
kvirund Feb 14, 2026
34ad5bc
fix: Restore complete Admin API CRUD implementations
kvirund Feb 14, 2026
1ccb208
fix: Use yaml-cpp 0.6.3 for Cygwin (0.7.0 also requires newer CMake)
kvirund Feb 14, 2026
38fdc2a
fix: Use yaml-cpp 0.7.0 with CMAKE_POLICY_VERSION_MINIMUM=3.5 for Cygwin
kvirund Feb 14, 2026
f5f7655
fix: Runtime checksums calculation and comparison
kvirund Feb 15, 2026
552db9b
fix(msvc): Port Windows MSVC compatibility fixes
kvirund Feb 15, 2026
4bd6b20
fix(msvc): Fix MSVC warnings (C4267, C4334, C4477, C4834, C4805)
kvirund Feb 15, 2026
d0c1bd6
fix(clang): Add missing #include <string> for Windows clang
kvirund Feb 15, 2026
66ded13
fix: Restore correct encoding in comm.cpp and tests/CMakeLists.txt
kvirund Feb 15, 2026
ed77e47
Revert "fix: Restore correct encoding in comm.cpp and tests/CMakeList…
kvirund Feb 15, 2026
e780120
fix: Restore KOI8-R encoding in comm.cpp and tests/CMakeLists.txt
kvirund Feb 15, 2026
f71d083
feat: Add legacy world support to Admin API tests and integrate with …
kvirund Feb 17, 2026
6a894e9
fix: Fix Admin API tests - room exits and world recreation
kvirund Feb 17, 2026
4e129fd
fix: Clean old YAML world before conversion and adjust room test
kvirund Feb 17, 2026
ca78f50
fix: Cleanup only converted files, not legacy source files
kvirund Feb 17, 2026
ff990f0
fix: Remove --delete-source flag from conversions
kvirund Feb 17, 2026
4627c86
fix(admin_api): Complete ParseRoomUpdate refactoring
kvirund Feb 17, 2026
5e3c7a9
refactor(admin_api): Complete ParseTriggerUpdate and use it in handler
kvirund Feb 17, 2026
4d33b66
fix(windows): Fix MSVC compilation errors and warnings
kvirund Feb 17, 2026
34bc513
fix(msvc): Fix Windows build errors - chmod calls and missing includes
kvirund Feb 17, 2026
e580f21
fix(msvc): Fix compiler nesting limit in dg_scripts.cpp
kvirund Feb 17, 2026
f9a8a64
fix(msvc): Split char field dispatch to avoid nesting limit (C1061)
kvirund Feb 18, 2026
9e5bde2
fix(cmake): Enable UTF8 support in libfort for Windows build
kvirund Feb 18, 2026
7a479e4
fix(cmake,templates): Fix Windows Clang build errors
kvirund Feb 18, 2026
6c84f53
fix(tests): Disable fmt Unicode mode for Windows tests
kvirund Feb 18, 2026
a0912f8
fix(tests): Set working directory and use ASSERT for critical checks
kvirund Feb 18, 2026
0af914e
fix(tests): Use set_tests_properties for WORKING_DIRECTORY
kvirund Feb 18, 2026
a555721
fix(ci): Run Windows Clang tests from build/ directory
kvirund Feb 18, 2026
f72b079
fix(ci): Enable tests everywhere, remove duplicate configs
kvirund Feb 18, 2026
4de319d
fix(ci): Add missing GTest dependencies to all builds
kvirund Feb 18, 2026
3862dd2
fix(ci): Build GTest from source for Cygwin, add Windows exit code debug
kvirund Feb 18, 2026
529ba44
fix(tests): Use exit() instead of return to prevent Windows heap corr…
kvirund Feb 18, 2026
c40bd11
fix(tests): Use _Exit() instead of exit() for Windows heap corruption
kvirund Feb 18, 2026
c8a4a37
feat(ci): Add Base + Admin API build configuration
kvirund Feb 18, 2026
f2511c4
feat(tests): Add coverage infrastructure and new unit tests
kvirund Feb 20, 2026
ba2f0d4
tests: add Utils_String coverage and fix Cygwin mirror
kvirund Feb 20, 2026
3651955
ci: add Coverage job with Codecov and HTML artifact upload
kvirund Feb 20, 2026
141830e
ci: run Coverage job on all triggered branches
kvirund Feb 20, 2026
3aa718f
ci: limit Coverage job to master, world-load-refactoring and PRs
kvirund Feb 20, 2026
08291dd
ci: rename all jobs to consistent Platform / Compiler / Features format
kvirund Feb 20, 2026
9739dfd
docs: rename readme.markdown to README.md
kvirund Feb 20, 2026
5fd28ce
ci: upgrade codecov-action to v5, add coverage badge to README
kvirund Feb 20, 2026
93f18e1
build: fix CMakeLists.txt after readme.markdown -> README.md rename
kvirund Feb 20, 2026
ae82334
ci: remove Codecov upload (requires org admin token for protected bra…
kvirund Feb 20, 2026
4578576
ci: restore Codecov upload with token, add coverage badge to README
kvirund Feb 20, 2026
e2d6248
ci: add codecov.yml to exclude tests/ and third_party_libs/ from cove…
kvirund Feb 20, 2026
9e2fbb4
tests: add unit tests for DG script trigger subsystem
kvirund Feb 21, 2026
be6b407
ci: remove continue-on-error, enforce hard failures
kvirund Feb 21, 2026
eb81b23
style: fix indentation and spurious vim modeline
kvirund Feb 21, 2026
8b9d6fb
refactor: убрать лишнюю проверку d->character в zedit_disp_menu
kvirund Feb 21, 2026
50a7d7a
tests: безусловно пересоздавать полный мир перед загрузочными тестами
kvirund Feb 21, 2026
6d95c40
tests: безусловно пересоздавать малый мир (то же, что и полный)
kvirund Feb 21, 2026
018b899
build: убрать лишний симлинк lib -> lib.template в build-директории
kvirund Feb 21, 2026
15fc903
tests: конвертация полного мира теперь in-place, как у малого
kvirund Feb 21, 2026
626d6bd
tests: конвертация полного мира in-place в lib/, затем flatten
kvirund Feb 21, 2026
7b6c19b
build: исправить пути к data-файлам в MISC_FILES
kvirund Feb 21, 2026
7e802c8
Merge remote-tracking branch 'origin/master' into world-load-refactoring
kvirund Feb 21, 2026
73928a3
fix: replace zone_table[0] kNowhere sentinel with proper kNoZone = -1…
kvirund Feb 22, 2026
dbe563b
fix: restore log/syslog placement to working directory (before chdir)
kvirund Feb 22, 2026
615bd12
feat: allow overriding port and flags via environment variables in au…
kvirund Feb 22, 2026
ed68623
fix: use nohup in launch script, add PID file
kvirund Feb 22, 2026
6b3c20d
рефакторинг: пробросить аргументы через launch → autorun → circle
kvirund Feb 22, 2026
4a6dae6
рефакторинг: путь до бинарника переопределяется через MUD_BINARY
kvirund Feb 22, 2026
6508299
рефакторинг: launch находит autorun по своей директории; переменная M…
kvirund Feb 22, 2026
732ccae
fix: запускать сервер из data_dir в тестах загрузки
kvirund Feb 22, 2026
8bce62f
fix: создавать ../log/perslog/ на лету; exec в тестах для корректного…
kvirund Feb 22, 2026
07d6a04
рефакторинг: использовать runtime_config.log_dir() вместо ../log/
kvirund Feb 22, 2026
762bc8c
тесты: fuser + wait для корректной остановки Admin API сервера
kvirund Feb 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .actrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# act configuration
# Use medium-sized images for better compatibility
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/src/** working-tree-encoding=KOI8-R eol=lf
/tests/** working-tree-encoding=KOI8-R eol=lf
/tests/**/*.py working-tree-encoding=UTF-8 eol=lf
*.md working-tree-encoding=UTF-8 eol=lf
/.githooks/** working-tree-encoding=UTF-8 eol=lf
/lib.template/** working-tree-encoding=KOI8-R eol=lf
/lib/text/help/** working-tree-encoding=KOI8-R eol=lf
/lib/etc/board/** working-tree-encoding=KOI8-R eol=lf
Expand Down
48 changes: 48 additions & 0 deletions .githooks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Git Hooks

This directory contains git hooks for the project.

## Installation

Run the installation script to set up hooks in your local repository:

```bash
.githooks/install.sh
```

Or configure git to use this directory for hooks (Git 2.9+):

```bash
git config core.hooksPath .githooks
```

## Available Hooks

### pre-commit

Проверяет кодировку файлов перед коммитом. Блокирует коммит если:

1. Найден символ замены U+FFFD (Unicode Replacement Character)
2. Файл должен быть KOI8-R (по .gitattributes), но находится в UTF-8
3. Найдены типичные паттерны битой кодировки

**Как исправить ошибки кодировки:**

```bash
# Вариант 1: Конвертация файла
iconv -f utf-8 -t koi8-r file_utf8.cpp > file.cpp

# Вариант 2: Редактирование через UTF-8
iconv -f koi8-r -t utf-8 file.cpp > /tmp/file_utf8.cpp
# Edit /tmp/file_utf8.cpp
iconv -f utf-8 -t koi8-r /tmp/file_utf8.cpp > file.cpp

# Вариант 3: Срочный коммит (не рекомендуется)
git commit --no-verify
```

## Adding New Hooks

1. Create executable hook file in `.githooks/` directory
2. Run `.githooks/install.sh` to install it locally
3. Commit the hook file so other developers can use it
34 changes: 34 additions & 0 deletions .githooks/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash
#
# Install git hooks from .githooks/ directory
#

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
GIT_HOOKS_DIR="$(git rev-parse --git-path hooks)"

echo "Installing git hooks..."

# Copy all executable files from .githooks to .git/hooks
for hook in "$SCRIPT_DIR"/*; do
# Skip install.sh itself
if [ "$(basename "$hook")" = "install.sh" ]; then
continue
fi

# Skip README
if [ "$(basename "$hook")" = "README.md" ]; then
continue
fi

if [ -f "$hook" ] && [ -x "$hook" ]; then
hook_name=$(basename "$hook")
echo " Installing $hook_name..."
cp "$hook" "$GIT_HOOKS_DIR/$hook_name"
chmod +x "$GIT_HOOKS_DIR/$hook_name"
fi
done

echo "✓ Git hooks installed successfully"
echo ""
echo "Installed hooks:"
ls -la "$GIT_HOOKS_DIR" | grep -E "^-rwx" | awk '{print " - " $9}'
134 changes: 134 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
#!/bin/bash

# ============================================================================
# Pre-commit hook: проверка кодировки файлов
# ============================================================================
# Блокирует коммит если:
# 1. Найден символ замены U+FFFD (О©╫)
# 2. Файл должен быть KOI8-R, но находится в UTF-8
# 3. Найдены типичные паттерны битой кодировки
# ============================================================================

# Код символа О©╫ (Unicode Replacement Character U+FFFD) в UTF-8: \xEF\xBF\xBD
BAD_CHAR=$(printf "\xef\xbf\xbd")

# Получаем список измененных файлов (только текст, исключая удаленные)
FILES=$(git diff --cached --name-only --diff-filter=ACM)

# Если файлов нет, просто выходим
[ -z "$FILES" ] && exit 0

ERROR_FOUND=0

# Функция проверки, должен ли файл быть в KOI8-R
is_koi8r_file() {
local file="$1"
# Проверяем .gitattributes
git check-attr working-tree-encoding "$file" | grep -q "koi8-r\|KOI8-R"
}

# Функция определения кодировки файла
detect_encoding() {
local file="$1"
# Используем file для определения кодировки
file -b --mime-encoding "$file" 2>/dev/null
}

# Паттерны типичной битой кодировки (UTF-8 байты от русских букв в KOI8-R)
# п·б╘ = d0 bf c2 b7 d0 b1 e2 95 98
# Это происходит когда KOI8-R текст читается как UTF-8
check_corruption_patterns() {
local file="$1"

# Проверка 1: Символ замены U+FFFD
if grep -q "$BAD_CHAR" "$file" 2>/dev/null; then
echo " ⚠ Найден символ замены U+FFFD (О©╫)"
return 1
fi

# Проверка 2: Типичные битые паттерны
# п·б (d0 bf c2 b7)
if grep -qP '\xd0[\xbf\xb1]\xc2\xb7' "$file" 2>/dev/null; then
echo " ⚠ Найден паттерн битой кодировки (п·б)"
return 1
fi

# Проверка 3: Частые последовательности из двойной кодировки
# ╘Б∙╚ (e2 95 98 d0 91 e2 88 99)
if grep -qP '\xe2\x95[\x98\x9a]' "$file" 2>/dev/null; then
echo " ⚠ Найден паттерн битой кодировки (╘Б∙)"
return 1
fi

return 0
}

echo "🔍 Проверка кодировки файлов..."

for FILE in $FILES; do
# Пропускаем несуществующие файлы
[ ! -f "$FILE" ] && continue

# Пропускаем бинарные файлы
if file "$FILE" | grep -q "executable\|binary\|archive"; then
continue
fi

# Проверяем, должен ли файл быть в KOI8-R
if is_koi8r_file "$FILE"; then
ENCODING=$(detect_encoding "$FILE")

echo "📄 $FILE"
echo " Ожидается: KOI8-R (по .gitattributes)"
echo " Обнаружено: $ENCODING"

# Проверка: файл должен быть ISO-8859 (KOI8-R определяется как ISO-8859)
if [[ "$ENCODING" == "utf-8" ]]; then
echo " ❌ ОШИБКА: Файл в UTF-8, а должен быть в KOI8-R!"
ERROR_FOUND=1
continue
fi

# Даже если encoding правильный, проверяем на битые паттерны
if ! check_corruption_patterns "$FILE"; then
echo " ❌ ОШИБКА: Обнаружена битая кодировка!"
ERROR_FOUND=1
continue
fi

echo " ✅ Кодировка правильная"
else
# Для не-KOI8-R файлов проверяем только символ замены
if grep -q "$BAD_CHAR" "$FILE" 2>/dev/null; then
echo "❌ [BLOCKER] Символ замены (О©╫) найден в: $FILE"
ERROR_FOUND=1
fi
fi
done

if [ $ERROR_FOUND -ne 0 ]; then
echo ""
echo "════════════════════════════════════════════════════════"
echo "❌ КОММИТ ЗАБЛОКИРОВАН"
echo "════════════════════════════════════════════════════════"
echo ""
echo "Обнаружены проблемы с кодировкой файлов."
echo ""
echo "Как исправить:"
echo " 1. Для KOI8-R файлов используйте iconv:"
echo " iconv -f utf-8 -t koi8-r file_utf8.cpp > file.cpp"
echo ""
echo " 2. Или используйте Edit tool на UTF-8 версии:"
echo " iconv -f koi8-r -t utf-8 file.cpp > /tmp/file_utf8.cpp"
echo " # Edit /tmp/file_utf8.cpp"
echo " iconv -f utf-8 -t koi8-r /tmp/file_utf8.cpp > file.cpp"
echo ""
echo " 3. Для срочного коммита (не рекомендуется):"
echo " git commit --no-verify"
echo ""
echo "════════════════════════════════════════════════════════"
exit 1
fi

echo "✅ Все проверки пройдены"
exit 0
Loading
Loading