Skip to content

chore: de-privatize for public release (stacked on #24)#25

Closed
m-szymanska wants to merge 9 commits into
agent/aicx-search-mcp-closurefrom
chore/deprivatize
Closed

chore: de-privatize for public release (stacked on #24)#25
m-szymanska wants to merge 9 commits into
agent/aicx-search-mcp-closurefrom
chore/deprivatize

Conversation

@m-szymanska

Copy link
Copy Markdown
Contributor

Pre-public-release de-privatization (stacked on #24)

Context-leak scrub (skill: vc-deprivatize). Stacked on agent/aicx-search-mcp-closure (PR #24) because the de-priv work was built on top of it. Retarget to develop once #24 merges.

Commits on top of #24

  • 3a9224e chore(deprivatize): generalize founder-name business logic
  • 1647ac3 chore(deprivatize): remove camelCase brand per naming convention
  • 8e1e969 chore(deprivatize): genericize internal infra references
  • 34e5eac chore(deprivatize): remove internal bug-tracker/bugfix doc cluster
  • fa38519 chore(deprivatize): replace personal contact email with brand email
  • 1ed58af chore(deprivatize): remove internal/stale docs
  • c1c2cbf chore(deprivatize): collapse personal names/credits to vetcoders
  • 1ff00f4 chore(deprivatize): scrub absolute home paths to neutral placeholders
  • ef5aa96 chore: preserve in-progress AICX problem-log tooling

135 files changed, 837 insertions(+), 5346 deletions(-)

Notes

  • Includes one non-scrub commit (preserve in-progress problem-log tooling) that came with the branch.
  • needs_decision: codename/context-dependent terms left for maintainer (renaming touches behaviour).

Gates

vc-deprivatize verify exit 0. Local green: cargo fmt --all --check, clippy -p aicx --all-targets -D warnings, cargo test --locked -p aicx --all-targets. Repo CI runs on this PR.

Do not merge automatically — depends on #24.

Generated with Claude Code

m-szymanska and others added 9 commits June 28, 2026 17:59
Carries operator WIP (AGENTS.md problem-log section + helper script) onto the
deprivatize branch so the de-privatization scrub commits stay isolated. The
home path and AI_notes references in this WIP are scrubbed/flagged in the
following commits.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace real/non-neutral OS usernames in paths with neutral placeholders so
the working tree carries no machine-layout fingerprints:
- /Users/silver/AI_notes -> ~/AI_notes (AGENTS.md)
- test-user/other_user/u/y/project/userton -> user/username (tests, docs)
- /Users/Shared literal reworded in security bug-tracker note

Usernames are irrelevant to all affected test assertions (verified); verify
gate now passes with zero unambiguous PII/path leaks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per public-naming convention, remove individual + agent names and personal
contact surfaces; collapse author attribution to the collective brand:
- Cargo.toml authors (6 crates) + LICENSE licensor + README -> Vetcoders,
  drop personal email/domain (void@div0.space)
- 'Created by M&K (c)2026 VetCoders' credit lines -> 'vetcoders (c)2026'
  (.semgrepignore, aicx_mcp.rs, redact.rs header, archive skill docs)
- founder bios (archive/skills README+HTML, docs showcase) -> vetcoders line,
  drop personal URLs (div0.space, github/Gitlaudiusz)
- operator github handle m-szymanska -> example-org in path-filter tests,
  store doc comment, intents fixture, retrieval-eval query
- audit-author names in code comments dropped (Klaudiusz)
- internal-doc prose names (Maciej) -> vetcoders

Lib (793) + parser + touched integration tests green; org rename uses a
non-colliding placeholder to preserve contrast assertions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Delete deterministic doc-removal candidates that should not ship in a public
repo:
- demo/sessions/pivot-chwila.md — real operator session transcript (too
  realistic; reconstructs a private work session)
- docs/BACKLOG.md — internal append-only TODO/backlog
- reports/NOISE_FILTER_v0.6.3.md — internal rollout report (branches/SHAs)

No code/test/build references these; remaining inbound links are confined to
other internal dev docs (BUGFIXES.md, bug-tracker-pass-2/3) which are
themselves flagged for operator-side removal as a set.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
void@div0.space -> hello@vetcoders.io in LICENSE, parser LICENSE, SECURITY.md
(personal contact surface; the brand security/contact email is public).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Delete heavy internal planning/audit docs that should not ship publicly and
that held the dangling links to the already-removed BACKLOG.md / NOISE_FILTER:
- docs/BUGFIXES.md
- docs/bug-tracker-aicx-followup-pass-2.md
- docs/bug-tracker-aicx-followup-pass-3.md

These contained ~/AI_notes and ~/.vibecrafted paths, PR/SHA detail, and domain
knowledge. Only external inbound ref (docs/scope-overflow.md) reworded to drop
the BUGFIXES.md pointer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- memex (internal memory service) -> rust-memex (public crate) in docs,
  code comments, CHANGELOG history, and two low-risk fixtures/UI strings;
  archive/skills + removed-API guard needles left as needs_decision
- tailscale: feature kept (public product), but scrub real machine
  fingerprints — sztudio CGNAT IP 100.75.30.90 -> 100.64.0.1 and tailnet
  host vetcoders-mbp.tail2c9f.ts.net -> host.example.ts.net (tests assert
  range/suffix, not the specific values)
- AI_notes private notes dir -> ~/.aicx in problem-log path (AGENTS.md +
  tools/aicx_problem_log.sh)

rmcp/lancedb untouched (public crates, allowlisted). Lib (793) +
dashboard_filter tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Eliminate camelCase brand tokens (the brand is lowercase by default,
Capital-first only as a proper noun):
- VetCoders -> Vetcoders, CodeScribe -> Codescribe, ScreenScribe -> Screenscribe
  (uniform case-sensitive token replace -> identifiers + labels + fixtures stay
  self-consistent; compiles clean)
- git/GitHub URLs lowercased to github.com/vetcoders/... per URL rule
- org-from-URL test assertions updated to the now-lowercase org (store/tests)
- archive/skills/** intentionally untouched (deferred as one needs_decision
  unit); CODESCRIBE_* env vars, com.vetcoders.codescribe, codescribe CLI/path
  left as-is (functional, already lowercase)

Full test suite green (793 lib + all integration/parser).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove hardcoded founder names from shipped runtime matching (real leak in
product logic, operator-approved generalization):
- rank.rs: boilerplate footer/search matchers 'created by m&k' -> brand-neutral
  'created by vetcoders'; drop 'monika' from operator speaker-hint set (generic
  'user|human|operator' already covers it)
- codescribe.rs: parse_markdown_speaker_heading no longer hardcodes maciej/monika
  — accepts the 'speaker' prefix or any colon-terminated '### <Name>:' heading
- coupled fixtures (codescribe_ingest, sources/tests, operator_md_ingest)
  retargeted to neutral speakers (Operator/Engineer/Alex) + matching assertions

Full lib (793) + codescribe_ingest + operator_md_ingest tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request performs a comprehensive casing and brand normalization across the repository, renaming 'VetCoders' to 'Vetcoders', 'CodeScribe' to 'Codescribe', and 'memex' to 'rust-memex' in documentation, comments, and tests. It also removes several legacy backlog files, updates speaker parsing logic to be less hardcoded, and introduces a new utility script tools/aicx_problem_log.sh for logging runtime issues. The review feedback highlights two key issues: a potential test flakiness risk in sanitize.rs if the active user's name is 'user', and a terminal hang issue in the new problem log script when run interactively without redirected input.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

#[test]
fn test_macos_other_user_path_rejected() {
let path = Path::new("/Users/other_user/Documents/secret.txt");
let path = Path::new("/Users/user/Documents/secret.txt");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In test_macos_other_user_path_rejected, changing the path from /Users/other_user/... to /Users/user/... introduces a risk of test failure. If the test is executed in an environment where the current username is user (which is a very common default username in many development and CI environments), is_under_allowed_base will resolve /Users/user as the active user's home directory and allow it. This will cause the assertion to fail, as it expects the path to be rejected. To ensure the test reliably asserts that other users' paths are rejected, use a username that is guaranteed to be different from the active user (e.g., other_user or some_other_user).

Suggested change
let path = Path::new("/Users/user/Documents/secret.txt");
let path = Path::new("/Users/other_user/Documents/secret.txt");

Comment thread tools/aicx_problem_log.sh
local timestamp
local details
timestamp="$(date -u '+%Y-%m-%d %H:%M UTC')"
details="$(cat || true)"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

When running the script interactively in a terminal without redirecting standard input, details='$(cat || true)' will block indefinitely waiting for input. To prevent this usability issue, you can check if standard input is connected to a terminal (TTY) using [[ -t 0 ]] and default to empty details if so.

Suggested change
details="$(cat || true)"
if [[ -t 0 ]]; then
details=""
else
details="$(cat || true)"
fi

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3a9224e029

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/intents.rs
Comment on lines +727 to +728
"# Vetcoders Global Agent Charter",
"# Vetcoders Agent Operating Guide",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve legacy charter headings

For stores built before this rebrand, reingested AGENTS/CLAUDE blocks still start with # VetCoders Agent Operating Guide or # VetCoders Global Agent Charter. Replacing those markers instead of accepting both means is_reingested_charter_block no longer drops the whole historical charter block, so existing corpora can start surfacing agent-operating boilerplate as extracted intents until every stored chunk is rewritten. Keep the old headings alongside the new public ones.

Useful? React with 👍 / 👎.

"add",
"origin",
"git@github.com:VetCoders/ai-contexters.git",
"git@github.com:vetcoders/ai-contexters.git",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align lowercased remotes with assertions

With this lowercase origin, infer_tiered_identity_from_path reads git remote get-url origin before falling back to the known-layout path, and repo_identity_from_remote_path preserves the remote's casing. This test therefore produces vetcoders/ai-contexters while the assertion below still expects Vetcoders/...; the same lowercase-origin pattern later in this module will trip those assertions as well.

Useful? React with 👍 / 👎.

Comment on lines +539 to +540
home.join("hosted").join("Vetcoders").join(repo),
home.join("vc-workspace").join("Vetcoders").join(repo),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep old checkout casing in cwd fallback

When project_hint is a bare repo name, such as a single -p aicx fallback or a content-inferred Codescribe transcript, this branch now probes only ~/hosted/Vetcoders/<repo> and ~/vc-workspace/Vetcoders/<repo>. Existing pre-release checkouts under ~/hosted/VetCoders/<repo> stop resolving on case-sensitive filesystems; then extract_codescribe_from_home drops filtered transcript entries because they have no matching cwd. Probe both casings or discover the owner directory instead.

Useful? React with 👍 / 👎.

Comment thread src/main.rs

/// Artifact organization bucket
#[arg(long, default_value = "VetCoders")]
#[arg(long, default_value = "Vetcoders")]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep reports default compatible with existing artifacts

Changing the default org makes bare aicx reports look under ~/.vibecrafted/artifacts/Vetcoders/<repo>, but existing artifact trees created before this rebrand are under VetCoders/<repo>. Because run_reports_extractor passes this value directly into build_reports_explorer, those users now get Artifacts repo not found unless they know to pass --org VetCoders. Add a fallback/alias or keep the old default for compatibility.

Useful? React with 👍 / 👎.

Comment thread SECURITY.md

- Use [GitHub Security Advisories](https://github.com/VetCoders/ai-contexters/security/advisories/new) to submit a private report.
- Alternatively, contact us directly at **void@div0.space**.
- Use [GitHub Security Advisories](https://github.com/vetcoders/ai-contexters/security/advisories/new) to submit a private report.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Point advisories at this repository

This security advisory link now points to vetcoders/ai-contexters, while the package metadata still advertises https://github.com/Loctree/aicx as the repository/homepage. In the public-release context, reporters following SECURITY.md may land on the wrong or nonexistent advisory form for this project; update the URL to the actual public repository that receives aicx advisories.

Useful? React with 👍 / 👎.

@Szowesgad

Copy link
Copy Markdown
Contributor

Superseded by #26 (merged): the entire chore/deprivatize branch (stacked on #24) was merged into fix/aicx-signals-revalidation (merge commit 4b164ef) and landed in develop via #26. Verified by containment: git log origin/chore/deprivatize ^fix/aicx-signals-revalidation is empty — nothing from this PR is missing.

@Szowesgad Szowesgad closed this Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants