Changeset 0.21.4 (#90)

This commit is contained in:
2026-03-01 19:42:22 +00:00
parent bbbbe65bfa
commit d67cfd37c2
21 changed files with 1572 additions and 11 deletions

View File

@@ -88,7 +88,7 @@ v0.21.1 Workspace ✅ v0.21.3 Surface Infra ✅
v0.21.2 Workspace ✅ v0.21.5 Editor Surface
Indexing + Search (Development Mode)
│ │
v0.21.4 Git v0.21.6 Article Surface
v0.21.4 Git v0.21.6 Article Surface
Integration + Document Output
└───────┬──────────────┘
@@ -747,15 +747,30 @@ Pure UI architecture. No workspace dependency (parallel development).
- [ ] Mobile: mode selector collapses to hamburger/bottom nav (deferred — functions via sidebar on mobile)
- [ ] Integration with extension loader (surfaces from manifest — deferred to extension loader update)
### v0.21.4 — Git Integration
### v0.21.4 — Git Integration
Layer git operations onto workspaces.
- [ ] `workspaces` additions: git_remote_url, git_branch, git_credential_id, git_last_sync
- [ ] `git_credentials` table: auth_type (https_pat/https_basic/ssh_key), encrypted_data (AES-256-GCM)
- [ ] Git operations via exec: clone, pull, push, status, diff, commit, log, branch, checkout
- [ ] Workspace tools (git-aware): `git_status`, `git_diff`, `git_commit`, `git_log`, `git_branch`
- [ ] Post-operation hooks: clone/pull/checkout trigger reconcile + re-index changed files
- [x] `workspaces` additions: git_remote_url, git_branch, git_credential_id, git_last_sync
- [x] `git_credentials` table: auth_type (https_pat/https_basic/ssh_key), encrypted_data (AES-256-GCM)
- [x] Postgres migration (012_v0214_git.sql) + SQLite migration (011_v0214_git.sql)
- [x] `models.GitCredential`, `GitCredentialSummary`, `GitStatus`, `GitFileStatus`, `GitLogEntry`
- [x] `GitCredentialStore` interface + Postgres/SQLite implementations (Create, GetByID, ListByUser, Delete)
- [x] `workspace.GitOps` with exec-based git operations (9 operations)
- [x] Credential injection: temp `GIT_ASKPASS` (PAT), `.git-credentials` (basic), `GIT_SSH_COMMAND` (SSH)
- [x] Security: reject file:// URLs, sanitize error output, GIT_TERMINAL_PROMPT=0
- [x] Clone, Pull, Push, Status, Diff, Commit, Log, BranchList, Checkout
- [x] `SetGitLastSync` on WorkspaceStore interface + both implementations
- [x] Post-operation reconcile + re-index hook (clone, pull, checkout)
- [x] 5 git tools: git_status, git_diff, git_commit, git_log, git_branch
- [x] Git tools filtered out when no workspace bound (completion handler)
- [x] 9 git API endpoints on /api/v1/workspaces/:id/git/*
- [x] 3 credential CRUD endpoints on /api/v1/git-credentials
- [x] Wired in main.go: GitOps creation, tool registration, route registration
- [ ] Workspace settings UI: git config section (deferred to frontend sprint)
- [ ] User Settings: git credentials management UI (deferred to frontend sprint)
- [ ] Integration tests: clone, commit, push/pull cycle (requires git binary in CI)
- [ ] `.gitignore` respect in workspace indexing (deferred to v0.21.5+)
### v0.21.5 — Editor Surface (Development Mode)