Rename 96bulls to sessions-pipeline; move setup skill to .agents/skills
Summary
Renames the user-facing "96bulls" name to sessions-pipeline (product name "Sessions Pipeline") across the charts, CI, registry, docs and handoff package. Also:
- moves the setup skill to
.agents/skills/and makes it conform to the Agent Skills spec; - adds the architecture and request-flow diagrams for the review package.
Charts and versions
| chart | before | after |
|---|---|---|
charts/96bulls -> charts/sessions-pipeline | 96bulls 0.5.5 (never released; last release 0.5.4) | sessions-pipeline 0.6.0 |
charts/96bulls-worker -> charts/sessions-pipeline-worker | 96bulls-worker 0.5.3 | sessions-pipeline-worker 0.6.0 |
| alleyoop (name kept) | 0.3.7 | 0.3.8 (part-of label, description and NOTES text changed) |
| agent-relay | 0.2.1 | 0.3.0, a breaking values change: umbrella key 96bulls: -> sessions-pipeline: (components.sessionsPipeline is unchanged) |
| relaycast | 0.3.0 | 0.3.1 (README text only) |
The renamed charts continue the 0.x line at 0.6.0 instead of restarting at 0.1.0. That keeps them above every published 96bulls version, so nobody mistakes them for older releases.
Upgrade path. An existing 96bulls umbrella release upgrades in place with helm upgrade <release> agentworkforce/sessions-pipeline. Resource names and selectors are unchanged (the subchart alias is still worker); only the helm.sh/chart and part-of labels change. The README section "Upgrading a release of the former 96bulls chart" lists the values to keep: Secret names and the runtime role. A standalone 96bulls-worker release keeps its selectors only with nameOverride: 96bulls-worker.
Chart.lock files were regenerated. Template defines are renamed (96bulls.* -> sessions-pipeline.*, 96bulls-worker.* -> sessions-pipeline-worker.*). Default Secret names, label app.kubernetes.io/part-of, the summary-keys mount path, registry ids (opt.sessions-pipeline.*), CI dirs (ci/sessions-pipeline{,-profiles,-search-worker-role,-umbrella}), the workflows, scripts/ci/charts.sh, the packager include list, THIRD_PARTY_NOTICES and the release records are all renamed. The example runtime role is now sessions_pipeline_runtime, and the docs install the umbrella as release sessions-pipeline.
Default fullnames. No chart in this repo set a bulls96 nameOverride; that came from the upstream Alchemy stack that applied the live proof. Here, names are <release>-<chart>:
helm install sessions-pipeline charts/sessions-pipelinegivessessions-pipeline-worker-*andsessions-pipeline-alleyoop-*.helm install sessions-pipeline-worker charts/sessions-pipeline-workergivessessions-pipeline-worker-*.- Under the agent-relay umbrella, names stay
<release>-worker-*and<release>-alleyoop-*. The subchart aliasworkeris unchanged, so umbrella renders are unchanged apart from the chart labels. I checked this by rendering every umbrella, worker and alleyoop CI values file before and after, normalizing the rename, and diffing.
The upstream repo AgentWorkforce/96BullSessions is now AgentWorkforce/sessions-pipeline on GitHub (gh repo view confirms). So home: URLs, upstream citations and the CI checkout now use the new name.
Setup skill (Agent Skills standard)
- Moved from
.cursor/skills/setting-up-self-hosted-agent-relay-gcp/to.agents/skills/setting-up-self-hosted-agent-relay-gcp/, with no copy left in.cursor. - Frontmatter matches the prospect package:
nameequals the directory, pluslicense: Apache-2.0,compatibility, andmetadata(chart agent-relay, version 0.3.0, standard agentskills.io). - SKILL.md is now 404 lines. Restore and public-verification detail moved to
references/, and the restore overlay toassets/restore-overlay.yaml(checked to render no Jobs). Content is updated for the current chart layout: Relayflows opt-in, and durable-actors and Relayfile as preview with the actors and files hosts. skills-ref validate(agentskills/agentskills@69ef37e, run on sf-frame):Valid skill. The newagent-skilllint job runs it at that pinned commit, plus test-layout.sh and a no-.cursorcheck.- The packager now requires the new skill files and the diagrams.
ci/customer-handoff/smoke.shchecks that every tracked skill file ships byte-identical with its exec bit, that no.cursor/ships, and that all six diagram files are present.
Diagrams
docs/diagrams/agent-relay-architecture.{mmd,svg,png}builds on the prospect package's diagram with the same structure. Changes:- The telemetry label overlap is fixed.
- AUTH and Sessions Pipeline are drawn inside the one release namespace, because the umbrella deploys everything into it.
- Added: the actors and files hosts, the edge denies, ingest to GCS, the gVisor sandbox namespace, and Workload Identity to Cloud SQL and GCS.
- Preview and optional parts have dashed borders.
docs/diagrams/agent-relay-request-flow.{mmd,svg,png}is new: Desktop sign-in and device approval, session upload, Dashboard read, and agent-to-agent messaging over Relaycast.- Both were rendered with mermaid-cli 11.4.2 (Docker on sf-frame),
-b white -s 2 -w 1800, and the PNGs were inspected.self-hosted-architecture.{svg,png}were re-rendered from the renamed source. - They are linked from
docs/self-hosted-reference-architecture.md(new Diagrams section),docs/handoff/HANDOFF.mdanddocs/diagrams/self-hosted-architecture.md.
Kept "96bulls" / "bulls96" references (deliberate)
git grep -i -E "96bulls|bulls96" now finds only these:
- Container image repositories.
ghcr.io/agentworkforce/96bulls-services, the ECR.../96bulls-services,agentworkforce/96bulls-services(chart defaults, profiles, customer-images.yaml, CI kind tags) and theregistry.example.com/acme/96bulls-servicesfixture. Renaming a published image breaks pulls and digest pins. - The GCP proof project id
agentrelay-96bulls-soc2-2610and the bucket, service-account and Artifact Registry names derived from it, plus the packager's split-string denylist for it. These are real cloud resources. - Upstream stack resource names in the stack-shape CI values.
charts/sessions-pipeline/ci/aws-cnpg-values.yamlandgcp-cloudsql-values.yamlkeep the Secrets96bulls-runtime/96bulls-gcpand the bucket96bulls-ci, which the upstream AWS/GCP stacks provision. The registry rows match. - Live proof state applied outside Helm.
runtimeRole: bulls96_runtimeinvalues-gcp-proof.yaml/values-gcp-proof-live.yaml(the Cloud SQL role that exists there). The "96bulls namespace" comment invalues-gcp-proof-durable-actors.yaml. Inscripts/selfhost/e2e-gcp-proof.sh: the default--sessions-namespace 96bulls,deploy/bulls96-worker-*, thebulls96-alleyoop-ingestprobe comment, and the deprecated--skip-96bullsalias. - The services' own contract. The migration ledger
sessions.__96bulls_migrations, the role markersessions.__96bulls_role_validation, and the alleyoop issuer defaulthttps://96bulls.local, which matches the services' built-inAUTH_ISSUERdefault. Env var names (HOOPDB_*,LOCKER_*, ...) are unchanged. - The GitHub Actions secret
BULLS96_READ_TOKEN. Renaming it needs a repo-settings change first, so it can follow in a later PR. - Released history and upgrade notes.
- The shipped
compatibility.releasesrows96bulls-0.5.4/0.5.2/0.5.1. The registry checks these against the real git tags96bulls-*/96bulls-worker-*. Their localsourcesnow point at the tag commits. - The rename notes in the registry, the agent-relay 0.3.0 note and THIRD_PARTY_NOTICES ("formerly
AgentWorkforce/96BullSessions"). - The README upgrade section and the agent-relay 0.3.0 note, which name the old chart, Secret and role so operators can migrate.
- The generated
docs/self-hosted-requirements.mdrows rendered from those.
- The shipped
Test plan
Run locally on this branch:
-
scripts/ci/charts.sh static -
ci/agent-relay/render.sh -
scripts/ci/deps.sh -
ci/sessions-pipeline-search-worker-role/render.sh -
ci/customer-handoff/smoke.sh -
ci/sessions-pipeline-profiles/matrix.sh static -
node ci/self-hosted-requirements/registry.mjs check, andrenderwith no diff -
ci/self-hosted-requirements/test.sh -
python3 ci/customer-release-gate/test.py -
validate-customer-release.py --consistency(evidenceimageManifestSha256updated for the customer-images.yaml rename) -
scripts/ci/version-bump.sh origin/main - skill
test-layout.sh - Before/after render diff of every CI values file: only versions, chart labels and content-hashed Job names change.
-
skills-ref validatereportsValid skill - restore overlay renders no Job or CronJob
-
charts.sh staticwith an empty Helm repo config (reproduces the clean-runner failure fixed in a61c9a2) - kind jobs (
charts.sh dryrun, matrix dryrun, search-worker-role kind) run in CI.
š¤ Generated with Claude Code