The whole repo as folders; Page, Source and Diff; ask about a file.
The Repo is every file of the site, as folders: a private GitHub repository made for the project. Flexi commits to it, every commit shows in the chat as a card, and the code is yours to take anywhere.
Any file opens. An HTML file opens with Page · Source, and Diff when the last commit changed it, at Full, Laptop, Tablet or Phone width. A picture or a PDF opens as it does in a chat's Files. Ask about this file starts a message in the chat naming it, and @ in a message box pins a repo file for Flexi to read.
.flexos/. A new project starts as one holding page..flexos/: the Library, each chat's folder (what you sent, and a copy of what Flexi made), and the log: one file a month of every message you sent in every chat, with anything that looked like a key written as redacted. Flexi's replies are not in it. The folder is never served by the site.app/: a phone app, when the project has one. Off the website.agents/: the project's agents, one folder each. A commit there builds that agent, not the site.FlexOS uses one branch, the one that deploys. Every commit goes to it: Flexi's changes, Library filings, what you attach, the docs, the log. A commit that changes the site starts a build; one that only touches .flexos/ or agents/ does not. Flexi cannot open a pull request or commit elsewhere, and he cannot push from his sandbox: every commit goes through the one door that shows it in the chat.
Keys live in the Vault, never in the repo, and a .env file is never committed: an import diverts it to the Vault. Keys and the Vault has the rest.