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:
@@ -293,6 +293,26 @@ Append-only running history of all changes (AGENT.md §9.1). Newest last.
|
||||
rest is an open item); scan tuning (interval/depth/ignore/fetch) stays in `.env`
|
||||
for now; container can only scan paths under a mounted base (mount constraint).
|
||||
|
||||
## 2026-09-22 — .env = projects root only; forge derived from git per project
|
||||
- **What:** Refined the config model. `.env` now holds **only the projects root**
|
||||
(`REPOS_HOST_PATH`); runtime bootstrap (listen/TLS/DB path/`PROJECTS_ROOT`/scan
|
||||
tuning) comes from compose + code defaults. The config store keeps **forges +
|
||||
tokens and git identity** only — the **project-directories** feature was removed
|
||||
(table, service methods, `/api/config/project-dirs`, and the Settings section):
|
||||
**projects are simply the subdirectories of the single root.** 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 (`repos.State.Forge` via the
|
||||
scanner's `ForgeFor` + `svc.ForgeDisplay`). First-run `.env` seeding was removed
|
||||
(forges/identity are added in Settings). `.env` reduced to one line;
|
||||
`forge.HostOf` added; scanner config gained `ForgeFor`.
|
||||
- **Why:** User: "the only thing in .env should be the root directory; each project
|
||||
has its own directory and shows which forge it belongs to — get it from git."
|
||||
- **Affects:** `internal/config`, `internal/store` (dropped project_dirs),
|
||||
`internal/repos` (State.Forge + ForgeFor), `internal/service` (dropped project-dir
|
||||
methods, added ForgeDisplay), `internal/forge` (HostOf), `cmd/server/main.go`,
|
||||
`components/{settings-panel,repo-list}`, `web/templates/{help}.html`,
|
||||
`docker-compose.yml`, `.env`/`.env.example`, `AGENT.md` (§1.3/§1.5/§3/§8.4/§11).
|
||||
|
||||
## 2026-09-20 — Slice 13: repo search + filtering
|
||||
- **What:** `<repo-list>` gained a search box (name/path, case-insensitive) and
|
||||
"Dirty" / "Ahead/behind" filter chips with a "N of M" count. Filtering is
|
||||
|
||||
Reference in New Issue
Block a user