Working in a project
Projects
Give Code a folder. It reads, edits and runs commands there, and nowhere else.
A project is one folder Code works in. Every path is resolved with symlinks
followed and then checked against that folder, so neither .. nor a
link out of the tree gets anywhere else.
What is refused anyway
- Folders such as
.ssh,.aws,.gnupg,.kube - Files such as
.env,id_rsa,.pem,.npmrc,credentials - Anything over 2 MB, and anything that is not text
Every change can be undone
A step that changed a file shows a diff and an Undo button. The previous bytes are kept in Draggy's own folder, so undo works in a folder that is not a repository. A deleted file went to the recycle bin.
The canvas
Click a file in the tree and it opens beside the conversation: a code file in edit mode with syntax highlighting, Markdown with an Edit and Preview toggle. The model's edits to the same file land in it as they happen.
Files in the sidebar shows the same tree full size, with rename, reveal and delete beside the editor.
Git
In a repository, a strip under the tree shows the branch, what is unpushed, and
what changed, with a Diff button per file. The model reads the
same through git_status and git_diff, with the
repository's hooks, filters and external diff tools switched off. It never
commits or fetches.
Project memory
An AGENTS.md at the top of the project is read into every turn.
Put in it what someone new would need: how to run the tests, what not to touch,
the house style. /init drafts one from what is already there.