Skip to content

Repository-wide host-identifier leakage: absolute user-profile paths, account and host names in tracked files #602

Description

@drmoisan

Summary

Tracked files across this repository embed developer-machine identifiers: absolute user-profile paths, the bare account name, and the bare host name. The standing convention is that no file may embed an absolute host path or a host identifier; portable placeholders (<repo-root>, <user-profile>, <user>, <host>) are used instead.

Feature winformspumphost-suite-determinism-511 sanitized its own artifacts and recorded the convention, but deliberately scoped its change to its own feature folder so as not to break its three-file scope-lock acceptance criterion. This issue tracks the remainder.

Measured scope

Counted over git ls-files on branch bug/winformspumphost-suite-determinism-511-exec at 2026-08-24, using patterns derived from the environment so the identifiers themselves are not reproduced here:

Condition Tracked files
Contains an absolute user-profile path 45
Contains the bare account name 991
Contains the bare host name 146
Tracked files scanned 9,846

Both .claude/settings.json and .vscode/settings.json are affected.

The bulk of the account-name occurrences come from one mechanical source: vstest.console.exe names its TRX files <account>_<HOST>_<timestamp>.trx by default, and evidence records across many feature folders cite those filenames verbatim. That is the trap worth fixing at the source, not only in the existing text.

Why it matters

  • A repository-relative artifact that hard-codes one developer's profile path is not reproducible by anyone else, and silently documents a machine rather than a procedure.
  • Account and host names are gratuitous identifying information in a repository that may be shared or made public.
  • Because the default TRX naming reintroduces the prefix on every run, text-only cleanup regresses. The durable fix controls /ResultsDirectory: and LogFileName=, or renames before citing.

Proposed direction

  1. Replace absolute user-profile paths with <repo-root> / <user-profile> placeholders, applied longest-first so the substitution is idempotent.
  2. Replace bare account and host names with <user> / <host>.
  3. Fix .claude/settings.json and .vscode/settings.json first; they are configuration rather than historical evidence.
  4. Prevent recurrence: have test-invocation scripts set an explicit /ResultsDirectory: and LogFileName= so vstest does not emit the <account>_<HOST>_ prefix at all.
  5. Treat archived feature folders as lower priority than live configuration and active features.

Note that .claude/** is push-down-owned from the drm-copilot upstream (roughly 166 files overwritten with no templating), so any .claude/ correction must be made upstream or it will be reverted by the next push-down.

Acceptance Criteria

  • No tracked file contains an absolute user-profile path.
  • No tracked file contains the bare account name or the bare host name.
  • .claude/settings.json and .vscode/settings.json use portable placeholders or environment references.
  • Test-invocation scripts set an explicit results directory and log file name, so a fresh run does not reintroduce the <account>_<HOST>_ TRX prefix.
  • The .claude/ portion of the change is made in the upstream drm-copilot source, not only in this repository's copy.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions