Repository navigation
Vibe projects, step 1: files behind checkpoints, Undo AI change, Versions - #458
Merged
Merged
Conversation
…code) Proposal only, waiting for owner approval. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…gine and API) - codec_vibe_projects.py: a project is a folder with a hidden .vibe/ (settings, checkpoint history, stored file versions). Every AI change is applied behind a checkpoint taken before and after; restore and undo write a new checkpoint, nothing is deleted. - routes/vibe_projects.py: /api/vibe/projects/... (files, apply, checkpoints, diff, restore, undo, delete to trash); VIBE_PROJECTS_ENABLED=false answers 404. - routes/vibe.py: a session remembers its project (nullable project_id, old databases upgrade in place). - Path rules: no .., absolute, .vibe, .git, links, secret-looking names; 1 MB / 200 files / 50 per reply. - 46 tests, each rule checked by breaking it on purpose. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- A reply with several labelled code blocks fills one editor tab per file while it streams and is applied as one checkpoint; Stop puts every file back as it was. - Undo AI change, Versions (diff, Restore) and Revert to before this on each AI message. - Preview inlines local css and js; old single-file sessions open as before. - static/vibe-files.js (pure helpers, tested in Node) and static/vibe-projects.js (controller). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…switch, don't-touch) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…signature Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Vibe step 1 from docs/VIBE-PROJECTS-DESIGN.md. Until now an AI reply overwrote the editor and the saved copy, with no way back (Monaco's
setValueclears undo,/api/vibe/saveisINSERT OR REPLACEon one column).~/codec-workspace/vibe/<id>/with a hidden.vibe/(settings, checkpoint history, stored file versions). No git needed.~/.codec/trash/vibe/.VIBE_PROJECTS_ENABLED=falsemakes the routes answer 404 and the page falls back to single-file Vibe.Safety
Path rules in
safe_rel(no.., absolute,.vibe,.git, links, secret-looking names; 1 MB, 200 files, 50 per reply); one writer (_write_bytes_locked); a damaged history cannot write outside the project. Audit events carry ids and counts only. Page code puts every name and label on the page withtextContent.Checked
ruff check .clean; skill manifest current.Rollback
VIBE_PROJECTS_ENABLED=false, or revert this PR. Theproject_idcolumn onvibe_sessionsis harmless if left.Step 2 (three panes, hideable code, live preview) follows in its own PR.
🤖 Generated with Claude Code