From bccd39946996caeddba27f681c07e197aa020a34 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 24 Sep 2026 09:02:17 +0000 Subject: Record the git.terst.org remotes and the two-machine workflow Every active repo now has a bare remote there, and both tungsten and the Fedora laptop push to them. Listen gained a commit while this session sat idle, so 'fetch before starting' is now a real requirement rather than hygiene. Also corrects the SHA in the Fedora handover: it cites 7f634ca, which is not in the repo -- the commit was amended before pushing and 84ec886 is the one that exists. A future session would have hunted for a commit that never landed. Co-Authored-By: Claude Opus 5 --- MEMORY.md | 1 + listen-handover-2026-09-21.md | 4 +++- workspace-git-remotes.md | 45 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 workspace-git-remotes.md diff --git a/MEMORY.md b/MEMORY.md index 80bee90..dcdb3c3 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -3,6 +3,7 @@ - [Delegation & context protection](feedback_delegation_and_context_protection.md) — fork vs fresh vs inline decision rule; `~/.claude/agents/verifier.md` custom agent for adversarial claim-checking without redoing work - [Terse manager-level updates](feedback_terse_manager_updates.md) — status updates should be outcome+next-step only, not sub-fix technical narratives - [User doesn't read the code](feedback_user_does_not_read_code.md) — never cite commits/diffs as evidence to Peter; explain in observable behavior, and own correctness since he won't catch errors by review +- [Workspace git remotes](workspace-git-remotes.md) — every repo now has a `local` remote on git.terst.org; two machines push, so fetch first - [Workspace layout](workspace-layout.md) — what each repo under /workspace is (listen, feedreader, podkit, devtools, ...) - [Listen handover 2026-09-21](listen-handover-2026-09-21.md) — queue-advance & notif skip-forward unverified by Peter; Phase 2 decisions pending - [Fedora Android build setup](fedora-android-build-setup.md) — JDK21 at ~/.jdks, SDK at ~/Android/Sdk, fixes for stale app/build/ diff --git a/listen-handover-2026-09-21.md b/listen-handover-2026-09-21.md index bb26798..0fdd482 100644 --- a/listen-handover-2026-09-21.md +++ b/listen-handover-2026-09-21.md @@ -8,7 +8,9 @@ metadata: modified: 2026-09-21T22:00:48.962Z --- -Commit `7f634ca` ("Add artwork, a real player screen, and queue drag-reorder") landed on `main`, +Commit `84ec886` ("Add artwork, a real player screen, and queue drag-reorder") landed on `main`, +(recorded here as `7f634ca` originally — that SHA is not in the repo, so the commit was +amended before pushing; `84ec886` is the one that exists) gate-green (COVERAGE_EXCEPTION used for the expected Media3-glue drop, matching the four prior uses in `listen/CLAUDE.md`). Implements the plan at Phase 2 pre-work Peter chose: artwork (Coil3, pinned to 3.3.0 — later versions need a newer Kotlin/Compose than this project runs), diff --git a/workspace-git-remotes.md b/workspace-git-remotes.md new file mode 100644 index 0000000..a1125b2 --- /dev/null +++ b/workspace-git-remotes.md @@ -0,0 +1,45 @@ +--- +name: workspace-git-remotes +description: "Every /workspace repo now has a `local` remote on git.terst.org, and two machines push to them — fetch before starting work" +metadata: + node_type: memory + type: project + originSessionId: 08c1f89c-4d24-4fb2-9488-0fe155872388 + modified: 2026-09-24T09:01:57.575Z +--- + +**As of 2026-09-24 every active repo has a bare remote at `/site/git.terst.org/repos/.git`.** +Created this session: `listen.git`, `feedreader.git`, `devtools.git`, `podkit.git`. Already +existed: `doot.git`, `claudomator.git`, `nav.git`, `modal-shell.git`, `claude-memory.git`. + +**Two machines push to these — tungsten and Peter's Fedora laptop.** Listen went from 18 to 19 +commits while this session sat idle. **`git fetch` before starting work on any repo**, and +expect to fast-forward rather than assuming your local HEAD is current. A SHA-equality check is +not a divergence check: use `git merge-base --is-ancestor` before calling something diverged +(I reported a clean fast-forward as a divergence by comparing SHAs alone). + +**Convention, copied from the pre-existing `doot.git`:** +- bare, `--shared=group`, but **no setgid** — doot is plain `775`, and `--shared=group` leaves + `2775`, so clear it with `chmod -R g-s` +- owned `www-data:www-data`, dirs `775`, files `664` +- a one-line `description` file (some web UIs display it) +- `HEAD` points at *that repo's own* branch — `listen`/`devtools`/`podkit` use `main`, + `feedreader`/`doot` use `master`. Don't normalise one to the other. + +**Pushing as root leaves root-owned files behind.** `chown -R www-data:www-data .git` +after every push. `doot.git` has ~339 files with this drift already; harmless at `775` because +everything is group-readable, but it will bite if a web UI ever runs as another user. + +**Git refuses these paths with a "dubious ownership" error** because the bare repos are +www-data-owned and sessions run as root. `safe.directory` entries already exist for `doot.git` +and `claude-memory.git`; adding one for a new repo follows that established policy rather than +deciding anything. Still check `git config --global --get-all safe.directory` first — see +[[feedback_verify_before_asserting_root_cause]] — because silencing the error blind is how a +real permissions problem gets papered over. + +**The memory tree itself is one of these repos.** `/root/.claude/projects/-workspace/memory` is +a git checkout with remote `terst`. It diverges in both directions routinely: commit local +changes, `git merge terst/main`, resolve `MEMORY.md` (the conflict is always both sides +appending index lines — keep both), verify every `](file.md)` link resolves, then push. + +See [[workspace-layout]] and [[fedora-android-build-setup]]. -- cgit v1.2.3