Commit Graph

21 Commits

Author SHA1 Message Date
Augustin
e15a034de5 refactor(api): split monolithic handlers.go into focused modules
Break down the 627-line handlers.go into specialized modules:
- handlers_chat.go: chat and streaming endpoints
- handlers_config.go: configuration endpoints
- handlers_common.go: shared utilities
- handlers_info.go: info and status endpoints
- handlers_terminal.go: terminal/shell endpoints
- handlers_tools.go: tool-related endpoints

Also includes config improvements, orchestrator enhancements, and
web component updates.

💘 Generated with Crush

Assisted-by: MiniMax-M2.7 via Crush <crush@charm.land>
2026-04-22 20:19:29 +02:00
Augustin
34636056da refactor: unify into single muyue binary with embedded desktop mode
All checks were successful
Beta Release / beta (push) Successful in 37s
- Merge muyue + muyue-desktop into one binary (13MB)
- `muyue` starts TUI, `muyue desktop` launches web UI in browser
- Move frontend from cmd/muyue-desktop/frontend/ to web/ (standard Go layout)
- Add web/embed.go with //go:embed all:dist for frontend assets
- Add internal/desktop/ package (server, browser open, SPA routing, signals)
- Split internal/api/api.go into server.go + handlers.go
- Add internal/desktop/desktop.go with SPA fallback and --port/--no-open flags
- Clean package.json: remove unused @xterm/xterm, switch to ESM
- Fix vite.config.js proxy to use port 8095 for dev mode
- Add Makefile targets: frontend, desktop, dev-desktop
- Update all CI workflows: single binary build, web/ paths
- Remove cmd/muyue-desktop/ entirely

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-21 21:04:47 +02:00
Augustin
097cf40ccd fix(ci): add frontend build step before Go vet/test/build
All checks were successful
Beta Release / beta (push) Successful in 1m16s
All three CI workflows now build the React frontend (npm ci && npm run
build) before any Go steps, so the go:embed directive in
cmd/muyue-desktop/main.go finds the dist/ directory.

- ci-develop.yml: already rewritten, included in this commit
- ci-main.yml: add Node 22 setup, cache, frontend build, desktop binary
  builds for all platforms, updated changelog download table
- ci-pr.yml: add Node 22 setup, cache, frontend build, desktop binary
  build check

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-20 22:54:50 +02:00
Augustin
bbdac6c005 feat: GitFlow workflow with beta/stable CI pipelines
All checks were successful
Beta Release / beta (push) Successful in 31s
- Add develop branch for integration
- Replace single ci.yml with 3 workflows: ci-pr (PR checks), ci-develop (beta releases), ci-main (stable releases)
- Add prerelease support in version.go (ldflags injection)
- Add tests for prerelease version formatting
- Document full GitFlow process, versioning, and contributing guide in README

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-20 20:08:59 +02:00
Augustin
3494f6b40d feat: security hardening, tests, doctor command, CI update, CHANGELOG
All checks were successful
CI / build (push) Successful in 2m37s
- Add AES-256-GCM encryption for API keys (internal/secret)
- Add dangerous command detection in terminal
- Add muyue doctor command for system health checks
- Add scanner TTL cache, orchestrator history mutex, shared HTTP client
- Deduplicate MCP config generation, refactor skills YAML parser
- Add XDG-compliant config dir with legacy migration
- Add cleanup on all TUI quit paths
- Add 8 test files (config, workflow, skills, orchestrator, version,
  platform, scanner, secret)
- Update CI to actions/setup-go@v5
- Add CHANGELOG.md, update README and Makefile

🤖 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-20 19:56:07 +02:00
Augustin
44691225e7 refactor: modularize TUI, improve error handling, add CI caching and tests
All checks were successful
CI / build (push) Successful in 2m41s
Split monolithic app.go into focused modules (dashboard, chat, workflow,
config, agents, terminal, commands, handlers). Add proper error handling
for installer commands, proxy pipes, and MCP config parsing. Fix daemon
channel buffer, cap orchestrator history, compile think regex once, and
set HTTP timeouts on preview server. Improve CI with Go module caching,
dependency download step, and test stage with race detection.

😘 Generated with Crush

