7 Commits

Author SHA1 Message Date
97cbc3e0e8 Docs: refresh for v0.6.0 (UpdateMessage + mb.* namespace cleanup)
Two related doc passes:

1. UpdateMessage docs.  docs/API.md "Updating & deleting" section
   previously said "Optional operations. Not every backend
   implements them -- default returns False."  Since v0.6.0 that's
   wrong: UpdateMessage has header-metadata-only semantics on
   every backend.  Rewrote the section to describe the semantics,
   typical use cases (flipping attr bits, reply-chain pointers),
   and the boundary (body / CtrlInfo / SubFields / inline kludges
   untouched; need Delete + WriteMessage for body changes).  Added
   a note by the .Native escape-hatch example that most previously-
   native-only operations now have uni-API equivalents.

2. ma.* -> mb.* namespace sweep.  The 0.5.0 rename renamed every
   source unit but the docs kept the old names in code-block
   `uses` clauses and architecture diagrams.  Copy-paste consumers
   hitting those would get compile errors.  Replaced word-boundary
   ma.<api|types|events|lock|paths|kludge|fmt> references in
   README.md, docs/API.md, docs/architecture.md, docs/ftsc-
   compliance.md, and docs/format-notes/dependencies.md with the
   mb.* form.  Left docs/PROPOSAL.md alone -- that is the pre-
   rename design doc and reads as historical record.

All 75 tests pass; full six-target build clean.  Retagging v0.6.0
in place since no downstream has pinned yet.
2026-04-20 08:21:48 -07:00
6181b6abce Rename to fpc-msgbase, scrub false-provenance Allfix references
Project renamed from message_api → fpc-msgbase. Folder, README title,
docs, build.sh, fpc.cfg, and test banners all updated for consistency
with the planned remote at kjgr.io:2222/kenjreno/fpc-msgbase.git.

Also scrubbed claims that backends were "ported from Allfix" or
"match Allfix's msgutil/domsg" — none of this code was ported from
Allfix; it was implemented from FTSC documents and the original
format authors' published specs (jam.txt, squish.doc, pcboard.doc,
EzyCom reference, WildCat 4 SDK headers). Author credits live in
docs/ftsc-compliance.md.

Real interop facts that mention Allfix-the-product stay documented:
the PCB Extra2 sent-bit ($40) Allfix sets when tossing, and the
FTSC-registered product code $EB. These describe external software
behavior we interoperate with, not provenance.

docs/format-notes/hudson.md removed — stale planning doc that
predates the working ma.fmt.hudson backend.
2026-04-17 12:47:43 -07:00
d43f996604 Wildcat: full SDK init (InitWCglobal + LoadMakeWild + BTInitIsam); test across 7 conferences
The TWildcatBase.OpenConference was creating a TMsgDatabase without
populating the SDK globals, causing access violations on MwConfig.
Now calls the full Register sequence: InitWCglobal, LoadMakeWild,
BTInitIsam before opening; BTExitIsam + DisposeWCglobal on close.

test_wildcat reads conferences 0..6 from vendored testdata (copied
to /tmp/ma_wildcat so the source tree stays read-only).
2026-04-15 08:41:02 -07:00
3bc4cb7bec Add ma.api: TMessageBase abstract class, factory, format autodetect 2026-04-14 14:34:50 -07:00
2d9dfb8192 Add ma.events: thread-safe TMessageEvents, hook list, default console log 2026-04-14 13:47:04 -07:00
234cfeabae Vendor WildCat 4 SDK as src/wc_sdk/, add to fpc.cfg search path 2026-04-14 10:45:31 -07:00
ccdaa7dc90 Copy format units from allfix as ma.fmt.* (verbatim, unit names renamed) 2026-04-14 10:44:42 -07:00