chore(brand): rename the product to ReplyPier

The upstream project name is gone from code, assets, docs and build
output: brand strings, domains (replypier.site and its app/api/docs/help
subdomains), env prefixes, image and network names, the widget's public
JS API (window.ReplyPier, replypierId/BaseUrl/Config/Token), CSS tokens
(--rp-*), file and directory names, and the WordPress plugin package.

- widget loader is now webclient/replypier.min.js; both bundles rebuilt
  from source (backend/assets/widget.{js,css}, frontend/public/webclient)
- NOTICE, llms.txt, CONTRIBUTING, HELP_CENTER_INFRA and config.dev.js
  rewritten rather than string-swapped; the demo config no longer ships
  the previous vendor's Firebase/Razorpay/Google keys
- new migration replypier_ai_model_001 adds REPLYPIER to the managed
  AIModelType and rewrites pre-rename rows
- local compose project, database, role and volume renamed; LOCAL_DEPLOY
  documents carrying the old local data over
This commit is contained in:
WangShen007 committed 2026-10-26 00:51:03 +08:00
1 parent ff0a09f0e5
commit 54b949b392
1156 files changed
+7289 -7144

No files matched your search

+2 -2
View File
@@ -1,9 +1,9 @@
--- ---
name: write-e2e-test name: write-e2e-test
description: Write or change a ChatterMate Playwright end-to-end test (e2e/). Use when adding e2e coverage for a feature, fixing a failing e2e spec, or adding a page object, fixture or fake-LLM script. description: Write or change a ReplyPier Playwright end-to-end test (e2e/). Use when adding e2e coverage for a feature, fixing a failing e2e spec, or adding a page object, fixture or fake-LLM script.
--- ---
# Writing a ChatterMate e2e test # Writing a ReplyPier e2e test
The suite lives in `e2e/`. Read `e2e/AUTHORING.md` first — it is the source of truth for The suite lives in `e2e/`. Read `e2e/AUTHORING.md` first — it is the source of truth for
layout and rules. The essentials: layout and rules. The essentials:
+4 -4
View File
@@ -25,13 +25,13 @@ uploads/
*.csr.crt *.csr.crt
/shopify/ /shopify/
# WordPress plugin source lives in its own repo (chattermate-wordpress-plugin); # WordPress plugin source lives in its own repo (replypier-wordpress-plugin);
# only the built, installable zip is tracked here for manual download. # only the built, installable zip is tracked here for manual download.
/wordpress/* /wordpress/*
!/wordpress/chattermate-chat.zip !/wordpress/replypier-chat.zip
# Firebase service account key (contains sensitive credentials) # Firebase service account key (contains sensitive credentials)
chattermate-13e0a-firebase-adminsdk-7dqo6-57f3de88cb.json *-firebase-adminsdk-*.json
test.db test.db
*.db *.db
@@ -71,7 +71,7 @@ config/
frontend/.env.*.bak* frontend/.env.*.bak*
# Stale loader copies — server.js serves the current build from frontend/public/webclient # Stale loader copies — server.js serves the current build from frontend/public/webclient
chattermate-test/chattermate.min.js replypier-test/replypier.min.js
# Only the :dev webclient build emits a sourcemap, and the committed loader is # Only the :dev webclient build emits a sourcemap, and the committed loader is
# the :prod one, which does not reference it. Keeps a stray dev artifact out. # the :prod one, which does not reference it. Keeps a stray dev artifact out.
+1 -1
View File
@@ -30,7 +30,7 @@
| PostgreSQL 16 + pgvector | `127.0.0.1:15432` | | PostgreSQL 16 + pgvector | `127.0.0.1:15432` |
| Redis | `127.0.0.1:16380` | | Redis | `127.0.0.1:16380` |
Docker context 为 `colima-bytedesk`,Compose 项目名为 `chattermate-local`,数据库卷为 `chattermate-local_postgres_data`。它们是运行配置,不能为整理名称而改动或删除。Colima 虚拟机承载数据库与缓存,不要单独关闭。 Docker context 为 `colima-bytedesk`,Compose 项目名为 `replypier-local`,数据库卷为 `replypier-local_postgres_data`。它们是运行配置,不能为整理名称而改动或删除。Colima 虚拟机承载数据库与缓存,不要单独关闭。
## 配置与数据保护 ## 配置与数据保护
+2 -2
View File
@@ -1,11 +1,11 @@
# Contributing to ChatterMate # Contributing to ReplyPier
Thanks for your interest in contributing! This document explains how to get Thanks for your interest in contributing! This document explains how to get
your changes accepted. your changes accepted.
## License ## License
The ChatterMate open-source core is licensed under the The ReplyPier open-source core is licensed under the
[Apache License 2.0](LICENSE). By contributing, you agree that your [Apache License 2.0](LICENSE). By contributing, you agree that your
contributions will be licensed under Apache-2.0. contributions will be licensed under Apache-2.0.
+2 -2
View File
@@ -22,12 +22,12 @@ RUN npm install
# Build the application, widget, and webclient. Use the :prod webclient build so # Build the application, widget, and webclient. Use the :prod webclient build so
# the shipped loader bakes the production fallback URL (the real backend URL is # the shipped loader bakes the production fallback URL (the real backend URL is
# resolved at runtime via window.chattermateBaseUrl / APP_CONFIG regardless). # resolved at runtime via window.replypierBaseUrl / APP_CONFIG regardless).
RUN npm run build-only && \ RUN npm run build-only && \
npm run build:widgetdocker && \ npm run build:widgetdocker && \
npm run build:webclient:prod && \ npm run build:webclient:prod && \
if [ ! -f dist/index.html ]; then \ if [ ! -f dist/index.html ]; then \
echo "<!DOCTYPE html><html><head><meta charset='utf-8'><title>ChatterMate</title><link rel='icon' href='/favicon.ico'></head><body><div id='app'></div><script type='module' src='/src/main.ts'></script></body></html>" > dist/index.html; \ echo "<!DOCTYPE html><html><head><meta charset='utf-8'><title>ReplyPier</title><link rel='icon' href='/favicon.ico'></head><body><div id='app'></div><script type='module' src='/src/main.ts'></script></body></html>" > dist/index.html; \
fi fi
# Production stage # Production stage
+1 -1
View File
@@ -18,7 +18,7 @@ RUN git clone https://github.com/pgvector/pgvector.git && \
COPY ./backend/scripts/init-vector.sql /docker-entrypoint-initdb.d/ COPY ./backend/scripts/init-vector.sql /docker-entrypoint-initdb.d/
# Set environment variables # Set environment variables
ENV POSTGRES_DB=chattermate ENV POSTGRES_DB=replypier
ENV POSTGRES_USER=postgres ENV POSTGRES_USER=postgres
ENV POSTGRES_PASSWORD=postgres ENV POSTGRES_PASSWORD=postgres
+28 -29
View File
@@ -6,11 +6,10 @@ deploy-time pieces that live **outside** the repo: DNS, TLS and the host
nginx on the production VPS. `frontend/nginx.conf` and the docker-compose nginx on the production VPS. `frontend/nginx.conf` and the docker-compose
files need **no changes**. files need **no changes**.
> **As deployed on the ChatterMate cloud VPS (2026-07-14):** the base domain is > **As deployed on the ReplyPier VPS (2026-07-14):** the base domain is
> **`help.chattermate.chat`** (orgs serve at `{slug}.help.chattermate.chat`), not > **`help.replypier.site`** (orgs serve at `{slug}.help.replypier.site`). DNS is
> the `chattermate.help` this doc originally planned — that domain was never > **Route53**, so the wildcard cert is issued and auto-renewed with the
> registered, and the org only owns `chattermate.chat`. DNS is **Route53**, so the > `dns-route53` plugin.
> wildcard cert is issued and auto-renewed with the `dns-route53` plugin.
> Placeholders (`<VPS_IPV4>`, `<ZONE_ID>`, …) stand in for the live values; the > Placeholders (`<VPS_IPV4>`, `<ZONE_ID>`, …) stand in for the live values; the
> real ones live on the VPS and in ops notes, not in this public repo. > real ones live on the VPS and in ops notes, not in this public repo.
@@ -18,9 +17,9 @@ files need **no changes**.
### DNS (Route53) ### DNS (Route53)
Point a wildcard under the domain you own at the VPS. On the cloud box this is Point a wildcard under the domain you own at the VPS. On the cloud box this is
the `chattermate.chat` hosted zone (`<ZONE_ID>`): the `replypier.site` hosted zone (`<ZONE_ID>`):
- `*.help.chattermate.chat. A <VPS_IPV4>` - `*.help.replypier.site. A <VPS_IPV4>`
- `*.help.chattermate.chat. AAAA <VPS_IPV6>` - `*.help.replypier.site. AAAA <VPS_IPV6>`
One wildcard record covers every org — no per-org DNS. Create them via the API: One wildcard record covers every org — no per-org DNS. Create them via the API:
```bash ```bash
@@ -30,7 +29,7 @@ aws route53 change-resource-record-sets --hosted-zone-id <ZONE_ID> \
Backend env (`backend.env` on the VPS): Backend env (`backend.env` on the VPS):
``` ```
HELP_CENTER_BASE_DOMAIN=help.chattermate.chat HELP_CENTER_BASE_DOMAIN=help.replypier.site
HELP_CENTER_TARGET_IPS=["<VPS_IPV4>"] # JSON array — see gotcha below HELP_CENTER_TARGET_IPS=["<VPS_IPV4>"] # JSON array — see gotcha below
``` ```
> **Gotcha:** `HELP_CENTER_TARGET_IPS` is a `frozenset` setting, so > **Gotcha:** `HELP_CENTER_TARGET_IPS` is a `frozenset` setting, so
@@ -46,11 +45,11 @@ Route53 policy (`route53:ListHostedZones` + `GetChange` on `*`,
(mode 600) on the box. Issue once: (mode 600) on the box. Issue once:
```bash ```bash
docker run --rm \ docker run --rm \
-v ~/chattermate/certbot/conf:/etc/letsencrypt \ -v ~/replypier/certbot/conf:/etc/letsencrypt \
-v ~/.aws:/root/.aws:ro \ -v ~/.aws:/root/.aws:ro \
certbot/dns-route53 certonly --dns-route53 \ certbot/dns-route53 certonly --dns-route53 \
-d '*.help.chattermate.chat' -d 'help.chattermate.chat' \ -d '*.help.replypier.site' -d 'help.replypier.site' \
--cert-name help.chattermate.chat \ --cert-name help.replypier.site \
--non-interactive --agree-tos -m <ops-email> --non-interactive --agree-tos -m <ops-email>
``` ```
@@ -63,7 +62,7 @@ docker compose -f docker-compose.hostinger.yml \
# ...then, if the flag file appeared: rm it && docker compose exec -T nginx nginx -s reload # ...then, if the flag file appeared: rm it && docker compose exec -T nginx nginx -s reload
``` ```
It uses the `certbot/dns-route53` image and mounts It uses the `certbot/dns-route53` image and mounts
`/home/chattermate/.aws:/root/.aws:ro`, so the wildcard renews unattended (the `/home/replypier/.aws:/root/.aws:ro`, so the wildcard renews unattended (the
renewal conf remembers `authenticator = dns-route53`). Existing HTTP-01 webroot renewal conf remembers `authenticator = dns-route53`). Existing HTTP-01 webroot
certs still renew — the dns-route53 image is a superset of `certbot/certbot`. certs still renew — the dns-route53 image is a superset of `certbot/certbot`.
`renew` covers every cert in the shared `certbot/conf`, not just the wildcard. `renew` covers every cert in the shared `certbot/conf`, not just the wildcard.
@@ -95,19 +94,19 @@ certs still renew — the dns-route53 image is a superset of `certbot/certbot`.
> ``` > ```
### Host nginx server block ### Host nginx server block
Lives at `~/chattermate/nginx/conf.d/help-center.conf` (mounted read-only into Lives at `~/replypier/nginx/conf.d/help-center.conf` (mounted read-only into
the `chattermate-nginx-1` container). `proxy_set_header Host $host` is what the `replypier-nginx-1` container). `proxy_set_header Host $host` is what
makes backend host-dispatch resolve the org. Upstream is the compose service makes backend host-dispatch resolve the org. Upstream is the compose service
name `backend:8000` (nginx shares the `chattermate-network`), not a published name `backend:8000` (nginx shares the `replypier-network`), not a published
host port. host port.
```nginx ```nginx
# {slug}.help.chattermate.chat # {slug}.help.replypier.site
server { server {
listen 443 ssl http2; listen 443 ssl http2;
server_name *.help.chattermate.chat help.chattermate.chat; server_name *.help.replypier.site help.replypier.site;
ssl_certificate /etc/letsencrypt/live/help.chattermate.chat/fullchain.pem; ssl_certificate /etc/letsencrypt/live/help.replypier.site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/help.chattermate.chat/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/help.replypier.site/privkey.pem;
include /etc/nginx/conf.d/ssl-params.conf; include /etc/nginx/conf.d/ssl-params.conf;
location / { location / {
@@ -121,7 +120,7 @@ server {
server { server {
listen 80; listen 80;
server_name *.help.chattermate.chat help.chattermate.chat; server_name *.help.replypier.site help.replypier.site;
location /.well-known/acme-challenge/ { root /var/www/certbot; } location /.well-known/acme-challenge/ { root /var/www/certbot; }
location / { return 301 https://$host$request_uri; } location / { return 301 https://$host$request_uri; }
} }
@@ -130,11 +129,11 @@ server {
## 2. Per-customer custom domain (runbook step per domain) ## 2. Per-customer custom domain (runbook step per domain)
Customers add two records (shown in their FAQ admin UI). On the cloud box the Customers add two records (shown in their FAQ admin UI). On the cloud box the
CNAME target `cname.chattermate.chat` is **not** provisioned, so verification CNAME target `cname.replypier.site` is **not** provisioned, so verification
falls back to an A record pointing at `HELP_CENTER_TARGET_IPS` — either form falls back to an A record pointing at `HELP_CENTER_TARGET_IPS` — either form
works: works:
- `CNAME help.customer.com → cname.chattermate.chat` *(or)* `A help.customer.com → <VPS_IPV4>` - `CNAME help.customer.com → cname.replypier.site` *(or)* `A help.customer.com → <VPS_IPV4>`
- `TXT _chattermate.help.customer.com → cm-verify=<token>` - `TXT _replypier.customer.com → rp-verify=<token>`
After they click **Verify domain** (DNS checks pass, `ssl_status` becomes After they click **Verify domain** (DNS checks pass, `ssl_status` becomes
`pending`), issue the certificate on the VPS — HTTP-01 works because the `pending`), issue the certificate on the VPS — HTTP-01 works because the
@@ -161,10 +160,10 @@ admin endpoint for verified-but-unprovisioned domains and runs
whole VPS. whole VPS.
## 3. Verification checklist after deploy ## 3. Verification checklist after deploy
1. `curl -sS -o /dev/null -w '%{http_code}\n' https://<slug>.help.chattermate.chat/` → `200` (and `http://` → `301`). 1. `curl -sS -o /dev/null -w '%{http_code}\n' https://<slug>.help.replypier.site/` → `200` (and `http://` → `301`).
2. `https://<slug>.help.chattermate.chat` in a browser → published FAQs render, widget loads; an article at `/a/<faq-slug>` returns `200`. 2. `https://<slug>.help.replypier.site` in a browser → published FAQs render, widget loads; an article at `/a/<faq-slug>` returns `200`.
3. `docker exec chattermate-backend-1 printenv HELP_CENTER_BASE_DOMAIN` → `help.chattermate.chat` (and the backend is `healthy`, not crash-looping on `HELP_CENTER_TARGET_IPS`). 3. `docker exec replypier-backend-1 printenv HELP_CENTER_BASE_DOMAIN` → `help.replypier.site` (and the backend is `healthy`, not crash-looping on `HELP_CENTER_TARGET_IPS`).
4. API unaffected: `https://app.chattermate.chat` / `https://api.chattermate.chat/api/v1/...` still route normally. 4. API unaffected: `https://app.replypier.site` / `https://api.replypier.site/api/v1/...` still route normally.
5. `POST /ask` from the page returns an answer and appears in `help_center_queries`. 5. `POST /ask` from the page returns an answer and appears in `help_center_queries`.
6. `docker ps -a --filter name=certbot` → **empty**. `compose up -d` must not start a 6. `docker ps -a --filter name=certbot` → **empty**. `compose up -d` must not start a
certbot container; one that sticks around means the long-running loop entrypoint is certbot container; one that sticks around means the long-running loop entrypoint is
@@ -180,7 +179,7 @@ The feature is gated by the `help_center` plan flag, which lives in the
- backfill existing plan rows' `features` JSON with the same values; - backfill existing plan rows' `features` JSON with the same values;
- extend the message-limit check to add the org's period - extend the message-limit check to add the org's period
`help_center_queries` count (`HelpCenterQueryRepository.count_for_period`) `help_center_queries` count (`HelpCenterQueryRepository.count_for_period`)
to the bot-message count when the org runs on the ChatterMate-hosted model. to the bot-message count when the org runs on the ReplyPier-hosted model.
Until that PR deploys, cloud orgs see the upgrade lock (`plan_allowed: Until that PR deploys, cloud orgs see the upgrade lock (`plan_allowed:
false`); self-hosted/OSS installs are unrestricted immediately. false`); self-hosted/OSS installs are unrestricted immediately.
+13 -2
View File
@@ -63,8 +63,8 @@ Python 后端、知识库 worker、前端预览服务在宿主机运行;Postgr
| Redis | `127.0.0.1:16380` | | Redis | `127.0.0.1:16380` |
- Docker context:`colima-bytedesk`。 - Docker context:`colima-bytedesk`。
- Compose 项目名:`chattermate-local`。 - Compose 项目名:`replypier-local`。
- 数据库卷:`chattermate-local_postgres_data`。 - 数据库卷:`replypier-local_postgres_data`。
- 配置:`backend/.env`、`frontend/.env`、`deploy/local/.env`。 - 配置:`backend/.env`、`frontend/.env`、`deploy/local/.env`。
- 运行文件、日志、构建产物、嵌入模型缓存:`deploy/local/.state/`。 - 运行文件、日志、构建产物、嵌入模型缓存:`deploy/local/.state/`。
- Widget 与演示配置:[test-environment.json](deploy/local/.state/test-environment.json)。 - Widget 与演示配置:[test-environment.json](deploy/local/.state/test-environment.json)。
@@ -72,6 +72,17 @@ Python 后端、知识库 worker、前端预览服务在宿主机运行;Postgr
启动脚本使用上述 context、项目名和卷。不要随意改名、删除数据卷或关闭承载数据库的 Colima 虚拟机。 启动脚本使用上述 context、项目名和卷。不要随意改名、删除数据卷或关闭承载数据库的 Colima 虚拟机。
### 改名后的旧数据(一次性,未执行)
2026-10-26 品牌统一时,Compose 项目名、数据卷名、库名与库用户从旧名改成 `replypier-local` / `replypier-local_postgres_data` / `replypier` / `replypier`。旧卷里的本机数据不会自动挂到新卷,需要时再搬;全新环境无需处理。
当时 Colima 未运行,这一步没有执行、也没有验证。要做时先 `./deploy/local/local.sh stop`,再二选一:
1. 保留旧数据:从旧卷 `pg_dumpall -U <旧用户>` 导出,起新栈后还原到 `replypier` 库,然后把 `backend/.env` 的 `DATABASE_URL` 指向新库。加密字段依赖同一个 `backend/.env` 密钥,换密钥会导致旧密文读不出来。
2. 不复用:直接 `local.sh up` 得到空库,重新建管理员与 AI 客服配置。
不要用复制 PGDATA 的方式搬库:库名和角色名都变了,还需要在数据目录里额外改名。
恢复数据时须同时保留数据库和 `backend/.env` 中的加密配置,否则加密保存的模型配置及消息可能无法读取。不要覆盖密钥、重置管理员,或将私有环境文件提交和对外分享。 恢复数据时须同时保留数据库和 `backend/.env` 中的加密配置,否则加密保存的模型配置及消息可能无法读取。不要覆盖密钥、重置管理员,或将私有环境文件提交和对外分享。
## 会话权限检查 ## 会话权限检查
+7 -6
View File
@@ -1,8 +1,9 @@
ChatterMate ReplyPier
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
This product includes software developed by ChatterMate This product is the ReplyPier AI customer-support platform: an AI agent answers
(https://chattermate.chat). first from your own knowledge base, a human takes over in the same conversation,
and the visitor can rate the service at the end.
Licensed under the Apache License, Version 2.0. See the LICENSE file for Licensed under the Apache License, Version 2.0. See the LICENSE file for the
the full license text. full license text. Contribution terms are in CONTRIBUTING.md.
+2 -2
View File
@@ -1,5 +1,5 @@
# Database Configuration # Database Configuration
DATABASE_URL=postgresql+psycopg://postgres:postgres@db:5432/chattermate DATABASE_URL=postgresql+psycopg://postgres:postgres@db:5432/replypier
# CORS Configuration add backend url to allow cors from frontend # CORS Configuration add backend url to allow cors from frontend
CORS_ORIGINS=["http://localhost:3000","http://localhost:8000"] CORS_ORIGINS=["http://localhost:3000","http://localhost:8000"]
@@ -61,7 +61,7 @@ ENVIRONMENT=development
# S3 Configuration # S3 Configuration
S3_FILE_STORAGE=false S3_FILE_STORAGE=false
S3_BUCKET=chattermate-uploads S3_BUCKET=replypier-uploads
S3_REGION=us-east-1 S3_REGION=us-east-1
# Leave both blank on EC2/ECS/EKS to use the attached IAM role — boto3 then # Leave both blank on EC2/ECS/EKS to use the attached IAM role — boto3 then
# resolves credentials from its default chain. Set them only for static keys; # resolves credentials from its default chain. Set them only for static keys;
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
""" """
"""Added chattermate AI model """Added replypier AI model
Revision ID: 520df92643e3 Revision ID: 520df92643e3
Revises: 85364d188f15 Revises: 85364d188f15
@@ -35,7 +35,7 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None: def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
# Create a new temporary type with the new value # Create a new temporary type with the new value
op.execute("ALTER TYPE aimodeltype ADD VALUE IF NOT EXISTS 'CHATTERMATE'") op.execute("ALTER TYPE aimodeltype ADD VALUE IF NOT EXISTS 'REPLYPIER'")
# ### end Alembic commands ### # ### end Alembic commands ###
def downgrade() -> None: def downgrade() -> None:
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@ Revises: drop_slack_tables_001
Create Date: 2026-07-12 Create Date: 2026-07-12
New feature: AI-generated FAQs reviewed/published by the org and served as a New feature: AI-generated FAQs reviewed/published by the org and served as a
public help center on {slug}.chattermate.help or a verified custom domain. public help center on {slug}.help.replypier.site or a verified custom domain.
Tables: Tables:
- faq_generation_jobs: async generate/import jobs (worker + UI polling) - faq_generation_jobs: async generate/import jobs (worker + UI polling)
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -0,0 +1,67 @@
"""
Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
"""Carry the managed AI-model enum value onto its renamed label
Revision ID: replypier_ai_model_001
Revises: widget_key_lookup_001
Create Date: 2026-10-26 00:00:00.000000
The brand rename changed ``AIModelType``'s managed-provider member. Databases
created before the rename carry the old label in the ``aimodeltype`` type and in
``ai_configs`` rows, so:
1. add the new label to the type (a no-op on a database created after it), and
2. rewrite rows that still point at the old label.
Fresh databases created from the rewritten ``520df92643e3`` migration never see
the old label; both statements are then no-ops.
"""
from typing import Sequence, Union
from alembic import op
# revision identifiers, used by Alembic.
revision: str = 'replypier_ai_model_001'
down_revision: Union[str, None] = 'widget_key_lookup_001'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
# The managed-provider value this project used before the rename. Kept only so
# pre-rename rows can be found; nothing reads it at runtime.
LEGACY_MANAGED_VALUE = 'CHATTERMATE'
MANAGED_VALUE = 'REPLYPIER'
def upgrade() -> None:
# ADD VALUE cannot be used in the same transaction that references the new
# label, so it runs in its own autocommit block.
with op.get_context().autocommit_block():
op.execute(
f"ALTER TYPE aimodeltype ADD VALUE IF NOT EXISTS '{MANAGED_VALUE}'"
)
op.execute(
f"UPDATE ai_configs SET model_type = '{MANAGED_VALUE}' "
f"WHERE model_type::text = '{LEGACY_MANAGED_VALUE}'"
)
def downgrade() -> None:
# PostgreSQL cannot drop an enum value; the data rewrite is reversible.
op.execute(
f"UPDATE ai_configs SET model_type = '{LEGACY_MANAGED_VALUE}' "
f"WHERE model_type::text = '{MANAGED_VALUE}'"
)
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
+1 -1
View File
@@ -1,5 +1,5 @@
""" """
Copyright 2024-2026 ChatterMate Copyright 2024-2026 ReplyPier
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
Loaded 100 of 1156 files, more files were not shown because too many files have changed in this diff. Show more