• src/doors/clans-src/docs/

    From Deuc¿@VERT to Git commit to main/sbbs/m on Mon Mar 2 13:04:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/f0bdd23a2d6021e869ba35f4
    Modified Files:
    src/doors/clans-src/docs/notes.txt
    Removed Files:
    src/doors/clans-src/data/build.hlp
    Log Message:
    Remove unused file

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sat Mar 7 22:13:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/b7602c8c5307308d084790d4
    Modified Files:
    src/doors/clans-src/docs/ibbs-notes.txt notes.txt todo.txt src/doors/clans-src/release/clans.doc whatsnew.txt
    Removed Files:
    src/doors/clans-src/docs/WhatsNew.txt convert.txt docs.txt files.lst schemes.txt test.txt
    Log Message:
    Here's the real reason to use Claude... I'm too lazy to document stuff.

    Claude on the other hand does more or less what I say, so has no
    choice. but to do my bidding.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sun Mar 8 18:53:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/742017b580e54f5b32359154
    Modified Files:
    src/doors/clans-src/docs/todo.txt
    Log Message:
    Document help file accuracy issues in todo.txt [1.3-1.9]

    Adds seven new open issues found by reviewing all data/*.hlp files
    against the current source code:

    [1.3] stats.hlp ^Charisma description outdated (depends on [1.1])
    [1.4] ruler.hlp ^Show Empire Stats describes dead/commented-out feature
    [1.5] newbie.hlp ^Town Hall references removed farms mechanic
    [1.6] newbie.hlp ^Combat omits the HP < -5 mortal-wound threshold
    [1.7] ruler.hlp ^Vault mentions removed popularity mechanic; missing
    3-withdrawal/day cap
    [1.8] clans.hlp ^Beta Note lists implemented features as coming soon
    [1.9] bulletin.hlp contains stale changelogs and defunct BBS/game ads

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Mon Mar 9 15:11:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/83c84f057bdc817eec49de97
    Added Files:
    src/doors/clans-src/docs/meta.md src/doors/clans-src/installer/upgrade.txt src/doors/clans-src/release/clans.txt prompt.md questgen.txt
    Modified Files:
    src/doors/clans-src/CLAUDE.md src/doors/clans-src/docs/notes.txt src/doors/clans-src/installer/install.ini src/doors/clans-src/release/news.txt
    Removed Files:
    src/doors/clans-src/quests/meta.md
    Log Message:
    Move quest-gen files to release/docs; rename .doc->.txt; add doc sections

    File moves:
    - quests/generating.txt -> release/questgen.txt
    - quests/prompt.md -> release/prompt.md
    - quests/meta.md -> docs/meta.md (path reference updated)
    - installer/upgrade.doc -> installer/upgrade.txt
    - release/clans.doc -> release/clans.txt

    release/clans.txt additions:
    - [1.1] lockout.txt, clanad.ans, whatsnew.txt, questgen.txt paragraphs
    - [1.1b] news.txt paragraph; route.smp mention in [1.5]
    - [1.8] TOC entries for new sections
    - [1.9] Color Codes and Text Formatting (pipe, backtick, theme, %-codes)

    docs/notes.txt additions:
    - [0.1] cross-reference to docs/meta.md and release/prompt.md
    - [5.5] Internal %-codes (%SS, %SD, %SV, %Z) with TOC entry
    - [7.2] AI quest artifact entries (questgen.txt, prompt.md)

    release/prompt.md:
    - Add %V code and game-state substitution codes section

    installer/install.ini:
    - Update .doc -> .txt references (upgrade.doc, clans.doc)

    CLAUDE.md:
    - Add documentation audiences table and three-tier model
    - Rename/split format section; update canonical examples

    release/news.txt:
    - Remove trailing %P from template

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tue Mar 10 02:27:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/72181454259b5e65ea12525c
    Modified Files:
    src/doors/clans-src/docs/todo.txt
    Log Message:
    Add Charisma vote tie-breaking suggestion to todo [1.1]

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tue Mar 10 16:55:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d3d122400e99f202e3c54638
    Added Files:
    src/doors/clans-src/docs/utf8.txt src/doors/clans-src/src/tests/test_u8cp437.c src/doors/clans-src/src/u8cp437.c u8cp437.h
    Modified Files:
    src/doors/clans-src/devkit/clandev.txt src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/GNUmakefile ecomp.c langcomp.c makenpc.c makepak.c mclass.c mcomp.c mitems.c mspells.c src/doors/clans-src/src/tests/GNUmakefile
    Log Message:
    Add UTF-8 source file support to all devkit compilers and makepak

    Devkit authors can now write source files (.evt, .txt, .lst, etc.) in UTF-8 instead of CP437 by naming them with `.u8.` before the final extension (e.g., `myquest.u8.evt`). The compilers detect the convention and convert each line from UTF-8 to CP437 at compile time; output is byte-identical to native CP437 input. Smart quotes and other unmapped codepoints produce clear errors with file name and line number.

    New shared module: u8cp437.c/h with u8_fopen() and u8_fgets() wrappers.
    39 unit tests cover the conversion table, fopen detection, fgets integration, and error paths.

    Modified tools: langcomp, mcomp, mitems, mspells, mclass, ecomp, makenpc, makepak. Build verified clean (zero warnings) with all 271 unit tests and
    364 integration tests passing.

    Documentation: new section [0.3] in clandev.txt, cross-references in all 8
    tool sections, complete 176-entry mapping table in docs/utf8.txt, and todo entries [1.9]-[1.11].

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tue Mar 10 22:16:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/086e05cdb67533aabe108029
    Added Files:
    src/doors/clans-src/docs/ansi.md
    Log Message:
    The beginnings of a prompt for ANSI generation.

    Currently it requires a fair bit of iteration with the model, so
    not ready to integrate into the quest generator.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wed Mar 11 12:56:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/492db44e5b8df1c79e03054a
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/alliancem.c chew.c clans.c clansini.c class.c deserialize.c door.c ecomp.c empire.c event.c fight.c help.c ibbs.c input.c items.c mail.c menus.c menus2.c mspells.c myibbs.c myopen.c npc.c pawn.c pcedit.c quests.c readcfg.c reg.c reset.c scores.c serialize.c spells.c user.c video.c village.c
    Log Message:
    Remove commented-out code from src/*.c

    Deleted 390+ lines of dead code: debug printf/od_printf/rputs calls,
    obsolete conditions, old hardcoded strings replaced by language macros,
    two #if 0-gated sizing-tool main() functions in serialize.c and
    deserialize.c, and inline variable comments. Updated docs/todo.txt
    with new entry [1.10] for mail expiry FIXME.

    All builds (debug, release, devkit, Windows cross-builds) succeed with
    zero warnings. Unit tests (194 passed) and integration tests (160 passed) confirm no behavioral changes.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wed Mar 11 13:13:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c2e7853607e96a0ced372ffd
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/install.c
    Log Message:
    Fix install rename prompt length limit (todo [1.4])

    Replace legacy 13-character (MAX_FILENAME_LEN) limit on rename prompts with PATH_CHARS (511 characters) to support modern long filenames on POSIX systems.

    Changes:
    - GetGUM() rename prompt (line 386): use PATH_CHARS instead of MAX_FILENAME_LEN - upgrade() Extract rename prompt (line 780): use PATH_CHARS instead of MAX_FILENAME_LEN
    - upgrade() unix block buffer (line 480): enlarge fscanf buffer to PATH_SIZE
    to prevent overflow when reading filenames from UnixAttr.DAT

    Remove completed todo item [1.4] from docs/todo.txt.

    Build verified: gmake -j8 game completes without warnings or errors.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wed Mar 11 13:46:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5bb710e1acaaf1263c0ac1cc
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/install.c
    Log Message:
    Fix install silent truncation warnings (todo [1.5])

    Expand szGumName and szIniName buffers from 25 to PATH_SIZE (512) to
    prevent silent truncation of filenames longer than 24 characters.

    Count and warn on manifest entries beyond the MAX_FILES limit instead
    of silently dropping them. Reports exact count using proper singular/
    plural grammar.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Thu Mar 12 15:23:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a098176c0c79e92854180254
    Added Files:
    src/doors/clans-src/docs/functions.md testability.md
    Log Message:
    Add exhaustive source code audit documentation: functions.md and testability.md

    Comprehensive two-pass audit of all 61 src/*.c files:

    Pass 1 (Direct Analysis): 32 batches analyzed ~481 functions
    - Each function documented with prototype, description, and internal call list - Direct I/O and global variable access flagged (7 properties tracked)
    - Functions categorized by I/O profile for testability assessment

    Pass 2 (Transitive Closure): Propagated flags through call graph
    - Built 409-function call dependency graph from functions.md
    - Computed transitive I/O/global flags through 5 iterations to convergence
    - Each function now shows all I/O categories it touches (directly or indirectly)

    Deliverables:
    - docs/functions.md: 59 file sections, 400+ functions with call lists
    - docs/testability.md: 481 functions with transitive I/O/global property matrix

    Columns tracked: Disk Write, Disk Read, User Input, User Output, my_random, Read Global, Write Global

    Enables understanding of testability requirements and identifying pure functions,
    high-I/O bottlenecks, and state management patterns across the codebase.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Fri Mar 13 00:38:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a88af652075c1e301323f59a
    Modified Files:
    src/doors/clans-src/docs/functions.md testability.md src/doors/clans-src/src/alliance.c alliancem.c chew.c platform.h unix_wrappers.c win_wrappers.c win_wrappers.h
    Log Message:
    Finalize testability.md with D/T annotations and Non-C17 column

    - Convert all Y entries in I/O columns to D (direct) or T (transitive):
    * D: function directly invokes the operation (od_*, cio_getch, printf, etc.)
    * T: function reaches the operation through a callee
    * Corrected 44 User Input functions (DT) and 95 User Output functions (DT)
    * Converted langcomp.c main Read Global/Write Global from Y to D

    - Add Non-C17 column indicating use of non-C17 standard features
    (POSIX, Win32, OpenDoors, etc.)
    * 39 functions marked as using non-C17 features
    * Remaining 39 Y entries are all in Non-C17 column (correct)

    - Expand functions.md with complete documentation for 6 new files:
    * serialize.c: 34 s_*_s serialization functions
    * deserialize.c: 34 s_*_d deserialization functions
    * items.c: 20 inventory/equipment/trading/spell functions
    * menus2.c: 4 member management functions
    * myopen.c: 4 encryption/file I/O functions
    * u8cp437.c: 3 UTF-8/CP437 conversion functions

    - Refactor cross-platform file deletion to use plat_DeleteFile wrapper:
    * alliance.c: KillAlliances, KillAlliance
    * alliancem.c: KillAlliance
    * chew.c: main (GUM file handling)

    All 67 source file sections now fully documented in testability.md.
    No remaining Y entries in data columnsÄall converted to D/T.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Fri Mar 13 00:38:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4b7440c2745009b685114294
    Modified Files:
    src/doors/clans-src/docs/functions.md testability.md src/doors/clans-src/src/ibbs.c install.c mail.c maint.c myibbs.c npc.c pcedit.c reset.c semfile.c system.c trades.c unix_wrappers.c user.c
    Log Message:
    Working to get all non-C17 "stuff" into platform wrappers

    The biggest one is unlink()... rename to plat_DeleteFile().

    Also, the Haiku model isn't up to this work... I'll have Sonnet
    take a look after my weekly quota refreshes. :(

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sat Mar 14 23:32:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a97a0162f84880adb4aa39c0
    Added Files:
    src/doors/clans-src/docs/gtest.txt src/doors/clans-src/src/gtest.c scripteng.c scripteng.h src/doors/clans-src/tests/fixtures/gtest/autofight.script src/doors/clans-src/tests/test_gtest.sh
    Modified Files:
    src/doors/clans-src/GNUmakefile src/doors/clans-src/mk/Paths.gmake src/doors/clans-src/src/GNUmakefile console.c console.h qtest.c src/doors/clans-src/tests/GNUmakefile
    Log Message:
    Add gtest: script-driven combat integration test tool

    Extract shared script engine from qtest.c into scripteng.c/scripteng.h
    so both tools reuse the same Type=value script format, hook callbacks,
    and error handling. Add hook_get_key (Key= type) for raw keystroke
    scripting. Add Console_SetGetKeyHook to console.c.

    Create gtest.c -- a standalone binary that links the real combat engine (fight.c, spells.c, items.c, class.c) against mock stubs for the rest
    of the game (user.c, news.c, mail.c, ibbs.c, etc.). Supports two
    commands:

    -c autofight AI-controlled combat against a test goblin
    -c levelup Level-up check with preset XP values

    Random control: -r VALUE (fixed mod, fully deterministic), -R SEED
    (seeded PRNG), or neither (unseeded rand). State summary printed to
    stderr for test assertions.

    Add TEST_BINARIES list in mk/Paths.gmake for developer-only test tools
    (not shipped with game or devkit).

    Add 21 integration tests in tests/test_gtest.sh covering argument
    validation, autofight at multiple levels, deterministic reproducibility
    with -r, gold arguments, and level-up verification.

    Add docs/gtest.txt with usage, script format, and architecture docs.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net