Git · ChangeSet
Blyck provides version control in two layers. Git tracks files, and ChangeSet tracks what Git can’t see (DB · SSH · packages), so whatever changes, you can review and revert it.
Open the change history window with Ctrl+Shift+H, or click the 📦 ChangeSet chip at the bottom of AI Chat to open the same window.
MinGit bundle — no Git install required
Section titled “MinGit bundle — no Git install required”Windows builds include MinGit. If Git is installed on the system, that is used preferentially; otherwise it auto-falls back to the bundled MinGit. Even on a PC where Git was never installed, commit, push, and ChangeSet all work.
ChangeSet — a single history of all changes
Section titled “ChangeSet — a single history of all changes”Changes that happen in the project are recorded in one place regardless of kind. Without any lock or checkout procedure, they’re entered automatically the moment a change occurs. Read-only operations (SELECT · file_read · ls) are not recorded.
| Kind | What’s recorded |
|---|---|
| File | Before/after content, time, source (👤 human / ✨ AI) |
| DB DDL | SQL text, auto-generated reverse SQL, risk |
| DB DML | SQL text, affected row count, pre-backed-up rows for revert |
| SSH execution | The command, server, part of output, risk |
| Package | Package name, runtime |
Open the window: Ctrl+Shift+H or the 📦 chip at the bottom of AI Chat. The [All changes | This task] toggle switches between the full history and the current chat’s task scope.
Tab layout
Section titled “Tab layout”The ChangeSet window has three tabs.
Changes tab
Section titled “Changes tab”Shows uncommitted files (based on git status) together with DB · SSH · package changes (based on history). Select an item to revert it.
- Uncommitted files →
git checkout(discard edits) or delete new files - DB changes → run the auto-generated reverse SQL
- SSH changes → auto-suggested when the reverse command can be inferred
Commit history tab
Section titled “Commit history tab”Shows the commit list based on git log. Clicking an item shows that commit’s git show diff, and the [Revert this commit] button runs git revert (preserves history, not a force-overwrite).
Deploy tab
Section titled “Deploy tab”Exports file changes via git push and DB changes as SQL migration scripts.
- Verify — Checks for UPDATE/DELETE without WHERE, dangerous DDL (
DROP· addingNOT NULL), missing tests for new functions, and so on. - Export — Exports as a SQL migration script, a bundle of git commands for a PR, or JSON. Use it to organize work done on a dev DB for applying to production.
Reverting
Section titled “Reverting”You can select and revert any item in the history.
| Kind | Revert method |
|---|---|
| File | Restore to the before content |
| DDL | Run the auto-generated reverse SQL (CREATE↔DROP, ADD COLUMN↔DROP COLUMN) |
| DML | Restore from the rows backed up just before execution (Tier 1 / Tier 2 backup, see below) |
| SSH | Auto-suggested when the reverse command can be inferred (mkdir↔rmdir); manual guidance otherwise |
Automatic DML backup (Tier 1 / Tier 2)
Section titled “Automatic DML backup (Tier 1 / Tier 2)”Before the AI runs DML, it automatically creates a backup.
- Tier 1 — For single-table, parseable WHERE, with PK, ≤1,000 rows: stores the before rows as JSON in the
dml_backupof the history DB (blyck-history.db). Revert restores instantly. - Tier 2 — For large, complex queries, or no PK: creates and keeps a backup table (
blyck_bak_…) inside the target DB. When the revert completes, the backup table is auto-deleted.
Safety mechanisms
Section titled “Safety mechanisms”- Reverse-operation preview before running + a confirmation modal —
DROP/DELETEget a red warning - Reverting a middle item warns “N subsequent changes will be overwritten”
- If the current value differs from the recorded value (changed again elsewhere), it re-confirms whether to force
- The revert itself is recorded as new history — a revert of a revert is possible
History retention policy
Section titled “History retention policy”History is stored in %APPDATA%\Blyck\blyck-history.db.
| Policy | Threshold |
|---|---|
| Max retained per target | Most recent 40 items |
| Auto-cleanup interval | Delete items older than 14 days |
| DB size cap | 2 GB |
| Single file size cap | Files over 1 MB are excluded from recording |
Git operations
Section titled “Git operations”Run Git operations from the ChangeSet window’s commit history tab or the command palette (Ctrl+Shift+P).
| Operation | Description |
|---|---|
| Checkpoint | Creates an automatic mid-work save point as a timestamped commit. You can return to it anytime during experiments. |
| Task-unit commit | Gathers the file, DB, and SSH changes from the current chat (task) into a single commit. The ✨ button auto-generates an AI commit message. |
| Selective commit / commit all | Pick files to commit, or commit everything at once. |
| diff | Compare by whatever basis you want — working tree, a specific commit, between two commits, a specific task scope, etc. |
| discard | Discard working-tree changes. |
| log | View the commit history. |
| push | Push the current branch to the remote repository. |
GitHub integration
Section titled “GitHub integration”Log in via the GitHub OAuth device flow. Enter a code once in the browser to finish, and the token is stored encrypted in the OS credential store (safeStorage).
How to integrate
Section titled “How to integrate”- Command palette (
Ctrl+Shift+P) → “GitHub login”, or the GitHub button at the top of the ChangeSet window - When the browser opens, enter the displayed code to authenticate
- Once done, push/pull authentication is handled automatically
Operations available after integration
Section titled “Operations available after integration”| Operation | Description |
|---|---|
| Publish | Create a new GitHub repository from a local project and push to it |
| Clone | Clone a GitHub repository into a local folder |
| Link | Link an existing local repository with a GitHub repository |
After integration, push/pull authentication is handled automatically. The token is stored encrypted in the OS credential store, so you don’t need to log in every time.
Related features
Section titled “Related features”- AI Chat — Changes made by the AI are also auto-recorded in ChangeSet
- Code Editor — Saving a file records change history, and inline AI edits are tracked too
- DB Client — Reverse SQL · backups are auto-generated when DDL/DML runs
- Terminal · SSH · SFTP — SSH command execution history is recorded
Q. I don’t have Git installed — can I still commit? Windows builds bundle MinGit, so you can commit and push without a separate install.
Q. A file the AI edited doesn’t show in ChangeSet. A file the AI changed with its built-in Edit/Write doesn’t go through Blyck’s file_write path, so it isn’t immediately recorded in history. But since Git recognizes the change, it appears in the uncommitted-files list of the Changes tab.
Q. I ran a DML by mistake — can I revert it?
Yes. An automatic backup (Tier 1: history DB, Tier 2: backup table in the target DB) is created before DML runs, so you can restore via Ctrl+Shift+H → that item → revert. Even UPDATE/DELETE without WHERE is restored.
Q. What if I reverted by mistake?
The revert itself is recorded as new history. Revert that “revert” item again in Ctrl+Shift+H to restore the original state.
Q. I want to undo a specific commit in the commit history.
In the commit history tab, click that commit → press the [Revert this commit] button to run git revert. History is preserved and a new revert commit is added.
Q. Why can’t some SSH commands be reverted?
A reverse command is auto-suggested only when it can be inferred automatically (mkdir↔rmdir, etc.). Commands with side effects must be handled manually.
Q. My GitHub device flow login expired. Run “GitHub login” again from the command palette to re-authenticate. Push/pull is handled automatically again afterward.
Q. The history DB file has grown too large.
%APPDATA%\Blyck\blyck-history.db is managed with a 2 GB cap and a 14-day auto-cleanup policy. Large files (over 1 MB) are excluded from recording. To clean up immediately, restart the app and the cleanup routine runs.