chore: remove remaining private-repo references before public flip (EVA-9938)#4
Conversation
…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>
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 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. |
📊 Code Quality Score: 6/100
Scored by GitVelocity · How are scores calculated? |
📊 Code Quality Score: 6/100
Scored by GitVelocity · How are scores calculated? |
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 fullOauthApplication.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) touser@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 testpasses locally (couldn't run from this WSL — no Go in PATH)go vet ./...cleansearchlight --helpstill works after buildgrep -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 theis_internalJSON field inintegration_test.go, which mirrors the server's response contract and is part of the public API)🤖 Generated with Claude Code