diff --git a/.changeset/git-merge-endpoint.md b/.changeset/git-merge-endpoint.md
index 35de26c..1c1d8a0 100644
--- a/.changeset/git-merge-endpoint.md
+++ b/.changeset/git-merge-endpoint.md
@@ -8,7 +8,7 @@
`POST /account/api/git/merge` puts a pull request's work on a repository's
canonical branch, in either merge or squash mode.
-Landing is the one act in this model that needs authority over the repository,
+Merging is the one act in this model that needs authority over the repository,
so it runs on that account's own server under the session cookie the account
page already answers to. An atproto `repo:` scope names a collection and its
actions and cannot name one record, so asking a browser page for
diff --git a/.changeset/git-change-landing-page.md b/.changeset/git-pull-request-page.md
similarity index 100%
rename from .changeset/git-change-landing-page.md
rename to .changeset/git-pull-request-page.md
diff --git a/docs/plans/2026-08-24-pull-requests.md b/docs/plans/2026-08-24-pull-requests.md
index 9a298f4..06c153d 100644
--- a/docs/plans/2026-08-24-pull-requests.md
+++ b/docs/plans/2026-08-24-pull-requests.md
@@ -68,7 +68,7 @@ Two cases the pair does not cover, and what covers them:
from the next, which no record carries today.
- **A merged pull request whose branch is gone.** The graph answers it where a
merge commit carried the work in. Where a squash did, the merger writes the
- answer into the commit. See "Landing".
+ answer into the commit. See "Merging".
## Versions come from the push log
@@ -206,7 +206,7 @@ constraints and it did not take GitHub's model.
- Change ids come from jj, as a commit header, and map a jj stack to one pull
request per commit.
- Merge is fast forward, as `git am` applies a series. There is no squash, so
- the question this document answers under "Landing" does not arise for them.
+ the question this document answers under "Merging" does not arise for them.
Their knot holds the git data and their appview indexes it. Neither exists
here, which is why the fan-in and the daemon's derived records do that work.
@@ -228,7 +228,7 @@ before these lexicons publish.
rather than the two trees, and needs each version's own base.
4. ~~A record from a named collaborator, so a pull request carries a title, a
body and a draft state of its own.~~ Done.
-5. ~~Landing: the merge commit, then the squash with the merger's trailer.~~
+5. ~~Merging: the merge commit, then the squash with the merger's trailer.~~
Done. `POST /account/api/git/merge`, both modes, read back by git itself.
## Where merging runs, and why
diff --git a/packages/core/src/ports.js b/packages/core/src/ports.js
index 5825e9e..2fdad30 100644
--- a/packages/core/src/ports.js
+++ b/packages/core/src/ports.js
@@ -335,7 +335,7 @@
* platform builds it from the git package and hands it in, the way it hands
* in the write guard.
* @typedef {Object} GitMergerPort
- * @property {(landing: {did: string, name: string, from: string, ref: string, mode: 'merge'|'squash', handle?: string, subject?: string, body?: string}) => Promise<{sha: string, ref: string, mode: string, objects: number}>} merge
+ * @property {(merge: {did: string, name: string, from: string, ref: string, mode: 'merge'|'squash', handle?: string, subject?: string, body?: string}) => Promise<{sha: string, ref: string, mode: string, objects: number}>} merge
*/
/**
diff --git a/packages/git-ui/src/components/molecules/merge-control.jsx b/packages/git-ui/src/components/molecules/merge-control.jsx
index bc72bbc..ae38356 100644
--- a/packages/git-ui/src/components/molecules/merge-control.jsx
+++ b/packages/git-ui/src/components/molecules/merge-control.jsx
@@ -23,14 +23,14 @@ export function MergeControl({ repo, pull }) {
const queryClient = useQueryClient();
const [busy, setBusy] = useState('');
const [error, setError] = useState('');
- const [landed, setLanded] = useState('');
+ const [merged, setMerged] = useState('');
if (pull.merged || session?.did !== account.did) return null;
- if (landed) {
+ if (merged) {
return (
- Merged as {landed.slice(0, 8)}.
+ Merged as {merged.slice(0, 8)}.
);
}
@@ -52,12 +52,12 @@ export function MergeControl({ repo, pull }) {
);
}
- const land = async (mode) => {
+ const merge = async (mode) => {
setBusy(mode);
setError('');
try {
const answer = await mergePull(repo, pull, mode);
- setLanded(answer.sha);
+ setMerged(answer.sha);
// Every screen reads one work query, and main has just moved under all
// of them.
queryClient.invalidateQueries({ queryKey: ['work', repo] });
@@ -70,17 +70,17 @@ export function MergeControl({ repo, pull }) {
return (