Information we process
GitHub OAuth provides your GitHub identifier, username, display name, avatar URL, granted scopes, and an access token. TraceRepo stores the profile fields and an encrypted form of the token on the server. Authentication uses a server-side session and a secure session cookie in production.
GitHub permissions
The current GitHub OAuth application requests read:user, user:email, and repo. GitHub OAuth does not provide a narrower read-only scope for private repositories. TraceRepo uses the token for read operations: listing repositories, checking continued access, and reading repository content. It does not push commits, create issues, or open pull requests.
Repository content and indexing
When you start a sync, TraceRepo reads supported files from the selected commit. It stores repository metadata, parsed source chunks, file content needed for source browsing, symbols, line ranges, commit identifiers, and vector embeddings in PostgreSQL with pgvector. Cached overviews, learning guides, architecture data, and code-flow descriptions may also be stored for that indexed commit. This means TraceRepo does store and process repository source code, including private source code you authorize it to read.
AI processing
Relevant source excerpts and your question may be sent to the configured OpenAI API models to generate repository-aware answers, explanations, learning guides, or optional flow descriptions. The application also uses an OpenAI embedding model while indexing. Only selected context is sent for generation; deterministic browsing and diagrams do not require a generation call. OpenAI's handling of API data is governed by the account and terms used by the service owner. TODO: the owner must document the final OpenAI account data controls and any applicable data-processing agreement before launch.
Chats, accounts, and credentials
Chat sessions, questions, generated answers, and resolved citation metadata are stored in PostgreSQL. GitHub tokens are encrypted at rest using server-managed encryption secrets and are not returned to the browser. Passwords are not collected because sign-in is handled by GitHub.
Cookies and local storage
The backend sets an HttpOnly session cookie. The frontend also sets a non-sensitive sign-in marker cookie used only for navigation; backend authorization never relies on that marker. Theme, workspace layout, and similar preferences may be kept in browser storage. CSRF tokens are kept in memory and sent back in a request header for state-changing operations.
Operational logs and analytics
Server logs record operational identifiers, status, timings, and error types to diagnose indexing, retrieval, and service failures. They are designed not to log source content, prompts, answers, or access tokens. TraceRepo's first-party product events record only allow-listed event names and a sanitized application path; they do not include repository names, source code, tokens, prompts, answers, or user profile fields. Vercel Web Analytics is also used to measure page visits and navigation on the deployed frontend. Vercel may process technical request and device information needed to provide that service. TODO: confirm the production Vercel data settings and applicable privacy terms during legal review.
Support and feedback
If you submit the feedback form, TraceRepo processes the name and reply email you optionally provide, the selected feedback type, and your message. The backend sends that information through the configured SMTP provider to feedback@tracerepo.com; it is not written to the TraceRepo database. Email providers and recipient mailboxes may retain the message under their own settings. Do not submit credentials, access tokens, or private source code.
Service providers
TraceRepo relies on GitHub for authentication and repository access, OpenAI for configured AI generation and embeddings, Vercel for frontend hosting and Web Analytics, PostgreSQL/pgvector for storage, and the backend/database hosting providers selected by the owner. TODO: list the final backend and database providers, their regions, and links to all provider privacy terms before launch.
Retention and deletion
The current software does not enforce a fixed automatic retention period and does not yet expose self-service account deletion. Account, repository index, and chat data remain stored until the service owner completes a deletion request or the data is removed as part of operations. TODO: choose documented retention periods, add an operational deletion procedure, and activate the contact channel before public launch.
Contact and policy updates
Privacy questions and deletion requests can be sent to support@tracerepo.com. Do not include credentials, access tokens, or private source code in email. Material changes should be posted here with an updated date and, when appropriate, communicated in the product.