Skip to content

[Task]: Live surfaces and one relevance oracle still carry the pre-transfer repository address #4753

Description

@DJC1412

Task ID or area

area: repository identity after the organization migration (huangruiteng/loopxloopx-project/loopx)

Technical direction

Core control-plane hardening; build/packaging and public-docs hygiene

Intent

The transfer moved the canonical address, and most of the tree followed: .github/workflows/*, README.md / README.zh-CN.md, the Tauri desktop config, the hosted site, scripts/install-from-github.sh (repo="${LOOPX_REPO:-loopx-project/loopx}") and self_update.DEFAULT_UPDATE_REPO all name loopx-project/loopx already. Measured on current main, three things did not follow, and one of them is a behavior bug rather than a stale link.

Goal and acceptance gap

  1. Live product surfaces still publish the pre-transfer address — measured here, git grep on main:
    • loopx/cli_commands/first_run_report.py:18FIRST_RUN_ISSUE_URL is the "file your first-run report" link handed to every new install;
    • loopx/agent_onboarding.py:245source_repository in the onboarding projection;
    • loopx/capabilities/manager_runtime/machine_profile.py:57 and loopx/capabilities/steward_executor/machine_defaults.py:148 — the documentation.url each machine-configuration namespace projects to CLI and Dashboard;
    • loopx/capabilities/value_connectors/planner.py:274,289 — the two monitored target_url values (intake issue and discussion);
    • packages/loopx-community-discussion/README.md and examples/request.json, packages/loopx-repo-health/examples/request.json, packages/dsh-loopx-plugin/package.json — copied-by-users command examples and package metadata.
      GitHub redirects keep the old addresses resolving, which is exactly why nothing fails loudly.
  2. loopx-community-discussion mis-classifies its own project. normalize.STRONG_TERMS contains huangruiteng and github.com/huangruiteng/loopx, and classify_relevance returns strong only on those. A post-transfer mention of github.com/loopx-project/loopx matches no strong term, so the provider downgrades LoopX's own canonical pages to weak — a relevance-oracle regression introduced by the move, not a cosmetic one.
  3. Nothing prevents the residue from growing back. No check relates a tracked file to the canonical repository address, so the next file written can carry either form.

Proposed scope

One cohesive slice, all of it inside live surfaces:

  • repoint the sites in (1) to loopx-project/loopx;
  • add the post-transfer owner and repo URL to STRONG_TERMS while keeping the pre-transfer pair as historical aliases, so archived pages and old release notes still classify strong, and pin both with a smoke case;
  • add a repository-hygiene check that fails when a live surface (loopx/**, scripts/**, .github/workflows/**, packages/**/src/**, package manifests) carries the pre-transfer address, and that requires the disambiguation list to cover both forms.

Deliberately excluded, so this stays reviewable:

  • 279 blob/main / tree/main document links and 30 bare identity mentions under docs/**, docs/book/** and the hosted blog HTML. Those are a mechanical sweep with their own diff-noise risk, and dated records (release notes, blog posts, RFC citations, packages/loopx-codex-provider-routing/RUNBOOK.md PR tables — 431 /pull/N, /issues/N, /commit/sha, /releases/download/tag citations measured on main) should keep the address the event happened under.
  • packages/dsh-loopx-plugin's data/plugins/huangruiteng__loopx--packages-dsh-loopx-plugin.yml install filename: that string is derived identity in already-installed state, so changing it needs a migration decision rather than a rename. Flagging, not touching.

Intended base branch

main.

Relevant files or commands

  • loopx/cli_commands/first_run_report.py, loopx/agent_onboarding.py, loopx/capabilities/{manager_runtime/machine_profile,steward_executor/machine_defaults,value_connectors/planner}.py
  • packages/loopx-community-discussion/src/loopx_community_discussion/normalize.py + smoke/community_discussion_smoke.py + README.md + examples/request.json
  • packages/loopx-repo-health/examples/request.json, packages/dsh-loopx-plugin/package.json
  • examples/repository-hygiene-smoke.py

Validation plan

  • python3 examples/repository-hygiene-smoke.py green, and a mutation case: re-adding the pre-transfer URL under loopx/ fails it.
  • python3 packages/loopx-community-discussion/smoke/community_discussion_smoke.py green offline, with the new case asserting a loopx-project/loopx mention classifies strong and a looped-only title still classifies noise.
  • Focused pytest for the touched capability surfaces, plus loopx check --scan-path over every changed path.

Public/private boundary

  • This issue does not include private benchmark traces, verifier output, credentials, internal document links, raw agent sessions, or local runtime state.
  • I will not run or duplicate maintainer-owned benchmark cases unless a maintainer explicitly splits out a public task.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions