v0.11.0
v0.11.0 (2026-06-16)
max-mode and workflow onboarded into @sffmc/shared. No API changes for the public @sffmc/workflow surface (v0.10.0 breaking interface preserved).
Added
extractErrorType(output)andisToolError(output)in@sffmc/shared— unified error detection across packages. Replaces auto-max's loose regex with strict pattern matching.MAX_COMMAND,MAX_SUBCOMMANDS,MAX_PATTERN,MaxSubcommandin@sffmc/shared— shared/maxcommand handling across max-mode, auto-max, and watchdog. Fixes a bug where watchdog missed/max resetand/max clear.RichPluginContexttype in@sffmc/shared— extendsPluginContextwith optionalclient.session.message()andusage.totalTokens. Replaces separate interfaces in max-mode and workflow.
Fixed
- auto-max: false positive error detection for strings containing "failsafe" or "errorless"
- watchdog:
/max resetand/max clearcommands were not being recognized
Changed
- 3
require()calls converted to ES moduleimport(memory, workflow runtime, workflow persistence) - Removed redundant
yamldependencies from 4 packages (watchdog, auto-max, eos-stripper, log-whitelist) - Timer hygiene:
.unref()added to 2 timers to avoid blocking event loop shutdown - 5 shared states in
@sffmc/extra(checkpoint buffers, dream lock, timers) converted to on-demand factories — backward-compatible, existing imports preserved - max-mode and workflow now use
@sffmc/sharedfor shared types
Tests
- 21 new unit tests in
@sffmc/shared(13 error detection, 8 max-command parsing) - Total: 510 → 534 tests (+24, includes 3 existing test updates)