Skip to content

migration: rename GitHub organization handle to bytefolk #20

Closed

Description

@PeterGuy326

Outcome

Rename the GitHub organization handle from fullstack-ai-infra to bytefolk, making https://github.com/bytefolk the canonical ByteFolk home without breaking runtime downloads, CI, published images, or active documentation.

Frozen decisions

  • Target handle: bytefolk (accepted by the GitHub Rename UI on 2026-09-01).
  • Scope: GitHub organization URLs, repository coordinates, API paths, raw-content URLs, repository metadata, GHCR namespace, and local remotes.
  • Compatibility scope retained for this migration: npm packages remain under @fullstack-ai-infra/*.
  • Stable identifiers remain unchanged unless migrated separately: desktop app IDs, MCP IDs, schema identities, cache directories, npm tarball names, and legal copyright text.
  • Do not create an empty organization at the old handle; GitHub does not support it as an alias and it can invalidate repository redirects.

Baseline

  • Owner executing migration: PeterGuy326 (active, role admin).
  • Organization: 11 repositories (7 public, 4 private), all on main, none archived, no GitHub Pages sites.
  • Actions: 18 workflow files; no uses: fullstack-ai-infra/... references.
  • Integrations: 0 repository webhooks and 0 GitHub App installations; organization hooks and self-hosted runners require post-change UI verification because current token cannot enumerate them.
  • Local tracked references: 8 repositories, 190 files, 643 matching lines.
  • Published container: ghcr.io/fullstack-ai-infra/digital-employee has 11 public tags; 0.6.0 resolves to sha256:37cad26dd91273a2b546332d1c14398b783b31fae442cffe8e67f36622d5667a.

Migration sequence

  • Prepare isolated per-repository PRs for GitHub URL/API/repository-coordinate changes.
  • Update runtime-critical references: org-workbench checkout source, mem release download source, digital-employee governance default repository, raw-content URLs, and package metadata.
  • Keep npm scope and stable application/registry identifiers unchanged.
  • Freeze a short cutover window and record pre-change readbacks.
  • Rename the organization in GitHub Settings from fullstack-ai-infra to bytefolk.
  • Update local remotes and merge the prepared PRs against the renamed repositories.
  • Verify github.com/bytefolk, all 11 repositories, API ownership, clone/fetch/push redirects, and required CI.
  • Verify GHCR migration and publish/pull using ghcr.io/bytefolk/digital-employee; document the old pull-path behavior.
  • Verify organization hooks, runners, Packages settings, profile/avatar, and repository homepage metadata.
  • Record final commit SHAs, CI run URLs, new organization URL, and follow-up debt.

Acceptance criteria

  • https://github.com/bytefolk is the live organization profile and API login is bytefolk.
  • All 11 repositories are present under the new organization handle.
  • Runtime-critical references contain no old GitHub owner coordinate.
  • Required checks pass on every migration PR; no branch protection or review policy is bypassed.
  • ghcr.io/bytefolk/digital-employee:0.6.0 is pullable and digest behavior is recorded.
  • npm @fullstack-ai-infra/* consumers continue to work unchanged.
  • Post-change verification and rollback limitations are recorded in this issue.

GitHub behavior relied on

GitHub creates web/Git redirects for existing repositories, but not for the old organization profile. Actions/reusable-workflow references and package consumer paths must be updated explicitly. The old handle becomes available for others and is not a reliable rollback mechanism.

Official reference: https://docs.github.com/en/organizations/managing-organization-settings/renaming-an-organization

Activity

  1. added
    type:epicTracks a multi-issue product outcome
    status:readyScope and acceptance criteria are ready for implementation
    priority:p0Required for the next shared product proof
    on Sep 1, 2026
  2. PeterGuy326 commented on Sep 1, 2026

    @PeterGuy326
    ContributorAuthor

    Prepared migration PRs

    The cutover set is ready. All repository changes remain unmerged so the new URLs and GHCR path do not become canonical before the organization rename.

    Public repositories:

    The private platform migration PR is also open and its Node 20/22/24, coverage/audit, and PostgreSQL checks are green. Private repository details are intentionally omitted from this public issue.

    Independent technical review caught commit identity metadata on three branches before merge. Those commits were rewritten with the verified GitHub noreply identity using force-with-lease; tree and diff hashes were unchanged, and the replacement CI runs are green.

    Current gate: all required CI is green; independent repository reviews are still pending. Do not rename or merge the new canonical URLs until at least one independent approval is recorded for each protected migration PR.

    Cutover order after approvals:

    1. Read back all PR head SHAs and checks.
    2. Rename the organization to bytefolk in Settings.
    3. Verify organization/repository/API redirects and GHCR namespace.
    4. Merge the prepared PRs without bypassing protection.
    5. Update local remotes and the quickstart repository homepage.
    6. Run post-change verification and record evidence here.
  3. PeterGuy326 commented on Sep 1, 2026

    @PeterGuy326
    ContributorAuthor

    Preflight correction — cutover remains HOLD

    Independent diff review found that digital-employee PR #243 mechanically changed seven JSON Schema $id values and their downstream identity references. Those values are frozen compatibility identifiers under this issue and must not follow the GitHub organization handle.

    PR #243 is therefore HOLD even though its CI is green. A targeted correction is in progress to restore the schema identities, keep real GitHub/GHCR owner coordinates migrated, and replace the broad zero-residual check with an exact allowlist. The PR evidence will also be corrected and exact-head CI rerun.

    The other seven migration PRs passed independent preflight. No organization rename or migration PR merge will occur until #243 passes re-review and the independent repository approval gate is satisfied.

  4. PeterGuy326 commented on Sep 1, 2026

    @PeterGuy326
    ContributorAuthor

    Preflight restored

    digital-employee PR #243 has been corrected and independently re-reviewed at exact head 92de4f23be534dddc336859be41a14a7e97f00b2.

    • All 9 JSON Schema $id values match main exactly.
    • The 16 retained old-owner lines are confined to the 15 frozen schema-identity files; allowlist extras are zero.
    • Outside that allowlist, old GitHub/API/GHCR/bare owner coordinates are zero.
    • npm scope, domain, legal, and tarball identities remain unchanged.
    • [Unreleased] now records the ByteFolk GitHub/GHCR migration and preserved compatibility identities.
    • Exact-head CI run https://github.com/fullstack-ai-infra/digital-employee/actions/runs/33469610174 completed successfully with all 12 jobs green.

    Independent technical preflight is now PASS for all eight migration PRs. The remaining cutover gate is human repository review/approval; no rename or merge has been performed.

  5. PeterGuy326 commented on Sep 1, 2026

    @PeterGuy326
    ContributorAuthor

    Cutover verification ledger — ACCEPT

    schemaVersion: verification-ledger.v1
    canonicalIssue: https://github.com/bytefolk/.github/issues/20
    cutoverTarget: bytefolk
    cutoverObservedAt: 2026-09-01T05:48:34Z
    recordedBy: PeterGuy326
    securityGate: PASS
    compatibilityGate: PASS_WITH_KNOWN_LIMITS
    productReview: ACCEPT

    The product owner explicitly authorized the final rename. GitHub reported Your organization has been renamed, and live API/browser readback now returns login=bytefolk, display name ByteFolk.

    Repository and merge continuity

    • 11 repositories preserved: 7 public + 4 private, all defaulting to main, none archived.
    • Seven public migration PRs and the separately tracked private migration PR were squash-merged without admin bypass.
    • Totoro (@Bindy-lbb) approved every candidate exact head before merge.
    • Each squash merge SHA is the current corresponding main head.
    Repository / PR Approved head Squash merge Post-merge CI
    .github #21 1f1d9fcc667ad35f7983b930cda52b0584006795 b6b9c8be284c250886953cf092174dd0cb96b402 SUCCESS
    org-workbench #103 8d0a0fe2733b61ac2c39397e61189acaa87905d1 4d20c6ae82851488f9e6f8231ffbdae6077d58cd SUCCESS
    digital-employee #243 92de4f23be534dddc336859be41a14a7e97f00b2 f220a5588d4eabd5014d2e6d4ec723233b421fbe SUCCESS
    mem #142 f50be860071c70f70d37d6a8102188af602a1efe 10d4bf7a48fd5ab0ce6fc67caa407a717f81830e CI + acceptance SUCCESS
    digital-employee-quickstart #17 d0290fafc18af6cded85d7679ee5c2ba5692d2ba 0d3a6d30ff7a1f3ffb58aebef62dd17d323a387f quickstart + showcase SUCCESS
    doc #33 902bfd4646a2f47015976b6ab1e0025f5bae3262 ce8a24667009cff02c492ab8a6796b864f86b19b SUCCESS
    design-system #16 c54de67a4607dab4e7d075d53734f3ea66bacf1b 98085d10425673f122baf4390ec23c0df75e14c0 SUCCESS

    Private repository names, PR URLs, and commit details are intentionally omitted from this public ledger. Their continuity, approval, merge containment, and post-merge CI were independently verified.

    External compatibility

    • https://github.com/bytefolk returns 200; the old organization profile returns 404, as expected for an organization rename.
    • Existing public repository web/API/clone paths redirect to the ByteFolk repositories; old and new git ls-remote heads match.
    • New container path is live: ghcr.io/bytefolk/digital-employee:0.6.0.
    • Container digest matches pre-cutover exactly: sha256:37cad26dd91273a2b546332d1c14398b783b31fae442cffe8e67f36622d5667a.
    • All 11 public GHCR tags are present.
    • Old GHCR pull path returns 403 and is not compatible; consumers must use the ByteFolk path.
    • npm compatibility remains unchanged: both @fullstack-ai-infra/digital-employee and @fullstack-ai-infra/digital-employee-core resolve to 0.6.0.

    Local and metadata cutover

    • Eight local canonical remotes now point to https://github.com/bytefolk/...; old canonical owner remotes are zero. Personal fork remotes were preserved.
    • Quickstart homepage now resolves to https://github.com/bytefolk/digital-employee.
    • Existing tracked/untracked worktree state was preserved.

    Known limits

    • Old organization profile links do not redirect.
    • Old GHCR consumer paths do not work.
    • The exact old web URL for this Issue currently returns 404, although the new Issue URL is healthy and the authenticated old REST coordinate resolves canonically.
    • Private package inventory is NOT VERIFIED because the current token lacks read:packages; no scope escalation was performed. Public container manifest and tags were fully verified.

    All material acceptance criteria for the GitHub handle migration are satisfied. Closing as completed.

  6. PeterGuy326 commented on Sep 1, 2026

    @PeterGuy326
    ContributorAuthor

    Post-cutover active metadata cleanup

    Recorded at 2026-09-01T07:27:35Z.

    Active Issue/PR metadata

    Preserved deliberately: npm @fullstack-ai-infra/* identities and npm URLs; stable MCP/schema/application/cache identifiers such as io.github.fullstack-ai-infra/mem-mcp; tarball filenames; LICENSE/NOTICE/legal and closed-history evidence; historical comments; and literal before-state/acceptance patterns in the active cleanup Issues/PRs.

    Open PR final-head audit

    Final net diffs and exact head trees were checked. Nineteen of the 23 open PRs in the frozen audit had no old-owner addition. Four fork PRs retain merge blockers; each received an exact-head comment:

    .github #19 and mem #125 were verified clean in final net diff; their old additions existed only in superseded commit history and were not treated as blockers.

    A final concurrent-object rescan also audited doc #35 at 88a029b7d2a311fcfefbd26860f3519c0a261d06 and org-workbench #108 at ef137da7b72ff2c89fd6a42d4aa24d1681c1c23e; both final net diffs had zero old-owner additions. Current snapshot: 25 open PRs, 21 clean and the same 4 blocked above.

    npm handoff

    • Unique organization-level HOLD issue: [Migration] Move npm packages from @fullstack-ai-infra to @bytefolk #22
    • It inventories current-main source package identities and requires owner verification of @bytefolk scope ownership/availability before dual-publish, consumer migration, deprecation, Trusted Publisher, or rollback implementation.
    • No npm login, publish, deprecate, scope reservation, token, membership, or registry setting was performed.

    Write ledger

    • 37 guarded Issue/PR title/body PATCH operations across 35 unique objects
    • 4 exact-head blocker comments
    • 1 npm HOLD Issue
    • 1 ledger comment creation (this comment)
    • 1 guarded ledger comment update (this readback-complete final snapshot)
    • Total: 44 GitHub writes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:integrationCross-repository integrationpriority:p0Required for the next shared product proofstatus:readyScope and acceptance criteria are ready for implementationtype:epicTracks a multi-issue product outcome

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions