2e31626f87
fix: simplify updater to @mosaic/mosaic only, add explicit tea repo/login flags ( #388 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 02:09:23 +00:00
255ba46a4d
fix(packages): republish @mosaic/config and bump dependents ( #386 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 01:56:57 +00:00
10285933a0
fix: retarget updater to @mosaic/mosaic ( #384 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-05 01:52:30 +00:00
543388e18b
fix(mosaic): resolve framework scripts via import.meta.url ( #385 )
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Fixes #383 — resolveTool now uses fileURLToPath(import.meta.url). Adds package.json/framework subpath exports. Bumps @mosaic/mosaic to 0.0.18.
2026-04-05 01:41:46 +00:00
Jarvis
c6fc090c98
feat(mosaic): merge @mosaic/cli into @mosaic/mosaic
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
@mosaic/mosaic is now the single package providing both:
- 'mosaic' binary (CLI: yolo, coord, prdy, tui, gateway, etc.)
- 'mosaic-wizard' binary (installation wizard)
Changes:
- Move packages/cli/src/* into packages/mosaic/src/
- Convert dynamic @mosaic/mosaic imports to static relative imports
- Add CLI deps (ink, react, socket.io-client, @mosaic/config) to mosaic
- Add jsx: react-jsx to mosaic's tsconfig
- Exclude packages/cli from workspace (pnpm-workspace.yaml)
- Update install.sh to install @mosaic/mosaic instead of @mosaic/cli
- Bump version to 0.0.17
This eliminates the circular dependency between @mosaic/cli and
@mosaic/mosaic that was blocking the build graph.
2026-04-04 20:07:27 -05:00
9723b6b948
chore: bump @mosaic/cli and @mosaic/mosaic to 0.0.16 ( #379 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 00:52:09 +00:00
c0d0fd44b7
refactor(storage): replace better-sqlite3 with PGlite adapter ( #378 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 21:58:14 +00:00
26fac4722f
fix: gateway install preserves npm prefix via registry flag ( #376 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 20:36:15 +00:00
e3f64c79d9
chore: move gateway default port from 4000 to 14242 ( #375 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 20:17:40 +00:00
cbd5e8c626
fix: scope Gitea registry to @mosaic packages only ( #374 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 19:09:14 +00:00
7560c7dee7
fix: gateway install uses Gitea registry instead of npmjs ( #373 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-04 18:59:40 +00:00
982a0e8f83
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.11 ( #372 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-04 18:47:03 +00:00
fc7fa11923
feat: local tier gateway with PGlite + Gitea-only publishing ( #371 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-04 18:39:20 +00:00
39ccba95d0
feat: mosaic gateway CLI daemon management + admin token auth ( #369 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-04 18:03:12 +00:00
0b0fe10b37
Merge pull request 'feat: storage abstraction retrofit — adapters for queue, storage, memory (phases 1-4)' ( #365 ) from feat/storage-abstraction into main
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 04:40:57 +00:00
acfb31f8f6
fix: quality-rails Commander version mismatch + installer defaults ( #364 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-03 02:40:02 +00:00
Jarvis
ce3ca1dbd1
feat(cli): add gateway start/stop/status lifecycle commands
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 21:37:20 -05:00
Jarvis
95e7b071d4
feat(cli): add mosaic gateway init command with tier selection wizard
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 21:35:32 -05:00
d4c5797a65
fix: installer copies default framework files (AGENTS.md) to mosaicHome ( #363 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:34:43 +00:00
70a51ba711
fix: all CLI script resolution uses bundled-first resolveTool() ( #362 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:28:07 +00:00
db8023bdbb
fix: fwScript prefers npm-bundled scripts over stale deployed copies ( #361 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:21:58 +00:00
9e597ecf87
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.6 ( #360 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:13:37 +00:00
a23c117ea4
fix: auto-migrate customized skills to skills-local/ on sync ( #359 )
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-03 02:11:03 +00:00
0cf80dab8c
fix: stale update banner + skill sync dirty worktree crash ( #358 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-04-03 02:04:05 +00:00
Jarvis
04a80fb9ba
feat(config): add MosaicConfig schema + loader with tier auto-detection
...
ci/woodpecker/push/ci Pipeline failed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 21:03:00 -05:00
Jarvis
35fbd88a1d
feat(memory): implement keyword search adapter — no vector dependency
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:55:00 -05:00
Jarvis
25383ea645
feat(storage): implement SQLite adapter with better-sqlite3
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:51:13 -05:00
Jarvis
e7db9ddf98
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.4
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
2026-04-02 20:50:44 -05:00
Jarvis
7bb878718d
feat(queue): implement local adapter with JSON persistence
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:46:11 -05:00
Jarvis
27b1898ec6
refactor(memory): wrap pgvector logic as MemoryAdapter implementation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:11 -05:00
Jarvis
d19ef45bb0
feat(storage): implement Postgres adapter wrapping Drizzle + @mosaic/db
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:10 -05:00
Jarvis
5e852df6c3
refactor(queue): wrap ioredis as bullmq adapter behind QueueAdapter interface
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:10 -05:00
Jarvis
9d22ef4cc9
feat: add adapter factory + registry pattern for queue, storage, memory
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:10 -05:00
Jarvis
41961a6980
feat(memory): define MemoryAdapter interface types
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:10 -05:00
Jarvis
e797676a02
feat(storage): define StorageAdapter interface types + scaffold package
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:10 -05:00
Jarvis
05d61e62be
feat(queue): define QueueAdapter interface types
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-02 20:44:10 -05:00
Jarvis
e83674ac51
fix: mosaic sync — auto-stash dirty worktree before pull --rebase
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline was successful
git pull --rebase fails with 'cannot pull with rebase: You have
unstaged changes' when the skills repo has local modifications.
Fix: detect dirty index/worktree, stash before pull, restore after.
Also gracefully handle pull failures (warn and continue with existing
checkout) and stash pop conflicts.
2026-04-02 20:41:11 -05:00
Jarvis
a6e59bf829
fix: syncDirectory — guard same-path copy and skip nested .git dirs
...
Two bugs causing 'EACCES: permission denied, copyfile' when source
and target are the same path (e.g. wizard with sourceDir == mosaicHome):
1. No same-path guard — syncDirectory tried to copy every file onto
itself; git pack files are read-only (0444) so copyFileSync fails.
2. excludeGit only matched top-level .git — nested .git dirs like
sources/agent-skills/.git were copied, hitting the same permission
issue.
Fixes:
- Early return when resolve(source) === resolve(target)
- Match .git dirs at any depth via dirName and relPath checks
- Skip files inside .git/ paths
Added file-ops.test.ts with 4 tests covering all cases.
2026-04-02 20:41:11 -05:00
Jarvis
07efaa9580
chore: bump @mosaic/mosaic and @mosaic/cli to 0.0.3
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-04-02 20:26:01 -05:00
Jarvis
361fece023
fix: make mosaic init idempotent — detect existing config files
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
- mosaic-init bash script: detect existing SOUL.md/USER.md/TOOLS.md and
prompt user to keep, import (re-use values as defaults), or overwrite.
Non-interactive mode exits cleanly unless --force is passed.
Overwrite creates timestamped backups before replacing files.
- launch.ts checkSoul(): prefer 'mosaic wizard' over legacy bash script
when SOUL.md is missing, with fallback to mosaic-init.
- detect-install.ts: pre-populate wizard state with existing values when
user chooses 'reconfigure', so they see current settings as defaults.
- soul-setup.ts: show existing agent name and communication style as
defaults during reconfiguration.
- Added tests for reconfigure pre-population and reset non-population.
2026-04-02 20:20:59 -05:00
Jarvis
e084a88a9d
chore: bump all packages to 0.0.2 — drop alpha prerelease tag
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Switches from 0.0.1-alpha.2 to 0.0.2. Clean semver, no prerelease
suffixes. We're still alpha (0.0.x range).
2026-04-02 20:03:55 -05:00
Jarvis
ea9782b2dc
feat: complete CLI command parity — add coord, prdy, seq, upgrade
...
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
The #351 merge landed before the force-push with full commands.
This adds the missing subcommands:
- mosaic coord {init,status,mission,continue,run,smoke,resume}
→ delegates to tools/orchestrator/*.sh with --claude/--codex/--pi/--yolo
- mosaic prdy {init,update,validate,status}
→ delegates to tools/prdy/*.sh with --claude/--codex/--pi
- mosaic seq {check,fix,start}
→ sequential-thinking MCP management (native TS)
- mosaic upgrade {release,check,project}
→ delegates to tools/_scripts/mosaic-release-upgrade and mosaic-upgrade
Also removes duplicate prdy registration (was in both launch.ts and
the old registerPrdyCommand — now only in launch.ts).
2026-04-02 19:51:34 -05:00
Jarvis
15830e2f2a
feat!: unify mosaic CLI — native launcher, no bin/ directory
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
BREAKING CHANGE: ~/.config/mosaic/bin/ is removed entirely.
The mosaic npm CLI is now the only executable.
## What changed
- **bin/ → deleted**: All scripts moved to tools/_scripts/ (internal)
- **mosaic-launch → deleted**: Launcher logic is native TypeScript
in packages/cli/src/commands/launch.ts
- **mosaic.ps1 → deleted**: PowerShell launcher removed
- **Framework install.sh**: Complete rewrite with migration system
- **Version tracking**: .framework-version file (schema v2)
- **Migration v1→v2**: Auto-removes bin/, cleans old PATH entries
from shell profiles
## Native TypeScript launcher (commands/launch.ts)
All runtime launch logic ported from bash:
- Runtime prompt builder (AGENTS.md + RUNTIME.md + USER.md + TOOLS.md)
- Mission context injection (reads .mosaic/orchestrator/mission.json)
- PRD status injection (scans docs/PRD.md)
- Pre-flight checks (MOSAIC_HOME, AGENTS.md, SOUL.md, runtime binary)
- Session lock management with signal cleanup
- Per-runtime launch: Claude, Codex, OpenCode, Pi
- Yolo mode flags per runtime
- Pi skill discovery + extension loading
- Framework management (init, doctor, sync, bootstrap) delegates
to tools/_scripts/ bash implementations
## Installer
- tools/install.sh: detects framework by .framework-version or AGENTS.md
- Framework install.sh: migration system with schema versioning
- Forward-compatible: add migrations as numbered blocks
- No PATH manipulation for framework (npm bin is the only PATH entry)
2026-04-02 19:37:13 -05:00
e57a10913d
chore: bump all packages to 0.0.1-alpha.2 ( #349 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-02 18:21:23 +00:00
0d12471868
feat: add web search, file edit, MCP management, file refs, and /stop to CLI/TUI ( #348 )
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-02 18:08:30 +00:00
Jarvis
3b9104429b
fix(mosaic): wizard integration test — templates path after monorepo migration
...
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Templates moved from packages/mosaic/templates/ to
packages/mosaic/framework/templates/ in #345 . The test's
existsSync guard silently skipped the copy, causing writeSoul
to early-return without writing SOUL.md.
2026-04-02 00:12:03 -05:00
Jarvis
8a83aed9b1
feat: unify install.sh — single installer for framework + npm CLI
...
- tools/install.sh now installs both components:
1. Framework (bash launcher, guides, runtime configs) → ~/.config/mosaic/
2. @mosaic/cli (TUI, gateway client, wizard) → ~/.npm-global/
- Downloads framework from monorepo archive (no bootstrap repo dependency)
- Supports --framework, --cli, --check, --ref flags
- Delete remote-install.sh and remote-install.ps1 (redundant redirectors)
- Update all stale mosaic/bootstrap references → mosaic/mosaic-stack
- Update README.md with monorepo install instructions
Deprecates: mosaic/bootstrap repo
2026-04-02 00:12:03 -05:00
Jarvis
2f68237046
fix: remove --registry from npm install to avoid 404 on transitive deps
...
The @mosaic scope registry is configured in ~/.npmrc. Passing --registry
on the install command overrides the default registry for ALL packages,
causing non-@mosaic deps like @clack/prompts to 404 against Gitea.
2026-04-02 00:11:42 -05:00
Jarvis
45f5b9062e
feat: install.sh + auto-update checker for CLI
...
- tools/install.sh: standalone installer/upgrader, curl-pipe safe
(main() wrapper, process.argv instead of stdin, mkdir -p prefix)
- packages/mosaic/src/runtime/update-checker.ts: version check module
with 1h cache at ~/.cache/mosaic/update-check.json
- CLI startup: non-blocking background update check on every invocation
- 'mosaic update' command: explicit check + install (--check for CI)
- session-start.sh: warns agents when CLI is outdated
- Proper semver comparison including pre-release precedence
- eslint: allow __tests__ in packages/mosaic for projectService
2026-04-02 00:11:42 -05:00
Jason Woltje
f05b198882
fix: remove stale bootstrap repo references from CLI error messages
...
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
Replace 'cd ~/src/mosaic-bootstrap && bash install.sh' with
'npm install -g @mosaic/mosaic' now that bootstrap is archived.
2026-04-01 21:26:53 -05:00