8 Commits

Author SHA1 Message Date
23f1c3ba15 v0.0.8: migrate to declarative DBAPI schema
All checks were successful
Build & Release Plugin / build (push) Successful in 1m1s
Rewrite echomail_schema.inc — 19 tables now declared via
TDBATableSpec records using FHost.DeclareTable. Reconciler in the
host handles ADD COLUMN automatically across SQLite/MariaDB/PostgreSQL.

Tooling:
* Vendor fw_plugin_api + dbapi_* units into sdk/ via `make pull-sdk`.
  sdk/VERSION pins the upstream commit hash.
* Makefile adds fcl-db (sqldb/dbase), paszlib, hash paths.
* Removed top-level fw_plugin_api.pas (now under sdk/).
2026-04-18 18:28:25 -07:00
6e00ae96ef v0.0.7: Add FileFix robot, auto-pause inactive links, DB-backed templates
All checks were successful
Build & Release Plugin / build (push) Successful in 14s
- fw_fido_filefix.pas: new — FileFix/RAID robot for file echo area management
- fw_fido_scanner.pas: add CheckInactiveLinks() for automatic link pause
- fw_fido_tosser.pas: wire FileFix into netmail dispatch
- fw_fido_areafix.pas: DB-backed customizable help templates
- echomail_config.inc: add template config fields (tpl_areafix_help, tpl_filefix_help)
- echomail_schema.inc: add echotoss log table
- web/echomail.js: add Response Templates editor in Settings tab
- fw_fido_seenby.pas: SEEN-BY improvements
- fw_fido_charset.pas: new — charset conversion support
- fw_fido_hooks.pas: new — tosser hook manager
2026-04-02 14:35:43 -07:00
0d91e638ac v0.0.6: Fix netmail compose "No primary AKA configured"
All checks were successful
Build & Release Plugin / build (push) Successful in 8s
Remove FMailerAvailable guard from GetPrimaryAKA, GetAllAKAs,
GetAllLinkAddresses, GetLinkByAddress, QueueOutbound. Always try the
PluginCall to mailer with try/except fallback. Plugin load order is
not guaranteed — echomail may initialize before mailer, causing the
init-time FMailerAvailable test to permanently fail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:38:05 -07:00
995cc86433 v0.0.5: Fix Windows cross-compile, clean Makefile
All checks were successful
Build & Release Plugin / build (push) Successful in 9s
- Makefile: platform-specific unit paths — Linux uses FCL source with
  -fPIC, FreeBSD/Windows use pre-compiled units from /opt/fpcup/fpc/units
- CI: delete existing release before creating (handles re-runs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:58:34 -07:00
67a242c35d v0.0.4: Fix direction mismatch, fix plugin build path order
All checks were successful
Build & Release Plugin / build (push) Successful in 12s
- Fix scanner/tosser direction='send' -> 'out' to match web UI values
- Fix Makefile: move /tmp/paszlib_fpic before FCL source paths so all
  units compile with -fPIC for shared library linking

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:38:51 -07:00
615478b225 v0.0.3: Bug fixes, hardening, test suite, cross-platform fixes
All checks were successful
Build & Release Plugin / build (push) Successful in 14s
Round 13:
- Fix empty MSGID dupe detection (NULL vs empty string)
- Fix remap address validation after rewrite
- Fix filter script 30s timeout kill mechanism
- Add lock ordering for bad packet retoss
- Add COLLATE NOCASE for remap matching
- Add CRC32 partial index on msgids table
- Add transaction batching for TossPacket
- Add scheduled cleanup tasks (old commands + message trimming)

Round 14:
- Fix TrimDupeRing crash (received_at -> created_at column)
- Fix SQL Format() -> StringReplace() escaping in tosser link lookups
- Harden ExtractNodelistFromZip temp file paths (GetTempDir + unique names)
- Harden AreaFix wildcard matching with recursion depth limit
- Harden AreaFix packet filename uniqueness (tick + random)

Round 15:
- Fix ScanOutbound duplicate entries (dedup .flo + .pkt scan)
- Fix all hardcoded '/' path separators -> PathDelim in tosser (15 occurrences)
- Export MatchesWildcard for testability
- Sync all version strings (source, Makefile, plugin.json)

Test suite: 9 suites, 452 tests, all passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 10:51:39 -07:00
4d38a8a56a v0.0.2: SPA web UI conversion, toss/scan stubs, archiver fix
All checks were successful
Build & Release Plugin / build (push) Successful in 14s
Convert web admin from inline HTML to SPA module pattern. Add toss and
scan include stubs. Fix fw_archiver cross-platform compatibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:55:16 -07:00
727303e5a7 Initial echomail plugin v0.0.1
Some checks failed
Build & Release Plugin / build (push) Failing after 14s
Echomail processor (like FastEcho/Squish) — tosser, scanner, packer,
AreaFix, netmail routing. Split from monolithic fidonet plugin.

Key design decisions:
- Reuses proven tosser/scanner/areafix backend code
- Backend units updated for new table names + KV link model
- No bbsengine dependency — standalone message storage
- Optional bbsengine integration for BBS message areas
- Reads mailer data via cross-plugin DB access
- Fires echomail.outbound_ready event after scanning
- 12 focused include files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:21:53 -07:00