Name the app's Iris line app-pin, and let main mean the PR's base

The `iris` submodule's `main` was the fork's own line -- the app's 45
commits -- and not an ancestor of upstream's main, so it sat four merged
pull requests behind PR #19's actual base. Every obvious command was
therefore wrong in a way that looked plausible: `git diff main...` showed
#10, #12, #16 and #17 as the review branch's work, which is how the parley
text migration's undo path kept being reported as #19's.

The app's line is now `app-pin`, pushed to origin, and `main` tracks
`upstream/main`. `.gitmodules` follows `app-pin`, so `submodule update
--remote` cannot drag the pin onto upstream. The recorded commit is
unchanged at 32f6ad8; only the name it is reachable by has changed.

`origin/main` on the fork is left alone: moving it is a non-fast-forward on
a shared branch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
iris-aiandClaude Opus 5 committed 2026-09-20 02:17:08 -04:00
1 parent adce0fcdbe
commit 5bf0491ee1
3 files changed
+32 -32

No files matched your search

+29 -29
View File
@@ -40,42 +40,42 @@ names, and the one argument that says them". Bryan settled the API over
The core design remains sound. Round-to-nearest is still unchanged.
Two checkouts share one Git storage: `/home/bob/repos/iris` is the active
`layout/one-ask` worktree, and `ai-app-2/iris` stays on `main` at the app's
`32f6ad8` pin until the integration below is ready.
`layout/one-ask` worktree, and `ai-app-2/iris` stays on `app-pin` at the
app's `32f6ad8` pin until the integration below is ready.
### The base is `upstream/main`, not `main`
### The branch layout, and the trap that used to be here
**Diff this branch against `upstream/main`. The local `main` is the wrong
base and gives a plausible-looking wrong answer.** PR #19 is
`iris-ai/iris:layout/one-ask` into `iris/iris:main`, which is the `upstream`
remote, at `ca2b4b2`. Local `main` tracks `origin/main` -- the *fork's* line,
which carries the app's own commits, is not an ancestor of upstream's main,
and sits four merged pull requests behind it (#10 parley text, #12 pointer
routing, #16 draw/size merge, #17 headless rig).
`main` is PR #19's base and tracks `upstream/main` (`iris/iris`), so the
obvious commands are the right ones:
git diff main...layout/one-ask # WRONG -- base 7b54aaf
git diff upstream/main...layout/one-ask # right -- base ca2b4b2
git merge-base main layout/one-ask # ca2b4b2, the PR's base
git diff main...layout/one-ask # exactly what #19 changes
`git iris-base` and `git iris-diff` are configured in this checkout and use
the right one. The authority is gitea, when it matters:
It was not always so. Until 2026-09-20 `main` tracked `origin/main` -- the
*fork's* line, which carries the app's 45 commits, is not an ancestor of
upstream's main, and sat four merged pull requests behind it (#10 parley
text, #12 pointer routing, #16 draw/size merge, #17 headless rig). Diffing
against it showed all four as this branch's work, which is how the parley
migration's undo path kept being reported as #19's; the sixth sweep lost
half a session to it before Bryan caught it, and the fourth and fifth
sweeps deleted `Painter::text_data` partly on the same false reading.
curl -s -H "Authorization: token $(cat ~/.config/gitea/token)" \
https://git.arirex.me/api/v1/repos/iris/iris/pulls/19 \
| python3 -c 'import json,sys; print(json.load(sys.stdin)["base"]["sha"])'
Bryan asked for the setup fixed rather than documented. What changed:
Nothing here can be fixed by renaming: `main` is the app submodule
worktree's checked-out branch at its `32f6ad8` pin, and the two worktrees
share one ref store. Git has no way to record a pull request's base, so the
note is the mechanism.
- The app's line is now the branch **`app-pin`** (`32f6ad8`), pushed to
`origin`. That is the name to use for it; it is no longer called `main`.
- `main` points at and tracks `upstream/main`.
- `.gitmodules` pins the `iris` submodule to `branch = app-pin`, so
`git submodule update --remote` follows the app's line and cannot drag
the pin onto upstream.
- `git iris-base` and `git iris-diff` are still configured and still
correct; they now agree with plain `main`.
This has already cost real work. The sixth sweep reviewed against local
`main` for half a session (Bryan caught it, 2026-09-20), and reported the
parley migration's undo path as this branch's. The fourth and fifth sweeps
deleted `Painter::text_data`, `ActiveData::size_deps` and `SizeRule::apply`
partly on the same false reading; the deletions stand on their own merits --
`text_data` had no caller at `ca2b4b2` either, and `size_deps` was read there
and orphaned by this branch's rewrite -- but "arrived on this branch" was not
the reason for all of them.
The submodule's recorded commit is unchanged at `32f6ad8`, so nothing about
the app's pin moved -- only the name it is reachable by. **`origin/main` on
the fork is still `32f6ad8`**: moving it is a non-fast-forward on a shared
branch, so it is left for Bryan to decide. Until it moves, a *fresh clone of
the fork* still gets the old, misleading `main`.
### How to check a round
+2 -2
View File
@@ -12,7 +12,7 @@ Over what the five earlier rounds did not name -- the WGSL prelude and how
it is assembled, the position widgets, `orientation/`, and the sensor walk.
**Scoped against `upstream/main` at `ca2b4b2`, which is PR #19's real base**;
the first half of this sweep used the local `main` and had to be redone, for
which see "The base is `upstream/main`" in `docs/HANDOFF.md`. Two findings.
which see "The branch layout" in `docs/HANDOFF.md`. Two findings.
The cold dump is byte-identical to `1096c31` and all three seed scans pass
(400 at depth 5 in 69.07s, 1,000 at depth 6 in 169.29s, 2,000 at depth 4 in
300.75s).
@@ -175,7 +175,7 @@ throughout, `LayoutLen::{is_px, is_only_leftover, declared, fills}` and
event including the arrow keys. **`apply_event` is not in this PR's diff at
all**: it was last touched by #10 and #16, both already on `upstream/main`.
It keeps resurfacing in sweeps because they diffed against the local `main`
-- see "The base is `upstream/main`" in `docs/HANDOFF.md`. Bryan wants the
-- see "The branch layout" in `docs/HANDOFF.md`. Bryan wants the
unbounded push and the clone dealt with as a change of their own
(2026-09-20).
- `ActivationState::update` writes four arms where the `Start`/`On` and