From 28bbd418684e3c5a9157e6cc9251ce7187774e4d Mon Sep 17 00:00:00 2001 From: Mischa Date: Fri, 24 Jul 2026 23:47:37 +0200 Subject: [PATCH] docs(working): record the submodule-git-dir cause and the .env fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ~/Projects is a symlink to ~/Nextcloud/Projects — one directory, not two clones. The differing user/main refs came from the worktree having its own submodule git dir (.git/worktrees//modules/user), which is worth knowing: submodule commits made from the main checkout stay invisible in a worktree until fetched, and a local fetch moves them without a push. Co-Authored-By: Claude Opus 5 --- .../plans/2026-07-23-post-form-location-override.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/working/plans/2026-07-23-post-form-location-override.md b/docs/working/plans/2026-07-23-post-form-location-override.md index c4eb902..3469195 100644 --- a/docs/working/plans/2026-07-23-post-form-location-override.md +++ b/docs/working/plans/2026-07-23-post-form-location-override.md @@ -18,11 +18,12 @@ execution: code Also landed after the review: maplibre's stylesheet is now lazy-``ed at panel-open instead of statically bundled, cutting `post-form.css` from 92,244 to 26,784 raw bytes (14,528 → 5,631 gzip) on every `/post` load, with a new spec asserting both halves of that boundary. **Still open before merge:** -- The `user/` submodule commits are unpushed by choice (git-sync would deploy to prod), so the pin must be pushed and re-pointed at merge time. +- The `user/` submodule commits remain **unpushed by choice** (git-sync would deploy to prod). Merged to `main` locally on 2026-07-24 and the pin bumped; pushing `user/` — then the outer repo, in that order — is the remaining step and is deliberately left to the user to time. +- Only one class of failure is left in `tests/ui/post/` + `tests/ui/map`: **64 passed, 6 failed**, all the `owner_username` cluster below. Nothing in this feature's scope is red. - ~~This worktree's `user/` branch has diverged from `user/`'s `main`~~ **Done** — `user/main` merged in (`7903432`). It was ahead on both content and theme fixes; `denmark-2026 published: true` came with it, so the local testing flip is gone. The one conflict was `js/post/post-form.js`, a generated bundle, resolved by rebuilding rather than hand-merging minified output. -- The `~/Projects` clone's `user/` carries two commits this clone cannot see (the leg-connection map fix and the U+200E coordinate strip) — separate clone, not a worktree. They need to reach `user/main` before the pin is bumped. +- ~~The `~/Projects` clone's `user/` carries two commits this clone cannot see~~ **Done** — merged in (`8a5cc52`). There is no second clone: `~/Projects` is a symlink to `~/Nextcloud/Projects`. What differs is the **submodule git dir** — a worktree gets `.git/worktrees//modules/user`, not the checkout's `.git/modules/user` — so `user/main` read `4721af6` here while the checkout's read `285ae37`, and the leg-connection map fix and U+200E strip were unreachable until a local `git fetch` between the two paths. Worth remembering: submodule commits made from the main checkout do not appear in a worktree until fetched, and a local fetch carries them without a push, so git-sync never fires. - Remaining UI failures are pre-existing on `main`, not from this branch: `site.yaml` pins `owner_username` to a real account while the suite authenticates as `testrunner`, so owner-only controls never render for it. Only `trip-publish.spec.js` patches that; `delete-flow`, `edit-mode` and `anon-view` do not. Separate branch. -- Every `make` target aborts with `.env:6: *** missing separator` in **both** non-worktree clones (`~/Projects` and `~/Nextcloud/Projects`; reproduced with `make test-config` in each). Worktrees are unaffected only because `worktree-new` creates no `.env`, so the `-include` silently skips — which is why all the testing above ran. The env layering itself is correct and intended: `.env` global, `-include .env.$(ENV)` per-environment, `ENV` set automatically by the generated env-suffixed remote targets (`make remote-install-prod`). The fragility is narrower — because `.env` is pulled in with `-include`, it must be valid **makefile** syntax as well as valid dotenv, and line 6 currently is not. Typical causes: a leading tab (make reads it as a recipe line), a value spanning multiple lines, or a line without `=`. +- ~~Every `make` target aborts with `.env:6: *** missing separator`~~ **Fixed by the user (2026-07-24)** — `make` now parses in the checkout. Worth keeping in mind: the env layering is intentional (`.env` global, `-include .env.$(ENV)` per-environment, `ENV` set by the generated env-suffixed remote targets like `make remote-install-prod`), but because `.env` is pulled in with `-include` it must be valid **makefile** syntax as well as valid dotenv — so a leading tab, a multi-line value, or a line without `=` takes down every target at once. Worktrees mask it, since `worktree-new` creates no `.env` and the include silently skips. - **UG1, UG2 and LD1 under `tests/ui/post/` now pass** — they had been failing only because this branch predated `e17a5dc` ("block submit on unfinished photo uploads; un-squeeze EXIF portraits in lightbox"). Merging `user/main` in brought the upload gate and the oriented-derivative slide dims those specs assert, and all three went green with no product change. A first pass mistook them for live defects; the lesson is to check the submodule branch point before reading a red spec on a feature branch as a real bug. ## Goal Capsule