SessionLog-2026-08-21.md #1

  • //
  • test-install_sdp/
  • dev/
  • ai_dev_support/
  • SessionLog-2026-08-21.md
  • Markdown
  • View
  • Commits
  • Open Download .zip Download (14 KB)

Session Log - 2026-08-21

Agent: Claude Code Model: Claude Sonnet 5 (claude-sonnet-5) P4 identity used: bot_Claude_Anthropic (except where noted)

Summary

New day, picking up from SessionLog-2026-08-20.md. The user set up self-service P4 logins for bot_Claude_Anthropic on both servers (password files at ~/pub/.p4passwd.bot_Claude_Anthropic and, for the PPN server, ~/ppn/.p4passwd.bot_Claude_Anthropic) -- no more asking for manual ticket renewal. Hit a one-time SSO wrinkle on the PPN side along the way (see //BattleSchool/Gen7/ai/session-log-2026-08-21.md for detail; not written into the lab environment docs since it's a one-off account-config fix, not a recurring environment characteristic). Heading back into yesterday's qa_build investigation next.

Where Things Stand

  • Task 1 (SDP Installer Test Suite): complete.
  • Task 2 (prepare SDP-QA-Gen7): in progress, meaningfully advanced today. All 4 of yesterday's root causes now have fixes deployed (root cause A confirmed working live; B/D/earl fixed but not yet re-verified live, blocked on the user reprovisioning a credential file -- see below).
  • New capability: self-service login for bot_Claude_Anthropic, documented in ai_dev_support/P4Info.md (change 33215) and //BattleSchool/Gen7/ai/AGENTS.md (change 2762839).
  • New capability: two Claude Code Skills for BSW/Gen7 lab work (bsw-qa-build-run, bsw-lab-ssh), versioned in //BattleSchool/Gen7/ai/skills/, discoverable via personal ~/.claude/skills/ symlinks. Not yet confirmed usable -- pending the user's stop/--resume test.
  • Deferred per explicit user direction: "We've Moved" notices (task #11), cli_tests.cfg test-coverage gap analysis (task #14), fleet runtime-variation speculation (task #15), Gen7-to-main promotion audit (tasks #23/#24), push-access for bot_Claude_Anthropic (task #29).

Timeline

  1. Self-service login capability. Logged in 3x on each server (a fresh login gets a baseline ticket duration; each subsequent login while a ticket exists extends it by 1/3 of the max, so repeating converges on the full duration -- confirmed both servers reached 24 hours this way). Documented in both P4Info.md and the Gen7 AGENTS.md.

  2. SSO side-note. First PPN login round silently piggybacked on the user's own SSO session (their email was on bot_Claude_Anthropic's user spec, a deliberate practice for bot/service accounts, and a PPN trigger had auto-added the account to the SSO group). Not a real problem -- the user fixed it by removing the account from that group; confirmed via p4 logout / p4 login -s (got the expected P4PASSWD error) / fresh password login (no SSO popup, full ticket). Full detail in the Gen7 log.

  3. Re-ran lab qa_build: 58/61 passed (up from 27/61) -- root cause A confirmed fixed, and root cause C turned out to be a pure downstream symptom of A (didn't recur). Root causes B and D remained, plus a new related finding: earl's password comes up "expired" right after set_password_for_bruno.sh sets it (same class of bug as A, different script: earl gets a password for the first time while dm.user.resetpassword=1 is already active, unlike bruno who already had one from the install-time bootstrap).

  4. Fixed all three, one at a time, in //p4-sdp/dev_rebrand (all in the insitu-synced test/bsw/ tree, so no manual re-clone needed): B (stale master.1 ServerID regex in cli_tests.cfg, genericized -- change 33234), D (svc_master.1.user.p4s renamed/updated to svc_commit.p4demo.1.user.p4s, confirmed with the user this is fine to hardcode since test/bsw/ is BSW-dedicated -- change 33235), and earl (mirrored mkrep.sh's existing temporarily-disable/restore dm.user.resetpassword pattern in set_password_for_bruno.sh -- change 33237). Re-ran again: still 58/61, same 3 failures -- none of the fixes had landed.

  5. Found why, and fixed a real infrastructure gap: the insitu sync's own credentials (/p4/.p4config.pub.SDP_QA and its password file) had silently vanished from p4c-bos-01, so prep_for_qa.sh's insitu sync had been bailing (silently -- bsw_lab_qa_1.sh's per-host loop only warns, never hard-stops) since sometime yesterday evening. Root cause per the user: this file lived at /p4/... directly in Gen6, which survived Gen6's reset logic, but Gen7's DANGER_CLEAN.sh effectively recreates /p4/... on every reset, silently losing anything manually placed there (the user had placed it there just yesterday). Fixed by moving to /home/perforce/, confirmed to survive DANGER_CLEAN.sh -bsw (explicitly skips OS-user/home-dir removal, and its mount-point wipe never touches /home or /p4 directly). Updated prep_for_qa.sh and bsw_lab_qa_build_1.sh, documented the new location and the manual-provisioning requirement in docs/SDP-QA-LabEnvironment.adoc. Change 2762840, deployed to p4c-bos-01. Waiting on the user to reprovision the actual credential file at the new location before B/D/ earl can be verified live. Full detail in the Gen7 log.

  6. Built two Claude Code Skills per the user's request (recapping a "side conversation" from outside this session): bsw-qa-build-run and bsw-lab-ssh, versioned in //BattleSchool/Gen7/ai/skills/, discoverable via personal ~/.claude/skills/ symlinks (chosen over project-scoped since the content is Gen7/BSW-specific but sessions often start elsewhere). Got the exact Skill file format/discovery rules from the claude-code-guide agent first rather than guessing. Change 2762841. Caveat: ~/.claude/skills/ didn't exist before this session, so per the docs a restart is needed before it's watched -- the user is testing claude --resume <token> to see if that's sufficient (genuinely unclear from the docs either way).

  7. Second real bug found while reprovisioning credentials: the user placed the new /home/perforce/.p4passwd.bot_SDP_QA (confirmed present, and confirmed we're on the right physical instance via ec2id: i-04b30020d1a0abf9a), but the insitu client itself turned out to be misnamed -- bot_SDP_QA.p4c-bos-01.sdp_qa_dev implied a binding to //p4-sdp/dev, but had actually been bound to //p4-sdp/dev_rebrand_insitu since 2026-08-18. Decided with the user to adopt a real naming convention rather than just rename in place: one dedicated, permanently-locked client per stream (their preferred "Option 2"), so testing a second stream in parallel later just means a second locked client (and eventually lab environment), never re-pointing an existing one.

    Created bot_SDP_QA.p4c-bos-01.SDP_QA_dev_rebrand on the Public Depot (same Root/view mapping as the old client, just correctly named and owned), left the old client orphaned rather than deleted, and wrote the new /home/perforce/.p4config.pub.SDP_QA to match. Used p4 flush (the user's suggestion, since the new client's Root and view exactly match the old one's -- no need to re-download anything already correct) followed by the standard p4 diff -sd/-se cleanup sync to catch the files that genuinely were missing/stale relative to head. Confirmed all three of today's earlier fixes are now actually present on disk. Documented the whole decision in docs/SDP-QA-LabEnvironment.adoc (change 2762842 in Gen7). Full detail in the Gen7 log.

  8. Backgrounded bsw_lab_qa_1.sh sanity check completed (7m32s, after the wrap-up above was drafted): all 5 hosts' prep_for_qa.sh reported "ran OK," but surfaced one new, minor, not-yet-investigated hiccup -- rsync: [sender] change_dir "/mnt/p4depots/sdp" failed: No such file or directory on p4c-bos-01, so the other 4 hosts couldn't pull that path. Run still completed normally overall; looks unrelated to today's credential/naming work. Full detail in the Gen7 log.

  9. Resumed after the restart -- skills confirmed discoverable. Both bsw-qa-build-run and bsw-lab-ssh showed up in the available-skills listing after claude --resume <token>, so that does count as a sufficient restart for a brand-new ~/.claude/skills/ directory (not confirmed either way in the docs beforehand).

  10. Used the new skill for real, re-ran lab qa_build: 60/61 passed (up from 58/61) -- B and earl both confirmed resolved. Only root cause D remained, and turned out to have a second half: while create_master_service_user.sh now succeeds, fleet_login.sh (called right after) was still using a stale helix-0N hostname convention that doesn't exist in Gen7's actual /etc/hosts (only p4-0N does). Fixed (change 33244), found (but didn't fix) 18 more files with the same staleness elsewhere in test/bsw/ -- task #34.

  11. Resolved the /mnt/p4depots/sdp mystery from item 8, with the user's help: a legacy-SDP-package-structure relic (Gen6's structure put SDP files under a depots mount point; Gen7's new structure symlinks /p4/common//p4/sdp under /opt/perforce instead, confirmed live). Removed the stale rsync line outright from prep_for_qa.sh (now v1.3.1) -- change 2762843, deployed. Task #33 closed.

  12. Re-ran lab qa_build after the fleet_login.sh fix: run_cli_tests.sh finally hit 53/53 clean for the first time ever, which meant TEST SUITE 4 (run_scripted_tests.sh) got exercised for the first time this whole investigation -- and promptly failed 31 of 43 tests, all traced to two more stale helix-0N-convention hostnames (syd-helix-04, bos-helix-02) hardcoded in test/bsw/scripted_tests.cfg, its t2/ copy, and 9 test_script-*.sh files. Fixed via mechanical substitution (syd-helix-04 -> p4-04, bos-helix-02 -> p4-02), same pattern as fleet_login.sh. Change 33246. Found (but deferred to task #34) a handful of lower-priority stale references: run_scripted_tests.sh's own doc/help text (cosmetic only) and a likely-orphaned test_sdp.bos-helix-01.cfg.

  13. Re-ran lab qa_build once more to verify change 33246: ALL 43 scripted tests PASSED. SUCCESS: ALL TEST SUITES COMPLETED OK! -- every one of the 4 test suites (both internal self-tests, run_cli_tests.sh, and run_scripted_tests.sh) completed clean in the same run, for the first time in this whole investigation. Total run time 14m14s. Milestone: lab qa_build now passes 100% clean end-to-end.

  14. User independently confirmed success with their own manual run: Lab qa_build Setup took 0 hours 16 minutes 0 seconds, and SUCCESS: ALL TEST SUITES COMPLETED OK! on the machine.

  15. Closed out two small pending tasks on request ("knock out #28 and

    34"):

    • #28: deleted /opt/perforce/.dev/bin.junk (42M) and /opt/perforce/.dev/sdp.workspace_as_tom (20M) on p4c-bos-01 -- the old mis-origin/mis-client clones set aside 2026-08-20, now confirmed safe to remove after today's clean runs on the correct re-clones.
    • #34: fixed the remaining cosmetic bos-helix-01 doc/example text in run_scripted_tests.sh/run_cli_tests.sh (-> p4c-bos-01) and deleted the confirmed-orphaned test_sdp.bos-helix-01.cfg (root + t1/ + t2/). push_bins.sh/push_sdp.sh's own bos-helix-01 references are intentional Gen6/Gen7 dual-support, left alone. Change 33247. Task fully closed.
  16. New tracking-only item (task #35): two cosmetic spillovers from the separate BSW-43 (NFS/EFS lab) project are visible in this standard EBS-only lab -- a lab_engine log line about a p4e-syd-05 EFS secondary, and a bogus p4d_ham_edge_syd ServerID in p4 servers output (ham = HA/metadata-only standby, NFS/EFS-only concept). Per the user, neither blocks SDP 2026.1 and the fix belongs in the BSW-43 project, not before SDP 2026.1 ships -- tracked here only so it isn't forgotten.

  17. Doc/skill gap reflection, per the user's direct question: two ideas worth a future session -- (a) a Gen6->Gen7 naming-migration checklist (canonical old->new hostname/ServerID mappings + a standard sweep incantation), since the same class of staleness was independently rediscovered four separate times today; (b) a one-line symlink-log callout for the bsw-qa-build-run skill (sudo cat/cp on a symlink like /tmp/run_all_tests.log can misleadingly report "Permission denied" -- read the resolved target instead). Full detail in the Gen7 log; not built tonight, just captured.

  18. New tracking-only item (task #36): p4bsw runs on several Gen7 fleet hosts but is only useful on p4c-bos-01 -- not harmful, just a general Gen7 environment-setup issue (not specific to this project). To be tracked as its own BSW job with CommitRelease: Gen7, not fixed via this task list. Full detail in the Gen7 log.

Wrap-Up

Task 2 (prepare SDP-QA-Gen7) reached a major milestone today: the full lab qa_build pipeline now passes 100% clean end-to-end, independently confirmed by both the agent's and the user's own manual run. All root causes found since yesterday (A/B/C/D, the earl password-expiry bug, the missing insitu credential files, the insitu client naming/binding mismatch, the legacy /mnt/p4depots/sdp relic, and the entire helix-0N stale-hostname family) are fixed and verified live. Also closed out two small pending tasks (#28, #34) and captured two new lower-priority items for later: task #35 (BSW-43 spillover, tracking only) and a pair of doc/skill improvement ideas. Remaining open/deferred: tasks #23/#24/#29/#35/#36, and the doc/skill ideas from item 17. Good stopping point for the day.

# Session Log - 2026-08-21

Agent: Claude Code
Model: Claude Sonnet 5 (claude-sonnet-5)
P4 identity used: bot_Claude_Anthropic (except where noted)

## Summary

New day, picking up from `SessionLog-2026-08-20.md`. The user set up
self-service P4 logins for `bot_Claude_Anthropic` on both servers (password
files at `~/pub/.p4passwd.bot_Claude_Anthropic` and, for the PPN server,
`~/ppn/.p4passwd.bot_Claude_Anthropic`) -- no more asking for manual ticket
renewal. Hit a one-time SSO wrinkle on the PPN side along the way (see
`//BattleSchool/Gen7/ai/session-log-2026-08-21.md` for detail; not written
into the lab environment docs since it's a one-off account-config fix, not
a recurring environment characteristic). Heading back into yesterday's
`qa_build` investigation next.

## Where Things Stand

- **Task 1 (SDP Installer Test Suite): complete.**
- **Task 2 (prepare SDP-QA-Gen7): in progress, meaningfully advanced today.**
  All 4 of yesterday's root causes now have fixes deployed (root cause A
  confirmed working live; B/D/`earl` fixed but not yet re-verified live,
  blocked on the user reprovisioning a credential file -- see below).
- **New capability**: self-service login for `bot_Claude_Anthropic`,
  documented in `ai_dev_support/P4Info.md` (change `33215`) and
  `//BattleSchool/Gen7/ai/AGENTS.md` (change `2762839`).
- **New capability**: two Claude Code Skills for BSW/Gen7 lab work
  (`bsw-qa-build-run`, `bsw-lab-ssh`), versioned in
  `//BattleSchool/Gen7/ai/skills/`, discoverable via personal
  `~/.claude/skills/` symlinks. Not yet confirmed usable -- pending the
  user's stop/`--resume` test.
- Deferred per explicit user direction: "We've Moved" notices (task #11),
  `cli_tests.cfg` test-coverage gap analysis (task #14), fleet
  runtime-variation speculation (task #15), Gen7-to-main promotion audit
  (tasks #23/#24), push-access for `bot_Claude_Anthropic` (task #29).

## Timeline

1. **Self-service login capability.** Logged in 3x on each server (a fresh
   login gets a baseline ticket duration; each subsequent login while a
   ticket exists extends it by 1/3 of the max, so repeating converges on
   the full duration -- confirmed both servers reached 24 hours this way).
   Documented in both P4Info.md and the Gen7 AGENTS.md.

2. **SSO side-note.** First PPN login round silently piggybacked on the
   user's own SSO session (their email was on `bot_Claude_Anthropic`'s user
   spec, a deliberate practice for bot/service accounts, and a PPN trigger
   had auto-added the account to the SSO group). Not a real problem -- the
   user fixed it by removing the account from that group; confirmed via
   `p4 logout` / `p4 login -s` (got the expected `P4PASSWD` error) / fresh
   password login (no SSO popup, full ticket). Full detail in the Gen7 log.

3. **Re-ran `lab qa_build`**: 58/61 passed (up from 27/61) -- root cause A
   confirmed fixed, and root cause C turned out to be a pure downstream
   symptom of A (didn't recur). Root causes B and D remained, plus a new
   related finding: `earl`'s password comes up "expired" right after
   `set_password_for_bruno.sh` sets it (same class of bug as A, different
   script: `earl` gets a password for the first time while
   `dm.user.resetpassword=1` is already active, unlike `bruno` who already
   had one from the install-time bootstrap).

4. **Fixed all three, one at a time, in `//p4-sdp/dev_rebrand`** (all in the
   insitu-synced `test/bsw/` tree, so no manual re-clone needed): B (stale
   `master.1` ServerID regex in `cli_tests.cfg`, genericized -- change
   `33234`), D (`svc_master.1.user.p4s` renamed/updated to
   `svc_commit.p4demo.1.user.p4s`, confirmed with the user this is fine to
   hardcode since `test/bsw/` is BSW-dedicated -- change `33235`), and
   `earl` (mirrored `mkrep.sh`'s existing temporarily-disable/restore
   `dm.user.resetpassword` pattern in `set_password_for_bruno.sh` -- change
   `33237`). Re-ran again: still 58/61, same 3 failures -- none of the
   fixes had landed.

5. **Found why, and fixed a real infrastructure gap**: the insitu sync's
   own credentials (`/p4/.p4config.pub.SDP_QA` and its password file) had
   silently vanished from `p4c-bos-01`, so `prep_for_qa.sh`'s insitu sync
   had been bailing (silently -- `bsw_lab_qa_1.sh`'s per-host loop only
   warns, never hard-stops) since sometime yesterday evening. Root cause
   per the user: this file lived at `/p4/...` directly in Gen6, which
   survived Gen6's reset logic, but Gen7's `DANGER_CLEAN.sh` effectively
   recreates `/p4/...` on every reset, silently losing anything manually
   placed there (the user had placed it there just yesterday). Fixed by
   moving to `/home/perforce/`, confirmed to survive `DANGER_CLEAN.sh -bsw`
   (explicitly skips OS-user/home-dir removal, and its mount-point wipe
   never touches `/home` or `/p4` directly). Updated `prep_for_qa.sh` and
   `bsw_lab_qa_build_1.sh`, documented the new location and the
   manual-provisioning requirement in `docs/SDP-QA-LabEnvironment.adoc`.
   Change `2762840`, deployed to `p4c-bos-01`. Waiting on the user to
   reprovision the actual credential file at the new location before B/D/
   `earl` can be verified live. Full detail in the Gen7 log.

6. **Built two Claude Code Skills** per the user's request (recapping a
   "side conversation" from outside this session): `bsw-qa-build-run` and
   `bsw-lab-ssh`, versioned in `//BattleSchool/Gen7/ai/skills/`, discoverable
   via personal `~/.claude/skills/` symlinks (chosen over project-scoped
   since the content is Gen7/BSW-specific but sessions often start
   elsewhere). Got the exact Skill file format/discovery rules from the
   `claude-code-guide` agent first rather than guessing. Change `2762841`.
   Caveat: `~/.claude/skills/` didn't exist before this session, so per the
   docs a restart is needed before it's watched -- the user is testing
   `claude --resume <token>` to see if that's sufficient (genuinely unclear
   from the docs either way).

7. **Second real bug found while reprovisioning credentials**: the user
   placed the new `/home/perforce/.p4passwd.bot_SDP_QA` (confirmed present,
   and confirmed we're on the right physical instance via `ec2id`:
   `i-04b30020d1a0abf9a`), but the insitu *client itself* turned out to be
   misnamed -- `bot_SDP_QA.p4c-bos-01.sdp_qa_dev` implied a binding to
   `//p4-sdp/dev`, but had actually been bound to
   `//p4-sdp/dev_rebrand_insitu` since 2026-08-18. Decided with the user to
   adopt a real naming convention rather than just rename in place: one
   dedicated, permanently-locked client per stream (their preferred
   "Option 2"), so testing a second stream in parallel later just means a
   second locked client (and eventually lab environment), never re-pointing
   an existing one.

   Created `bot_SDP_QA.p4c-bos-01.SDP_QA_dev_rebrand` on the Public Depot
   (same `Root`/view mapping as the old client, just correctly named and
   owned), left the old client orphaned rather than deleted, and wrote the
   new `/home/perforce/.p4config.pub.SDP_QA` to match. Used `p4 flush`
   (the user's suggestion, since the new client's `Root` and view exactly
   match the old one's -- no need to re-download anything already
   correct) followed by the standard `p4 diff -sd`/`-se` cleanup sync to
   catch the files that genuinely were missing/stale relative to head.
   Confirmed all three of today's earlier fixes are now actually present on
   disk. Documented the whole decision in `docs/SDP-QA-LabEnvironment.adoc`
   (change `2762842` in Gen7). Full detail in the Gen7 log.

8. **Backgrounded `bsw_lab_qa_1.sh` sanity check completed** (7m32s, after
   the wrap-up above was drafted): all 5 hosts' `prep_for_qa.sh` reported
   "ran OK," but surfaced one new, minor, not-yet-investigated hiccup --
   `rsync: [sender] change_dir "/mnt/p4depots/sdp" failed: No such file or
   directory` on `p4c-bos-01`, so the other 4 hosts couldn't pull that path.
   Run still completed normally overall; looks unrelated to today's
   credential/naming work. Full detail in the Gen7 log.

9. **Resumed after the restart -- skills confirmed discoverable.** Both
   `bsw-qa-build-run` and `bsw-lab-ssh` showed up in the available-skills
   listing after `claude --resume <token>`, so that does count as a
   sufficient restart for a brand-new `~/.claude/skills/` directory (not
   confirmed either way in the docs beforehand).

10. **Used the new skill for real, re-ran `lab qa_build`**: 60/61 passed
    (up from 58/61) -- B and `earl` both confirmed resolved. Only root
    cause D remained, and turned out to have a second half: while
    `create_master_service_user.sh` now succeeds, `fleet_login.sh` (called
    right after) was still using a stale `helix-0N` hostname convention
    that doesn't exist in Gen7's actual `/etc/hosts` (only `p4-0N` does).
    Fixed (change `33244`), found (but didn't fix) 18 more files with the
    same staleness elsewhere in `test/bsw/` -- task #34.

11. **Resolved the `/mnt/p4depots/sdp` mystery** from item 8, with the
    user's help: a legacy-SDP-package-structure relic (Gen6's structure put
    SDP files under a depots mount point; Gen7's new structure symlinks
    `/p4/common`/`/p4/sdp` under `/opt/perforce` instead, confirmed live).
    Removed the stale rsync line outright from `prep_for_qa.sh` (now
    v1.3.1) -- change `2762843`, deployed. Task #33 closed.

12. **Re-ran `lab qa_build` after the `fleet_login.sh` fix**: `run_cli_tests.sh`
    finally hit 53/53 clean for the first time ever, which meant TEST SUITE 4
    (`run_scripted_tests.sh`) got exercised for the first time this whole
    investigation -- and promptly failed 31 of 43 tests, all traced to two
    more stale `helix-0N`-convention hostnames (`syd-helix-04`,
    `bos-helix-02`) hardcoded in `test/bsw/scripted_tests.cfg`, its `t2/`
    copy, and 9 `test_script-*.sh` files. Fixed via mechanical substitution
    (`syd-helix-04` -> `p4-04`, `bos-helix-02` -> `p4-02`), same pattern as
    `fleet_login.sh`. Change `33246`. Found (but deferred to task #34) a
    handful of lower-priority stale references: `run_scripted_tests.sh`'s
    own doc/help text (cosmetic only) and a likely-orphaned
    `test_sdp.bos-helix-01.cfg`.

13. **Re-ran `lab qa_build` once more to verify change `33246`: ALL 43
    scripted tests PASSED.** `SUCCESS: ALL TEST SUITES COMPLETED OK!` --
    every one of the 4 test suites (both internal self-tests,
    `run_cli_tests.sh`, and `run_scripted_tests.sh`) completed clean in the
    same run, for the first time in this whole investigation. Total run
    time 14m14s. **Milestone: `lab qa_build` now passes 100% clean
    end-to-end.**

14. **User independently confirmed success with their own manual run**:
    `Lab qa_build Setup took 0 hours 16 minutes 0 seconds`, and
    `SUCCESS: ALL TEST SUITES COMPLETED OK!` on the machine.

15. **Closed out two small pending tasks on request** ("knock out #28 and
    #34"):
    - **#28**: deleted `/opt/perforce/.dev/bin.junk` (42M) and
      `/opt/perforce/.dev/sdp.workspace_as_tom` (20M) on `p4c-bos-01` --
      the old mis-origin/mis-client clones set aside 2026-08-20, now
      confirmed safe to remove after today's clean runs on the correct
      re-clones.
    - **#34**: fixed the remaining cosmetic `bos-helix-01` doc/example text
      in `run_scripted_tests.sh`/`run_cli_tests.sh` (-> `p4c-bos-01`) and
      deleted the confirmed-orphaned `test_sdp.bos-helix-01.cfg` (root +
      `t1/` + `t2/`). `push_bins.sh`/`push_sdp.sh`'s own `bos-helix-01`
      references are intentional Gen6/Gen7 dual-support, left alone.
      Change `33247`. Task fully closed.

16. **New tracking-only item (task #35)**: two cosmetic spillovers from the
    separate BSW-43 (NFS/EFS lab) project are visible in this standard
    EBS-only lab -- a `lab_engine` log line about a `p4e-syd-05` EFS
    secondary, and a bogus `p4d_ham_edge_syd` ServerID in `p4 servers`
    output (`ham` = HA/metadata-only standby, NFS/EFS-only concept). Per
    the user, neither blocks SDP 2026.1 and the fix belongs in the BSW-43
    project, not before SDP 2026.1 ships -- tracked here only so it isn't
    forgotten.

17. **Doc/skill gap reflection**, per the user's direct question: two
    ideas worth a future session -- (a) a Gen6->Gen7 naming-migration
    checklist (canonical old->new hostname/ServerID mappings + a standard
    sweep incantation), since the same class of staleness was
    independently rediscovered four separate times today; (b) a one-line
    symlink-log callout for the `bsw-qa-build-run` skill (`sudo cat`/`cp`
    on a symlink like `/tmp/run_all_tests.log` can misleadingly report
    "Permission denied" -- read the resolved target instead). Full detail
    in the Gen7 log; not built tonight, just captured.

18. **New tracking-only item (task #36)**: `p4bsw` runs on several Gen7
    fleet hosts but is only useful on `p4c-bos-01` -- not harmful, just a
    general Gen7 environment-setup issue (not specific to this project). To
    be tracked as its own BSW job with `CommitRelease: Gen7`, not fixed via
    this task list. Full detail in the Gen7 log.

## Wrap-Up

**Task 2 (prepare SDP-QA-Gen7) reached a major milestone today: the full
`lab qa_build` pipeline now passes 100% clean end-to-end**, independently
confirmed by both the agent's and the user's own manual run. All root
causes found since yesterday (A/B/C/D, the `earl` password-expiry bug, the
missing insitu credential files, the insitu client naming/binding mismatch,
the legacy `/mnt/p4depots/sdp` relic, and the entire `helix-0N`
stale-hostname family) are fixed and verified live. Also closed out two
small pending tasks (#28, #34) and captured two new lower-priority items for
later: task #35 (BSW-43 spillover, tracking only) and a pair of doc/skill
improvement ideas. Remaining open/deferred: tasks #23/#24/#29/#35/#36, and the
doc/skill ideas from item 17. Good stopping point for the day.
# Change User Description Committed
#1 33248 Claude (AI Agent by Anthropic) Session log for 2026-08-21: lab qa_build reached 100% clean, mirroring Gen7 session log.