Commit Graph

17 Commits

Author SHA1 Message Date
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