All notable changes to mflow will be documented in this file.
This project follows a simple public release format. Dates use ISO format.
- Shifted MendCode guidance to local-first relay setup instead of public Deno relay onboarding.
- Documented local/LAN relay, Docker, and WebSocket-capable hosting paths for free self-hosted mflow usage.
- Updated the generated MendCode control guide to offer local mflow relay or remote relay URL.
- Added an experimental MendCode harness scaffold with pnpm MCP guidance and queued-lock pre-edit adapter files.
- Added
mflow hook-status --harness mendcodereporting that distinguishes scaffold presence from verified MendCode-side enforcement.
- Reduced npm package contents to the CLI/MCP runtime files only so optional relay dashboard assets and documentation URLs are not shipped in the install tarball.
- Removed default STUN server strings while P2P transport is disabled.
- Added queued locks with
--wait,--timeout, and--priority, including FIFO ordering within priority. - Added
mflow install-hooksfor project-local Claude Code and OpenCode pre-edit lock adapters. - Added
mflow apply-patchand MCPmflow_apply_patchto apply Codex-style patches under queued file locks. - Added
mflow claimfor cooperative scope reservations.
- Removed the experimental WebRTC/P2P runtime dependency from the public package because its upstream dependency chain still pulled a high-severity vulnerable
ippackage. - Shared the daemon lock manager with the sync orchestrator so CLI/MCP locks affect propagation gating.
- Added polling fallback to
GitDetectorso.git/index.locktransitions are detected whenfs.watchmisses temp-directory events. - Updated signaling integration tests to avoid
Bun.serve({ port: 0 }), which fails under Bun 1.3.13 in this environment.
README onboarding and dashboard card cleanup.
- README now leads with the real first-time CLI flow:
mflow setup,mflow start,mflow status,mflow status --watch,mflow secret --copy,mflow pause,mflow resume, andmflow stop. - Removed the old duplicate quick-start block that assumed users already understood room/secret setup.
- Dashboard stats card now shows relay memory usage instead of misleading instance uptime.
Dashboard room-state and streamer safety patch.
- Dashboard now validates secret before entering room mode; invalid/empty room no longer appears as a successful room connect.
- Dashboard now writes
?room=<roomId>immediately after a successful connect and stores session per-room. - If a connected room disappears (for example after
mflow stop), dashboard now exits room mode back to home with aRoom disconnectedmessage. mflow startonce again prints dashboard/monitor/stop/secret hints when the daemon is already running instead of dropping straight to a bare status snapshot.- Daemon sync state now keeps polling transport connectivity so stale relay disconnects are reflected as reconnecting/connecting instead of staying stuck on
syncing.
- Added
mflow start --copy-secretto copy generated room secret to clipboard for safer on-stream workflows.
Dashboard persistence and activity visibility patch.
- Fixed hosted dashboard room monitor persistence so refreshes keep the room-scoped session by storing only the
secretHashin session storage. - Fixed the CLI/TUI status views to show real recent file activity instead of always falling back to "waiting for activity".
mflow start,mflow status, and no-args help now explain how to open the hosted dashboard, reuse the same room secret, and stop the local daemon withmflow stop.- Hosted dashboard room view now renders basic file tree and changed-files panels from recent room activity instead of placeholder copy.
Daemon startup and setup UX patch.
- Fixed
mflow startwriting a PID file before the daemon finished booting, which caused self-inflicted stale/duplicate daemon failures and left hosted relay rooms at0. - Fixed
mflow startto wait for real daemon readiness before printing success, and to surface.mflow/daemon.logcontext when startup fails.
mflow setupnow uses clearer numbered choices for hosted vs self-hosted relay and yes/no decisions.mflow setupnow explains that the hosted dashboard API key comes from/settings, is optional, and can be skipped for normal room+secret sync.
Hotfix release for the setup flow.
- Fixed
mflow setupcrashing withprojectRoot is not defined.
CLI polish patch.
- Replaced the broken ASCII banner with a readable
mflowbanner. mflow setupno longer prints local absolute paths in the MCP command; it uses--root ..
mflow setupnow derives the default room name from the current directory and explains what the room name is for.
Rename and setup release for the public CLI package.
- Corrected one-shot MCP setup commands to use
bunx -p mflow-cli mflow-mcpbecause the npm package ismflow-cliand the binary ismflow-mcp. mflow startnow honors room, secret, and signaling values from.mflow/config.toml.
- Added explicit AI-agent guidance: agents must ask the human/project owner before installing, starting, or configuring mflow, MCP, or the portable skill.
- Added
mflow setup, a guided CLI setup for room, relay, secrets, optional hosted dashboard API key, and MCP command discovery.
- Renamed the npm package from
mflow-sdktomflow-cli; the installed binaries remainmflowandmflow-mcp.
Patch release after the first npm publish.
- Fixed npm runtime packaging so the published
mflowandmflow-mcpbinaries can resolve dependencies outside the monorepo workspace. - Added root runtime dependencies required by the published package.
- Published
mflow-mcpbinary for MCP clients. - Added a portable agent skill at
skills/mflow/SKILL.mdwith pause/resume/lock rules for safe AI-agent operation. - Added Cursor harness guide, harness index, and roadmap docs.
- README is now compact, uses collapsible MCP setup sections, and documents Codex, Claude Code, Cursor, opencode, and custom MCP clients.
- README now explains what happens if an agent forgets to pause before git operations.
Initial public OSS release.
- MIT license, security policy, contribution guide, PR template, and issue templates.
- Public release hygiene script:
scripts/check-public-release.sh. .npmignoreand packagefilesallowlist for safer npm packing.- Public relay limit configuration for Bun signaling and Deno Deploy.
- Deno Deploy self-contained signaling relay at
packages/signaling/deno-deploy.ts. - Landing page copy for no-account room-secret usage, public fair-use limits, dashboard, and self-hosting.
- CLI UX polish: ASCII banner, grouped help, no-args guidance,
NO_COLOR-safe display, and richermflow startsummary. - CLI UX integration tests.
- Public documentation: quickstart, troubleshooting, limits, self-hosting, Deno Deploy, Bun/Docker, security model, and harness guides for Codex, Claude Code, opencode, and custom CLIs.
- Hosted dashboard auth documentation for GitHub OAuth and future CLI device authorization.
- Root package name is
mflow-cli; the CLI binary remainsmflow. - Default CLI config now uses
wss://mflow-signal.obed0101.deno.netinstead of the previous placeholder relay URL. - Public docs now separate current OSS/self-host room-secret mode from future hosted account/device login.
- Public relay now enforces conservative limits for peers, messages, joins, unauthenticated sockets, active rooms, idle cleanup, and activity retention.
- Docs warn that room secrets must be high entropy and shared out of band.
npm pack --dry-runexcludes local runtime state and agent/private scaffolding.
- The initial
0.1.0npm package did not resolve monorepo workspace runtime dependencies correctly when installed outside this repository. Use0.1.1or later.