Skip to content

plain-git v1.0.0-beta.1 — Initial Beta Release

Latest

Choose a tag to compare

@prakashaditya13 prakashaditya13 released this 22 Nov 00:55
dd05f28

📦 CHANGELOG — v1.0.0-beta.1

Release Date: 2025-11-21
Status: Beta Release

This is the first public beta of plain-git, introducing the complete baseline architecture, CLI, managers, and test suite.
The release focuses on full interactive Git workflows powered by plain-English commands and a fully extensible manager-based system.


🚀 Highlights

  • Brand-new interactive CLI with clean UX, categorized menus, colored output, and dynamic prompts.
  • Complete Git operation abstraction through specialized managers.
  • Fully implemented test suite (Vitest) for every manager.
  • Internal system architecture finalized for beta stability.
  • Ready for external contributors, issue tracking, and PR workflows.

🛠 Added

Core System

  • Full CLI entrypoint with:
    • ASCII banner
    • Environment checks
    • Dynamic command mapping
    • Current-branch indicator
    • Grouped menu categories
  • Added HandleCommands core dispatcher.
  • Implemented project-wide Logger with color-coded output.

Managers (Complete Feature Set)

RepositoryManager

  • Init repository (standard / bare)
  • Clone repo
  • Show status (short / long)
  • Show & set Git config
  • Manage remotes (add / update / remove / list)
  • Show repo info
  • Repository integrity check (git fsck)
  • GC / repository optimization

BranchManager

  • Create branch
  • Create & switch
  • Switch existing branch
  • Delete branch (safe & force)
  • Rename branch
  • List branches
  • Show current branch
  • Push & set upstream

CommitManager

  • Stage all files
  • Stage selected files
  • Unstage selected files
  • Commit changes
  • Amend last commit
  • Undo last commit (soft)
  • Show last commit details
  • Show log (graph, detailed, compact)
  • Show diff (unstaged, staged)

RemoteManager

  • List remotes
  • Add / rename / remove remote
  • Push (simple & upstream)
  • Pull
  • Fetch
  • Show remote info
  • Sync all remotes

StashManager

  • Create stash (optionally with message)
  • List stashes
  • Apply stash
  • Pop stash
  • Drop stash
  • Clear all stashes

TagManager

  • List tags
  • Create tag (lightweight & annotated)
  • Show tag details
  • Delete tag
  • Push all tags
  • Push single tag

MergeManager

  • Merge selected branch
  • Detect merge conflicts
  • Show conflicting files
  • Abort merge
  • Continue merge

ConflictManager

  • List files with conflict markers
  • Inspect conflict markers inside selected file
  • Open file in editor
  • Show diff for conflicting file
  • Conflict resolution guide

RebaseManager

  • Start rebase
  • Interactive rebase
  • Continue / skip / abort
  • Detect conflicts

HistoryManager

  • Show history (multiple formats)
  • Reflog
  • Commit details
  • Compare commits
  • File diff
  • File history
  • Blame
  • Author summary

ResetManager

  • Undo last commit (soft / mixed / hard)
  • Reset to specific commit
  • Discard file changes
  • Clean untracked files
  • Interactive reset flow

🧰 Developer Tooling

  • Completed Vitest test suites for all managers.
  • Added mocks for:
    • inquirer
    • execSync
    • fs
    • GitExecutor
  • Sandbox-safe testing environment.
  • Added path alias support (@/...).

🧹 Changed / Improved

  • Refactored GitExecutor to handle stdout/stderr cleanly.
  • Improved command substitution handling.
  • Added current-branch display in menu banner.
  • Cleaner UX in grouped menu system.
  • Updated internal mapping structure for dynamic command handlers.
  • Normalized output logs across all managers.

🐛 Fixed

  • Fixed issues with git fsck output not showing.
  • Fixed terminal menu scrolling issue.
  • Fixed sandbox repo accidentally being tracked.
  • Fixed repeated menu rendering bug.
  • Fixed incorrect placeholder replacements in command list.

🧪 Testing

Added test suites for:

  • RepositoryManager
  • BranchManager
  • CommitManager
  • RemoteManager
  • StashManager
  • TagManager
  • MergeManager
  • ConflictManager
  • RebaseManager
  • HistoryManager
  • ResetManager

Ensured:

  • Fully mocked STDIN/STDOUT
  • No real Git operations
  • No async timeouts
  • Deterministic CI behavior

⚙️ Internal Architecture Finalized

The beta finalizes the stable core architecture for all future expansions:

  • Git abstraction layer (GitExecutor)
  • Manager registry
  • Command handler dispatcher
  • CLI lifecycle:
    banner → environment check → menu → command execution
  • Test-ready modular design