Config: .env = projects root only; derive each project's forge from git

Reduce .env to just REPOS_HOST_PATH (the projects root); runtime bootstrap moves to compose/defaults. Projects are the subdirectories of the single root — removed the project-directories feature (store table, service methods, /api/config/project-dirs, Settings section). Each project's forge is derived from its git remote (matched to a configured forge, else the bare host) and shown as a pill next to its name (State.Forge via scanner ForgeFor + svc.ForgeDisplay). Removed first-run .env seeding; forges + identity are managed in Settings. Added forge.HostOf. AGENT.md updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-09-22 05:52:03 -04:00
parent e30c3b632a
commit 32ae17cc9f
15 changed files with 175 additions and 434 deletions
+9 -5
View File
@@ -53,18 +53,22 @@
<li><strong>Ahead / behind</strong> — commits your branch leads or trails its upstream by.</li>
</ul>
<h2>Projects &amp; forges</h2>
<p>
Your projects are the subdirectories of one root folder (set once in
<code>.env</code>). Each project shows which <strong>forge</strong> it belongs
to next to its name — that's detected automatically from the project's git
remote.
</p>
<h2>Settings</h2>
<p>
Open <a href="/settings">Settings</a> to manage your configuration (it's
stored in a private database inside the app, not in files):
Open <a href="/settings">Settings</a> to manage your configuration (stored in
a private database inside the app, not in files):
</p>
<ul>
<li><strong>Forges</strong> — add your Git hosting servers (Gitea) and their
access tokens. Tokens are saved securely and never shown again; to change
one, remove the forge and add it back.</li>
<li><strong>Project directories</strong> — the folders scanned for
repositories. Paths are inside the app's container (under a mounted folder
such as <code>/repos</code>); enable, disable, or remove them.</li>
<li><strong>Git identity</strong> — the name and email used for commits.</li>
</ul>