Current version: 0.1.0
GalagaV is a full-stack project operations environment built for managing projects, tasks, architecture design, and versioned repository workflows from a single UI.
GalagaV combines a rich React frontend and a lightweight Express backend to let users:
- manage projects with timelines, milestones, and task boards
- stage and commit code changes through an integrated commit workflow
- view repository metadata such as branch, version, and semantic release status
- connect local folders and Todo files for persistent project tracking
- extend the app with plugins like theme packs and schema builders
- Project dashboard with version and branch metadata
- Commit workflow with file staging, commit details, and conventional commit support
- Semantic release indicator showing when semantic-release is configured
- Automated semver workflow checklist showing captured release script, config, version writer, and GitHub Action status
- Branch switcher and uncommitted change warning
- Project archive confirmation to prevent accidental deletions
- Todo and task management backed by an Express API and local persistence
- Architect / schema visualization for relationship design and mapping
- Plugin system for additional UI modules and custom behaviors
- AI commit message generation support via Google Gemini for conventional commit content
When you open a project, the header shows:
- project name and description
- current Git branch
- project version badge
- local semantic version display from
package.json - semantic release indicator when configured
- semver workflow readiness checklist
- quick action buttons for Todos, snippets, commit flow, merge, and settings
The commit flow is accessible from the dashboard via the Commit button:
- Open the commit modal.
- Review changed files in the
Changestab. - Select files and stage them with
Stage Selected. - Switch to
Commit Detailsonce files are staged. - Choose a commit type, optional scope, subject, body, and issue references.
- Execute the commit with confirmation.
This workflow enforces staging first, then commit details, so it matches a real Git commit process.
A Semantic Release badge appears when a project is configured for semantic versioning. The app detects semantic-release readiness from:
package.jsoncontaining arelease:semverscriptpackage.jsoncommitizen configuration- the presence of
.releaserc-semver.cjsor.releaserc-semver.js - the release workflow at
.github/workflows/release.yml
The dashboard also shows a semver workflow checklist so you can see whether the UI captured:
- release script
- release config
- package version writer
- GitHub Action
Use Settings > Configure Semantic Release after setting Local Folder Path to apply semantic-release setup to that linked folder. The action creates or updates:
package.jsonscripts, Commitizen config, and semantic-release dev dependencies.releaserc-semver.cjs.github/workflows/release.ymlCHANGELOG.mdwhen it does not already exist
After setup, the project dashboard can detect the generated files and show the semver workflow checklist as ready.
Use the branch button in the header to open the branch switcher.
- It checks for uncommitted changes first.
- If changes exist, the UI warns you and suggests committing before switching.
- You can search branches and switch safely from the modal.
The header also shows:
- current semantic version
vX.Y.Zfrom the closestpackage.json - current branch name
- whether semantic-release is configured
- automated semver workflow readiness from the linked repository files
GalagaV is wired for semantic-release using conventional commits.
npm run commit- launches Commitizen if installed and configurednpm run release:semver- runs semantic-release using.releaserc-semver.cjsnpm run dev- starts the app in development modenpm run build- builds frontend assets and backend bundlenpm start- runs the production servernpm run lint- runs TypeScript type checking
- Use the UI commit workflow to create commits in conventional commit format.
- Conventional commit messages should use
type(scope): subjectsemantics. featcommits produce minor releases,fix,perf, andupdatecommits produce patch releases, and breaking changes produce major releases.- When semantic-release runs, it analyzes commit history and calculates the next semantic version.
@semantic-release/npmwrites that version intopackage.jsonandpackage-lock.jsonwithout publishing to npm.@semantic-release/changelogupdatesCHANGELOG.md.@semantic-release/gitcommits the updated release assets back to the repository.- The app reads the latest version from the closest linked
package.jsonand updates the version badge.
A GitHub Actions workflow has been added at .github/workflows/release.yml.
- It triggers on
pushtomain - It runs on Node.js 20 for semantic-release 24 compatibility
- It installs dependencies with
npm ciand runsnpm run release:semver - It uses
GITHUB_TOKENto commit updated assets such aspackage.json,package-lock.json, andCHANGELOG.md
GalagaV supports connecting to local project folders:
- Set
Local Folder Pathin project settings - The app reads Git metadata and executes terminal commands inside that folder
- It also resolves and stores Todo paths for direct local persistence
- The linked folder should already exist before connecting it.
- The app does not copy or move your project folder into the GalagaV directory.
- Local Git operations depend on the folder being a valid Git repository.
/components- core UI components used by the app/src/frontend- frontend application views and components/src/backend- Express API controllers, services, and models/lib- shared utilities, SQLite integration, and Firestore helpers/plugins- plugin packages and manifestsserver.ts- main Express + Vite server entry point.releaserc-semver.cjs- semantic-release configuration.github/workflows/release.yml- GitHub Actions release pipeline
- Frontend is built with React + Tailwind + Vite
- Backend is Express + TypeScript and uses the local terminal API for Git commands
- Semantic-release is integrated into the repo but requires
npm installto activate - Commit messages should follow the conventional commit standard to make version bumps predictable
- If the semantic release badge is not showing, ensure the project contains:
release:semverinpackage.jsoncommitizenconfig inpackage.json.releaserc-semver.cjs.github/workflows/release.yml
- If the version badge is stale, click
Syncon the project dashboard to reread the linked folder'spackage.json. - If the linked folder is missing semver files, open project settings and run
Configure Semantic Release. - If local Git operations fail, verify the folder path is correct and the directory is a Git repo.
- If AI commit generation fails, verify
GEMINI_API_KEYis set in.env.
For questions, feature requests, or bug reports, update the issue tracker or use the project settings UI to open a support issue.