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:
1 parent
adce0fcdbe
commit
5bf0491ee1
3 files changed
+32
-32
No files matched your search
+1
-1
@@ -4,4 +4,4 @@
|
|||||||
[submodule "iris"]
|
[submodule "iris"]
|
||||||
path = iris
|
path = iris
|
||||||
url = git@git.arirex.me:iris-ai/iris.git
|
url = git@git.arirex.me:iris-ai/iris.git
|
||||||
branch = main
|
branch = app-pin
|
||||||
+29
-29
@@ -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.
|
The core design remains sound. Round-to-nearest is still unchanged.
|
||||||
|
|
||||||
Two checkouts share one Git storage: `/home/bob/repos/iris` is the active
|
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
|
`layout/one-ask` worktree, and `ai-app-2/iris` stays on `app-pin` at the
|
||||||
`32f6ad8` pin until the integration below is ready.
|
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
|
`main` is PR #19's base and tracks `upstream/main` (`iris/iris`), so the
|
||||||
base and gives a plausible-looking wrong answer.** PR #19 is
|
obvious commands are the right ones:
|
||||||
`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).
|
|
||||||
|
|
||||||
git diff main...layout/one-ask # WRONG -- base 7b54aaf
|
git merge-base main layout/one-ask # ca2b4b2, the PR's base
|
||||||
git diff upstream/main...layout/one-ask # right -- base ca2b4b2
|
git diff main...layout/one-ask # exactly what #19 changes
|
||||||
|
|
||||||
`git iris-base` and `git iris-diff` are configured in this checkout and use
|
It was not always so. Until 2026-09-20 `main` tracked `origin/main` -- the
|
||||||
the right one. The authority is gitea, when it matters:
|
*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)" \
|
Bryan asked for the setup fixed rather than documented. What changed:
|
||||||
https://git.arirex.me/api/v1/repos/iris/iris/pulls/19 \
|
|
||||||
| python3 -c 'import json,sys; print(json.load(sys.stdin)["base"]["sha"])'
|
|
||||||
|
|
||||||
Nothing here can be fixed by renaming: `main` is the app submodule
|
- The app's line is now the branch **`app-pin`** (`32f6ad8`), pushed to
|
||||||
worktree's checked-out branch at its `32f6ad8` pin, and the two worktrees
|
`origin`. That is the name to use for it; it is no longer called `main`.
|
||||||
share one ref store. Git has no way to record a pull request's base, so the
|
- `main` points at and tracks `upstream/main`.
|
||||||
note is the mechanism.
|
- `.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
|
The submodule's recorded commit is unchanged at `32f6ad8`, so nothing about
|
||||||
`main` for half a session (Bryan caught it, 2026-09-20), and reported the
|
the app's pin moved -- only the name it is reachable by. **`origin/main` on
|
||||||
parley migration's undo path as this branch's. The fourth and fifth sweeps
|
the fork is still `32f6ad8`**: moving it is a non-fast-forward on a shared
|
||||||
deleted `Painter::text_data`, `ActiveData::size_deps` and `SizeRule::apply`
|
branch, so it is left for Bryan to decide. Until it moves, a *fresh clone of
|
||||||
partly on the same false reading; the deletions stand on their own merits --
|
the fork* still gets the old, misleading `main`.
|
||||||
`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.
|
|
||||||
|
|
||||||
### How to check a round
|
### How to check a round
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -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.
|
it is assembled, the position widgets, `orientation/`, and the sensor walk.
|
||||||
**Scoped against `upstream/main` at `ca2b4b2`, which is PR #19's real base**;
|
**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
|
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
|
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
|
(400 at depth 5 in 69.07s, 1,000 at depth 6 in 169.29s, 2,000 at depth 4 in
|
||||||
300.75s).
|
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
|
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`.
|
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`
|
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
|
unbounded push and the clone dealt with as a change of their own
|
||||||
(2026-09-20).
|
(2026-09-20).
|
||||||
- `ActivationState::update` writes four arms where the `Start`/`On` and
|
- `ActivationState::update` writes four arms where the `Start`/`On` and
|
||||||
|
|||||||
Reference in new issue
Block a user