update API endpoints to use konik.ai instead of comma

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Test User
2026-04-26 09:33:48 -05:00
committed by Comma Device
parent f492184f8c
commit 0af68e13df
15 changed files with 22 additions and 22 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ from datetime import datetime, timedelta, UTC
from openpilot.system.hardware.hw import Paths
from openpilot.system.version import get_version
API_HOST = os.getenv('API_HOST', 'https://api.commadotai.com')
API_HOST = os.getenv('API_HOST', 'https://api.konik.ai')
class Api:
def __init__(self, dongle_id):
+1 -1
View File
@@ -17,7 +17,7 @@ from openpilot.system.ui.widgets.scroller import Scroller
# Description constants
DESCRIPTIONS = {
'pair_device': "Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer.",
'pair_device': "Pair your device with konik stable (connect.konik.ai).",
'driver_camera': "Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off)",
'reset_calibration': (
"openpilot requires the device to be mounted within 4° left or right and within 5° " +
+1 -1
View File
@@ -9,7 +9,7 @@
namespace CommaApi {
const QString BASE_URL = util::getenv("API_HOST", "https://api.commadotai.com").c_str();
const QString BASE_URL = util::getenv("API_HOST", "https://api.konik.ai").c_str();
QByteArray rsa_sign(const QByteArray &data);
QString create_jwt(const QJsonObject &payloads = {}, int expiry = 3600);
+1 -1
View File
@@ -209,7 +209,7 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) {
addItem(new LabelControl(tr("Serial"), params.get("HardwareSerial").c_str()));
pair_device = new ButtonControl(tr("Pair Device"), tr("PAIR"),
tr("Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer."));
tr("Pair your device with konik stable (stable.konik.ai) and claim your comma prime offer."));
connect(pair_device, &ButtonControl::clicked, [=]() {
PairingPopup popup(this);
popup.exec();
+5 -5
View File
@@ -36,7 +36,7 @@ void PairingQRWidget::hideEvent(QHideEvent *event) {
void PairingQRWidget::refresh() {
QString pairToken = CommaApi::create_jwt({{"pair", true}});
QString qrString = "https://connect.comma.ai/?pair=" + pairToken;
QString qrString = "https://stable.konik.ai/?pair=" + pairToken;
this->updateQrCode(qrString);
update();
}
@@ -100,9 +100,9 @@ PairingPopup::PairingPopup(QWidget *parent) : DialogBase(parent) {
<li style='margin-bottom: 50px;'>%2</li>
<li style='margin-bottom: 50px;'>%3</li>
</ol>
)").arg(tr("Go to https://connect.comma.ai on your phone"))
)").arg(tr("Go to https://stable.konik.ai on your phone"))
.arg(tr("Click \"add new device\" and scan the QR code on the right"))
.arg(tr("Bookmark connect.comma.ai to your home screen to use it like an app")), this);
.arg(tr("Bookmark stable.konik.ai to your home screen to use it like an app")), this);
instructions->setStyleSheet("font-size: 47px; font-weight: bold; color: black;");
instructions->setWordWrap(true);
@@ -151,7 +151,7 @@ PrimeAdWidget::PrimeAdWidget(QWidget* parent) : QFrame(parent) {
main_layout->addWidget(upgrade, 0, Qt::AlignTop);
main_layout->addSpacing(50);
QLabel *description = new QLabel(tr("Become a comma prime member at connect.comma.ai"));
QLabel *description = new QLabel(tr("Become a member at stable.konik.ai"));
description->setStyleSheet("font-size: 56px; font-weight: light; color: white;");
description->setWordWrap(true);
main_layout->addWidget(description, 0, Qt::AlignTop);
@@ -196,7 +196,7 @@ SetupWidget::SetupWidget(QWidget* parent) : QFrame(parent) {
registrationTitle->setStyleSheet("font-size: 75px; font-weight: bold;");
finishRegistrationLayout->addWidget(registrationTitle);
QLabel* registrationDescription = new QLabel(tr("Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer."));
QLabel* registrationDescription = new QLabel(tr("Pair your device with konik stable (stable.konik.ai)."));
registrationDescription->setWordWrap(true);
registrationDescription->setStyleSheet("font-size: 50px; font-weight: light;");
finishRegistrationLayout->addWidget(registrationDescription);
+3 -3
View File
@@ -28,7 +28,7 @@ class PairingDialog:
except Exception as e:
cloudlog.warning(f"Failed to get pairing token: {e}")
token = ""
return f"https://connect.comma.ai/setup?token={token}"
return f"https://stable.konik.ai/setup?token={token}"
def _generate_qr_code(self) -> None:
try:
@@ -113,9 +113,9 @@ class PairingDialog:
def _render_instructions(self, rect: rl.Rectangle) -> None:
instructions = [
"Go to https://connect.comma.ai on your phone",
"Go to https://stable.konik.ai on your phone",
"Click \"add new device\" and scan the QR code on the right",
"Bookmark connect.comma.ai to your home screen to use it like an app",
"Bookmark stable.konik.ai to your home screen to use it like an app",
]
font = gui_app.font(FontWeight.BOLD)
+1 -1
View File
@@ -34,7 +34,7 @@ class PrimeWidget(Widget):
# Description with wrapping
desc_y = y + 140
font = gui_app.font(FontWeight.LIGHT)
wrapped_text = "\n".join(wrap_text(font, "Become a comma prime member at connect.comma.ai", 56, int(w)))
wrapped_text = "\n".join(wrap_text(font, "Become a konik member at stable.konik.ai", 56, int(w)))
text_size = measure_text_cached(font, wrapped_text, 56)
rl.draw_text_ex(font, wrapped_text, rl.Vector2(x, desc_y), 56, 0, rl.WHITE)
+1 -1
View File
@@ -38,7 +38,7 @@ class SetupWidget(Widget):
y += 113 # 75 + 38 spacing
# Description
desc = "Pair your device with comma connect (connect.comma.ai) and claim your comma prime offer."
desc = "Pair your device with konik stable (stable.konik.ai) and claim your comma prime offer."
light_font = gui_app.font(FontWeight.LIGHT)
wrapped = wrap_text(light_font, desc, 50, int(w))
for line in wrapped:
+1 -1
View File
@@ -41,7 +41,7 @@ from openpilot.system.version import get_build_metadata
from openpilot.system.hardware.hw import Paths
ATHENA_HOST = os.getenv('ATHENA_HOST', 'wss://athena.comma.ai')
ATHENA_HOST = os.getenv('ATHENA_HOST', 'wss://athena.konik.ai')
HANDLER_THREADS = int(os.getenv('HANDLER_THREADS', "4"))
LOCAL_PORT_WHITELIST = {22, } # SSH
+1 -1
View File
@@ -21,7 +21,7 @@ int main(int argc, char *argv[]) {
QCommandLineParser cmd_parser;
cmd_parser.addHelpOption();
cmd_parser.addPositionalArgument("route", "the drive to replay. find your drives at connect.comma.ai");
cmd_parser.addPositionalArgument("route", "the drive to replay. find your drives at stable.konik.ai");
cmd_parser.addOption({"demo", "use a demo route instead of providing your own"});
cmd_parser.addOption({"auto", "Auto load the route from the best available source (no video): internal, openpilotci, comma_api, car_segments, testing_closet"});
cmd_parser.addOption({"qcam", "load qcamera"});
+1 -1
View File
@@ -268,7 +268,7 @@ def clip(
def main():
p = ArgumentParser(prog='clip.py', description='clip your openpilot route.', epilog='comma.ai')
p = ArgumentParser(prog='clip.py', description='clip your openpilot route.', epilog='konik.ai')
validate_env(p)
route_group = p.add_mutually_exclusive_group(required=True)
route_group.add_argument('route', nargs='?', type=validate_route, help=f'The route (e.g. {DEMO_ROUTE} or {DEMO_ROUTE}/{DEMO_START}/{DEMO_END})')
+1 -1
View File
@@ -1,6 +1,6 @@
import os
import requests
API_HOST = os.getenv('API_HOST', 'https://api.commadotai.com')
API_HOST = os.getenv('API_HOST', 'https://api.konik.ai')
# TODO: this should be merged into common.api
+2 -2
View File
@@ -255,10 +255,10 @@ def auto_source(identifier: str, sources: list[Source], default_mode: ReadMode)
def parse_indirect(identifier: str) -> str:
if "useradmin.comma.ai" in identifier:
if "useradmin.konik.ai" in identifier:
query = parse_qs(urlparse(identifier).query)
identifier = query["onebox"][0]
elif "connect.comma.ai" in identifier:
elif "stable.konik.ai" in identifier:
path = urlparse(identifier).path.strip("/").split("/")
path = ['/'.join(path[:2]), *path[2:]] # recombine log id
+1 -1
View File
@@ -8,7 +8,7 @@
namespace CommaApi2 {
const std::string BASE_URL = util::getenv("API_HOST", "https://api.commadotai.com").c_str();
const std::string BASE_URL = util::getenv("API_HOST", "https://api.konik.ai").c_str();
std::string create_token(bool use_jwt, const json11::Json& payloads = {}, int expiry = 3600);
std::string httpGet(const std::string &url, long *response_code = nullptr);
+1 -1
View File
@@ -24,7 +24,7 @@ segment = int(sys.argv[2])
frame = int(sys.argv[3])
camera = cameras[sys.argv[4]] if len(sys.argv) > 4 and sys.argv[4] in cameras else "cameras"
url = f'https://api.commadotai.com/v1/route/{route}/files'
url = f'https://api.konik.ai/v1/route/{route}/files'
r = requests.get(url, headers={"Authorization": f"JWT {jwt}"}, timeout=10)
assert r.status_code == 200
print("got api response")