You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
External plugins (plugin: [...]) don't work in MiMoCode 0.38.9 — module code is never executed. I found the root cause and fixed it (PR #1944, fixes #1891).
While investigating, I built a file hooks ecosystem that works today — 4 repos, 200+ tests, CI/CD pipeline. Sharing here for feedback and potential collaboration.
The Plugin Bug (Fixed)
Root cause:getLegacyPlugins() in plugin/index.ts:178 throws TypeError("Plugin export is not a function") when it encounters ANY export that isn't a function with a server property (constants, config objects, type re-exports). The error is silently caught by Effect.catch(() => Effect.void) — plugin never loads, no hooks registered.
Fix:throw → continue. Also added log.error() in the catch handler so errors aren't silently swallowed.
Since plugins don't work, I built everything as file hooks (~/.config/mimocode/hooks/*.ts). These ARE supported in 0.38.9 — scanned, compiled with Bun.build, hot-reloaded.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
File hooks ecosystem for MiMoCode — plugins, RTK, Ponytail, agentsys, plusplus
TL;DR
External plugins (
plugin: [...]) don't work in MiMoCode 0.38.9 — module code is never executed. I found the root cause and fixed it (PR #1944, fixes #1891).While investigating, I built a file hooks ecosystem that works today — 4 repos, 200+ tests, CI/CD pipeline. Sharing here for feedback and potential collaboration.
The Plugin Bug (Fixed)
Root cause:
getLegacyPlugins()inplugin/index.ts:178throwsTypeError("Plugin export is not a function")when it encounters ANY export that isn't a function with aserverproperty (constants, config objects, type re-exports). The error is silently caught byEffect.catch(() => Effect.void)— plugin never loads, no hooks registered.Fix:
throw→continue. Also addedlog.error()in the catch handler so errors aren't silently swallowed.PR: #1944
File Hooks Ecosystem
Since plugins don't work, I built everything as file hooks (
~/.config/mimocode/hooks/*.ts). These ARE supported in 0.38.9 — scanned, compiled with Bun.build, hot-reloaded.1. mimocode-rtk-hook
Token-optimized CLI wrapper. Rewrites
ls→rtk ls,cat→rtk read, etc. Saves ~35% on shell command output.2. mimocode-ponytail
YAGNI enforcement. Injects "Does this need to exist?" rules before every LLM call. Modes: lite/full/ultra.
3. mimocode-agentsys
Routes 22 agentsys slash commands (
/repo-intel,/audit-project,/drift-detect,/deslop, etc.) through file hooks. Includes CLI runner that calls the agentsys library directly.4. mimocode-plusplus
Security/safety hook: blocks dangerous commands (
rm -rf /), path guards, output sanitization, evidence recording. 53 tests.CI/CD
Comprehensive
ci.ymlwith 8 jobs: typecheck, lint (oxlint + prettier), test (4 shards), security (skylos), quality (repowise), Python/Rust/Go auto-detect. Usessetup-bunaction withbun ci.What I'm Proposing
Quick Start (for anyone interested)
Questions for the team
throw→continue?Happy to discuss, adjust, or contribute more. I'm @Cipher208 on GitHub.
All reactions