Skip to content

chore: remove remaining private-repo references before public flip (EVA-9938)#4

Merged
diogocabral merged 1 commit into
mainfrom
chore/eva-9938-public-flip-cleanup-pass-2
May 26, 2026
Merged

chore: remove remaining private-repo references before public flip (EVA-9938)#4
diogocabral merged 1 commit into
mainfrom
chore/eva-9938-public-flip-cleanup-pass-2

Conversation

@diogocabral
Copy link
Copy Markdown
Collaborator

Summary

Second pass over the public-flip sensitivity audit on EVA-9938. The first pass (5e0e099) generified personal name references but missed several items that name the private server repo or its internals. This PR finishes the job so the repo is safe to flip public.

  • README.md — dropped the "Related" links to private-repo Rails paths (lib/mcp/tools/*.rb, app/controllers/api/mcp_controller.rb) and the server tool count + version disclosure; cleaned up the remaining "eva-web" name mentions in the audience and auth-flow blurbs.
  • CLAUDE.md — removed the full OauthApplication.create! Ruby snippet (which leaks ActiveRecord schema), replaced it with a server-agnostic OAuth application spec, and unlinked the four private-repo paths (app/services/.../authorization_service.rb, app/models/oauth_application.rb, lib/mcp/auth/authenticator.rb, plus the codename used in the architecture diagram).
  • internal/oauth/pkce.go — comment no longer names the private Rails service file as the source of the S256 length constraint.
  • internal/config/config.go — comment no longer references "OauthApplication rows on Rails consoles".
  • cmd/integration_test.go — fixture email switched from a personal first name (diogo@example.com) to user@example.com; producer and consumer changed together.

No functional changes — comments, docs, and one test fixture rename. The is_internal? gate behavior on the server is unchanged; only how we describe it in this repo's docs changed (now: "internal-user gate").

Test plan

  • make test passes locally (couldn't run from this WSL — no Go in PATH)
  • go vet ./... clean
  • CI: vet, test (-race), golangci-lint, gosec, smoke build all green
  • searchlight --help still works after build
  • grep -rE 'eva-web|OauthApplication|lib/mcp|app/(controllers|services|models)|authorization_service|authenticator|diogo|cabral' --include='*.go' --include='*.md' returns no hits (verified locally — only remaining match is the is_internal JSON field in integration_test.go, which mirrors the server's response contract and is part of the public API)

🤖 Generated with Claude Code

…ic flip

Second pass over the public-flip audit on EVA-9938. The first pass (5e0e099)
generified personal name references in README.md and config.go but missed
several remaining items that name the private server repo or its internals:

- `README.md` "Related" section linked Rails file paths from the server repo
  (`lib/mcp/tools/*.rb`, `app/controllers/api/mcp_controller.rb`) and disclosed
  the server's tool count + version. Section reduced to the two docs that
  actually live in this repo.
- `CLAUDE.md` named the server repo by its internal codename and cited
  several private-repo paths (`app/services/mcp/oauth/authorization_service.rb`,
  `app/models/oauth_application.rb`, `lib/mcp/auth/authenticator.rb`). Also
  embedded a full `OauthApplication.create!` Ruby snippet that leaks the
  ActiveRecord schema. Replaced with a server-agnostic OAuth application spec
  (name, redirect URIs, grant/response types).
- `internal/oauth/pkce.go` comment named a private-repo Rails service file
  as the source of the S256 length constraint — rephrased to just describe
  the server requirement.
- `internal/config/config.go` comment referenced "OauthApplication rows on
  staging and prod Rails consoles" — rephrased to "OAuth applications on
  the server".
- `cmd/integration_test.go` test fixture used a personal first name in a
  placeholder email (`diogo@example.com`) — switched to `user@example.com`.
  Producer and consumer changed together.

No functional changes; comments, doc strings, and one test fixture rename.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@linear
Copy link
Copy Markdown

linear Bot commented May 26, 2026

EVA-9938 Create a Searchlight CLI

Research these articles:

And have Claude to find some similar articles. The idea is that CLI for agent is not the same as a CLI for human. Former prioritizes nested JSON payloads that aren't necessarily easy for humans to understand but are better for agents as they are more information dense. CLI expose their functionality through a --help and assumes an AI will read it, and not a human.

Wrap the functionality that are accessed by our Searchlight MCP, and make them also accessible via CLI. Ideally, as we add more tooling to MCP, we can automatically get the tooling with the Searchlight CLI. So the goal is not to maintain two separate APIs, one for MCP and one for CLI, but to share as much of it as possible.

The only main difference is the CLI needs an authentication scheme, ideally using oauth authentication like our Searchlight MCP

Since searchlight has so much namespaced functionality, it would be good to analyze how https://github.com/googleworkspace/cli did it.

Goal:

> ./searchlight --help

> ./searchlight email +send     ## This follow gws cli convention but i'm not sure it's the best.

the business objective is to provide this to our more sophisticated investors who can probably use Searchlight CLI to more quickly interface with Searchlight data. I suspect just like Linear CLI is way faster than Linear MCP, the same would be the case for Searchlight CLI over Searchlight MCP. Just another option in our toolbox.

FYI kevan anna

😄

Have fun with this.

Review in Linear

@gitvelocity-reviewer
Copy link
Copy Markdown

📊 Code Quality Score: 6/100

16 × 0.4 = 6.4 (rounded to 6)

Category Score Factors
🔭 Scope 5/20 5 files touched, all documentation/comments/strings, no logic changes, cross-cutting but shallow
🏗️ Architecture 1/20 No architectural changes, pure documentation cleanup
⚙️ Implementation 2/20 Trivial string replacements across comments and docs, minor test fixture email update
⚠️ Risk 2/20 Very low risk, all changes are documentation and comments, easily reversible
✅ Quality 6/15 Improves public-facing quality by removing internal implementation leakage, well-structured CLAUDE.md update, minor inconsistency with Linear ticket link remaining in CLAUDE.md
🔒 Perf / Security 0/5 No performance or security considerations

Scored by GitVelocity · How are scores calculated?

@diogocabral diogocabral merged commit 1106c1e into main May 26, 2026
4 checks passed
@gitvelocity-reviewer
Copy link
Copy Markdown

📊 Code Quality Score: 6/100

14 (base) × 0.4 (ESF: Small, 80 effective lines, 4 files) = 5.6 → 6

Category Score Factors
🔭 Scope 4/20 5 files touched but all changes are documentation/text/comments; AI artifact is a memory file with no automation wiring; no new APIs or behavioral changes
🏗️ Architecture 1/20 No architectural changes; pure text cleanup removing internal references; no new patterns or dependencies introduced
⚙️ Implementation 1/20 Trivial string replacements and comment rewording throughout; test fixture email anonymization is a literal string swap; no algorithmic complexity
⚠️ Risk 2/20 Very low risk; all changes are documentation/comments/strings; easily reversible; no operational risk; no behavioral changes
✅ Quality 5/15 Well-executed consistent cleanup across files; removes internal coupling from documentation (good hygiene); CLAUDE.md is well-structured; no new tests needed for this change type; minor security improvement from removing internal file paths
🔒 Perf / Security 1/5 Minor security improvement: removing internal implementation details (file paths, method names) from documentation reduces information leakage about internal systems

Scored by GitVelocity · How are scores calculated?

@diogocabral diogocabral deleted the chore/eva-9938-public-flip-cleanup-pass-2 branch May 26, 2026 17:20
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.

1 participant