install.sh: seat hooks brought up to the seat-hook template by page-inbox hook refresh at install (row 22, v13) #70

Open
caoer115 wants to merge 2 commits from agent/8751a366-seat-hook-trust into main
Owner

Row 22 (11-15 Mac mini): a seat hook made before v8 starts its seat in the site checkout, which no install trusts, so the seat stops at Claude Code's folder-trust dialog. Card: 13-16-ucc-rearchitecture/tasks/seat-hook-folder-trust (route 3 by the leader's amended ruling). The verb is ccc-pages#193 (page-inbox hook refresh, head ec176862).

Change (install.sh, just before the final ok: line; CHANGELOG § v13)

At floors 3 and 4, for each ### seat-hook-… section of $UCC_HOME/config/page-endpoints.md (the slug the seat-hook install makes), install.sh runs page-inbox hook refresh <slug> in start_env (the page owner's identity from user-env.sh; the caller's TMUX and herdr variables are not passed), with stdin from /dev/null and both streams to files.

  • Each outcome is one install.log line: refreshed, pinned at <to> (was <from>), current, left as pinned on exit 3 (owner edit, or a checkout that is dirty, detached or off its pin), not refreshed on 2 (no checkout or no pin) and on 1 or 6 (the verb has already put the old pin back), exit 5 (upload landed). The verb's words are whole in hook-refresh.log.
  • No outcome stops the install: this runs after the stage is kept, past any crossing put-back.
  • A ccc-pages skill without templates/seat-hook/hook-history (a pin before #193) logs that it has no refresh and calls nothing.

Gates at 2f47d31

  • bash -n install.sh: rc 0 under bash 5.3.15 and 3.2.57. lint-lcall, lint-lockfd: clean.
  • Local, under bash 3.2.57 with set -Eeuo pipefail and an ERR trap. The block was taken from install.sh with start_env, on a scratch UCC_HOME listing six seat-hook slugs and one other endpoint.
    • Stub page-inbox: every exit (0 refreshed, 0 current, 3, 2, 1, 5) logs its line. The other endpoint is never called. The stub saw the owner identity and no TMUX. The install carries on.
    • Without hook-history: one "has no refresh" line per slug, and no call.
    • The real verb at #193's head: exit 2, "no site checkout on this host", logged.
  • This run caught that a pipeline failing inside $(…) under set -E fires the ERR trap in the subshell, so the guards are || true inside the substitutions, as elsewhere in the file.
  • No round row: rounds reach no page service, so a row would show exit 2 alone. ccc-pages' test/integration/seat-hook.test.sh (81/0 on #193) shows a pre-v8 page refreshed and its started seat opening in ~/work.

Depends on: #193 merged, and the release's ccc_pages pin at its merge commit (v13). Not to be merged from this seat.

Row 22 (11-15 Mac mini): a seat hook made before v8 starts its seat in the site checkout, which no install trusts, so the seat stops at Claude Code's folder-trust dialog. Card: `13-16-ucc-rearchitecture/tasks/seat-hook-folder-trust` (route 3 by the leader's amended ruling). The verb is ccc-pages#193 (`page-inbox hook refresh`, head `ec176862`). ## Change (`install.sh`, just before the final `ok:` line; CHANGELOG § v13) At floors 3 and 4, for each `### seat-hook-…` section of `$UCC_HOME/config/page-endpoints.md` (the slug the seat-hook install makes), `install.sh` runs `page-inbox hook refresh <slug>` in `start_env` (the page owner's identity from `user-env.sh`; the caller's TMUX and herdr variables are not passed), with stdin from `/dev/null` and both streams to files. - Each outcome is one `install.log` line: `refreshed, pinned at <to> (was <from>)`, `current`, left as pinned on exit 3 (owner edit, or a checkout that is dirty, detached or off its pin), not refreshed on 2 (no checkout or no pin) and on 1 or 6 (the verb has already put the old pin back), exit 5 (upload landed). The verb's words are whole in `hook-refresh.log`. - No outcome stops the install: this runs after the stage is kept, past any crossing put-back. - A ccc-pages skill without `templates/seat-hook/hook-history` (a pin before #193) logs that it has no refresh and calls nothing. ## Gates at 2f47d31 - `bash -n install.sh`: rc 0 under bash 5.3.15 and 3.2.57. `lint-lcall`, `lint-lockfd`: clean. - Local, under bash 3.2.57 with `set -Eeuo pipefail` and an ERR trap. The block was taken from `install.sh` with `start_env`, on a scratch `UCC_HOME` listing six seat-hook slugs and one other endpoint. - Stub `page-inbox`: every exit (0 refreshed, 0 current, 3, 2, 1, 5) logs its line. The other endpoint is never called. The stub saw the owner identity and no TMUX. The install carries on. - Without hook-history: one "has no refresh" line per slug, and no call. - The real verb at #193's head: exit 2, "no site checkout on this host", logged. - This run caught that a pipeline failing inside `$(…)` under `set -E` fires the ERR trap in the subshell, so the guards are `|| true` inside the substitutions, as elsewhere in the file. - No round row: rounds reach no page service, so a row would show exit 2 alone. ccc-pages' `test/integration/seat-hook.test.sh` (81/0 on #193) shows a pre-v8 page refreshed and its started seat opening in `~/work`. **Depends on:** #193 merged, and the release's `ccc_pages` pin at its merge commit (v13). Not to be merged from this seat.
For each `### seat-hook-…` section of config/page-endpoints.md, at floor 3 and 4, in the daemon's start environment (the page owner's
identity in user-env.sh): the verb's state or exit is a line of install.log, its words whole in hook-refresh.log, and no outcome stops
the install. A ccc-pages skill without templates/seat-hook/hook-history (a pin before ccc-pages#193) logs that it has no refresh.
CHANGELOG § v13.
caoer115 force-pushed agent/8751a366-seat-hook-trust from 2f47d318a7 to 8c0aba91f8 2026-10-24 19:15:46 +00:00 Compare
This pull request has changes conflicting with the target branch.
  • CHANGELOG.md
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin agent/8751a366-seat-hook-trust:agent/8751a366-seat-hook-trust
git switch agent/8751a366-seat-hook-trust

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff agent/8751a366-seat-hook-trust
git switch agent/8751a366-seat-hook-trust
git rebase main
git switch main
git merge --ff-only agent/8751a366-seat-hook-trust
git switch agent/8751a366-seat-hook-trust
git rebase main
git switch main
git merge --no-ff agent/8751a366-seat-hook-trust
git switch main
git merge --squash agent/8751a366-seat-hook-trust
git switch main
git merge --ff-only agent/8751a366-seat-hook-trust
git switch main
git merge agent/8751a366-seat-hook-trust
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
caoer115/ucc!70
No description provided.