Assisted-by: GLM-5-Turbo via Crush <crush@charm.land>
2026-04-20 19:13:48 +02:00
Augustin
ac35ff2c7a ci: add install instructions for all platforms in release body
All checks were successful
CI / build (push) Successful in 1m45s
💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:54:11 +02:00
Augustin
bcb9aa0899 ci: add build + release steps with push-only conditions
All checks were successful
CI / build (push) Successful in 1m44s
💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:49:51 +02:00
Augustin
0a91cef526 ci: restore exact working ci.yml from e58e00d for testing
All checks were successful
CI / build (push) Successful in 25s
💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:48:17 +02:00
Augustin
461122af20 fix: rename workflow back to CI (slash in name breaks Gitea 1.25)
💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:46:55 +02:00
Augustin
9cd583f4f3 fix: remove workflow_dispatch + add push-only conditions on release steps
Gitea 1.25.2 does not support workflow_dispatch, which silently
prevented the workflow from being parsed. Also added if conditions
on release steps so they only run on push to main, not on PRs.

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:38:11 +02:00
Augustin
92275becb2 ci: single job - build + vet + release latest in one pass
Simplify CI: one job does build, vet, cross-compile, then replaces
the "latest" release every push to main. No more separate jobs.

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:30:44 +02:00
Augustin
f2c0996477 ci: merge CI and Release into single workflow
Gitea Actions wasn't running the separate release.yml. Now both build
and release are in ci.yml as two jobs: build then release (release only
on push to main, not on PRs).

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:27:31 +02:00
Augustin
5eb237fc98 fix: release workflow - delete old release before creating new one
All checks were successful
CI / build (push) Successful in 25s
Remove the skip-if-tag-exists check. Instead, delete old release+tag
for the version before creating a fresh one (like before but per-version).

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:25:23 +02:00
Augustin
e3cd618cb1 feat: redesign TUI + Ctrl+C quit confirm + version logic + sudo handling
All checks were successful
CI / build (push) Successful in 24s
- Replace 'q' quit with Ctrl+C confirmation dialog (Yes/No overlay)
  Second Ctrl+C within 2s force quits
- Redesign TUI with Charm bubbles components: spinner, progress bar,
  help bar, key bindings, better color palette, rounded borders
- Add Shift+Tab to cycle tabs backward
- Fix version: bump to 0.2.0, release workflow checks existing tags
  before publishing (no more overwriting releases)
- Handle sudo: CLI auto-relaunches with sudo/pkexec for tools that
  need elevated privileges, TUI shows clear error message

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 23:22:04 +02:00
Augustin
8e3f8b8770 fix: use GITEATOKEN secret name (no underscores in Gitea 1.25)
All checks were successful
CI / build (push) Successful in 25s
Release / release (push) Successful in 1m36s
💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 22:58:07 +02:00
Augustin
69ca5c6d22 fix: make release delete step resilient + check GITEA_TOKEN
Some checks failed
CI / build (push) Successful in 25s
Release / release (push) Failing after 1m3s
- Skip delete step gracefully if no releases exist
- Check GITEA_TOKEN is set before attempting API calls
- Add clear error message if secret is missing

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 22:50:15 +02:00
Augustin
3f8e01f290 fix: export PATH in every step for Gitea runner compatibility
Some checks failed
CI / build (push) Failing after 26s
Release / release (push) Failing after 1m36s
GITEA_ENV/GITHUB_ENV doesn't take effect in the same step with
act_runner. Added explicit 'export PATH=/usr/local/go/bin:$PATH'
in every step that uses go.

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 22:45:33 +02:00
Augustin
4db69e46a7 ci: restore actions/checkout + simplify workflows
Some checks failed
CI / build (push) Failing after 7s
Release / release (push) Failing after 8s
- Use actions/checkout@v4 (works with Gitea runner)
- Simplified CI: build + vet
- Release: auto on push to main, creates/updates "latest" release
- Cleaned up archive step

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 22:43:12 +02:00
Augustin
78c7239002 ci: fix Gitea Actions - native checkout + auto-release on push
Some checks failed
CI / build (push) Failing after 6s
Release / release (push) Failing after 6s
- Replaced actions/checkout with native git fetch (fixes directory not found)
- Release workflow now triggers on every push to main (no tags needed)
- Auto-creates/updates "latest" release with 6 cross-compiled binaries
- Includes checksums, install instructions, and recent commit log
- Requires GITEA_TOKEN secret in repo settings

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 22:37:23 +02:00
Augustin
811a9aa6c4 ci: migrate workflows to Gitea Actions with self-hosted runner
Some checks failed
CI / build (push) Failing after 7s
Release / release (push) Failing after 12s
Replaced GitHub Actions with Gitea-compatible workflows:
- CI: build + test + vet on ubuntu-latest (self-hosted runner)
- Release: cross-compile 6 binaries (linux/darwin/windows x amd64/arm64)
  with Gitea API release creation and asset uploads
- Removed .github/workflows in favor of .gitea/workflows

Requires Gitea secrets: GITEA_TOKEN, GITEA_SERVER, GITEA_REPO

💘 Generated with Crush

Assisted-by: GLM-5.1 via Crush <crush@charm.land>
2026-04-19 22:32:53 +02:00