From 19d423a98977bb2821fd3a455ffc797d58c1cde5 Mon Sep 17 00:00:00 2001 From: daopunk Date: Wed, 9 Sep 2026 20:45:27 -0500 Subject: [PATCH] refactor: change bot name from cipherslate to sigstack --- .agents/docs/DEVELOPMENT.md | 2 +- .github/workflows/pages.yml | 17 +++--- .github/workflows/site.yml | 2 +- README.md | 4 +- crates/signal-bot/src/commands/menu_locale.rs | 6 +-- .../signal-bot/src/commands/translate_all.rs | 4 +- crates/signal-bot/src/commands/verify.rs | 6 +-- crates/signal-bot/src/config.rs | 4 +- crates/signal-bot/src/ensure_username.rs | 8 +-- crates/signal-bot/src/main.rs | 6 +-- crates/signal-client/src/client.rs | 4 +- crates/signal-client/src/lib.rs | 10 ++-- docker/.env.example | 4 +- docker/.phala.env.example | 2 +- docker/compose.yaml | 2 +- docker/phala.yaml | 2 +- docs/in-chat-translation.md | 2 +- docs/language-threads.md | 2 +- docs/one-cvm-architecture.md | 2 +- ...-08-14-001-feat-localize-bot-menus-plan.md | 2 +- docs/solutions/signal-mobile-menus.md | 6 +-- docs/voice-transcription.md | 2 +- site/README.md | 14 ++--- site/package-lock.json | 4 +- site/package.json | 2 +- site/playwright.config.ts | 2 +- site/src/lib/components/InChatDiagram.svelte | 2 +- .../components/PrivacyPromiseDiagram.svelte | 2 +- .../lib/components/PrivacyTeeDiagram.svelte | 4 +- .../lib/components/PrivacyTrustDiagram.svelte | 2 +- site/src/lib/components/SiteFooter.svelte | 2 +- site/src/lib/components/SiteHeader.svelte | 2 +- .../components/TranscriptionDiagram.svelte | 2 +- site/src/lib/content/en.ts | 52 +++++++++---------- site/src/lib/content/index.spec.ts | 4 +- site/src/routes/privacy/+page.svelte | 2 +- site/src/routes/smoke.e2e.ts | 14 ++--- site/vite.config.ts | 2 +- 38 files changed, 106 insertions(+), 105 deletions(-) diff --git a/.agents/docs/DEVELOPMENT.md b/.agents/docs/DEVELOPMENT.md index f2edcb0..ef75ebe 100644 --- a/.agents/docs/DEVELOPMENT.md +++ b/.agents/docs/DEVELOPMENT.md @@ -1,4 +1,4 @@ -# CipherSlate — Development Guide +# Sigstack — Development Guide ## Product direction diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index f723ad0..5667d43 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -33,24 +33,29 @@ jobs: - run: npm ci - run: npm run build env: - BASE_PATH: /sigstack-bot/cypherslate + BASE_PATH: /sigstack-bot/sigstack PUBLIC_SIGNAL_USERNAME_LINK: ${{ vars.PUBLIC_SIGNAL_USERNAME_LINK }} PUBLIC_STRIPE_PORTAL_URL: ${{ vars.PUBLIC_STRIPE_PORTAL_URL }} - - name: Prepare Pages artifact for /sigstack-bot/cypherslate + - name: Prepare Pages artifact for /sigstack-bot/sigstack shell: bash run: | set -euo pipefail # The GitHub Pages project site mounts the artifact at `//`. - # Nest the SvelteKit output under `cypherslate/` so /sigstack-bot/cypherslate/ + # Nest the SvelteKit output under `sigstack/` so /sigstack-bot/sigstack/ # resolves. Move the whole build dir (avoids overlapping hidden-file globs). tmp="$(mktemp -d)" - mv build "$tmp/cypherslate" + mv build "$tmp/sigstack" mkdir -p build - mv "$tmp/cypherslate" build/cypherslate + mv "$tmp/sigstack" build/sigstack printf '%s\n' '' \ - '' \ + '' \ > build/index.html + # Keep old /cypherslate/ bookmarks working. + mkdir -p build/cypherslate + printf '%s\n' '' \ + '' \ + > build/cypherslate/index.html touch build/.nojekyll - uses: actions/upload-pages-artifact@v3 with: diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml index d71ac39..cac8ab4 100644 --- a/.github/workflows/site.yml +++ b/.github/workflows/site.yml @@ -33,4 +33,4 @@ jobs: - run: npm run test:e2e env: CI: true - BASE_PATH: /sigstack-bot/cypherslate + BASE_PATH: /sigstack-bot/sigstack diff --git a/README.md b/README.md index 860cdd3..0a7ba0a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# CipherSlate +# Sigstack TEE-hosted Signal bot for **voice transcription** and **group translation**, designed as an interoperable product suite. @@ -23,7 +23,7 @@ Details: [docs/one-cvm-architecture.md](docs/one-cvm-architecture.md) · [docs/v | Product | Command | Effect | |---------|---------|--------| -| Hub | `!help` / `!info` | CipherSlate hub menus | +| Hub | `!help` / `!info` | Sigstack hub menus | | Hub | `!privacy` | Privacy, TEE, and `!verify` (one reply) | | Hub | `!translation-threads` | Language Threads menu | | Hub | `!translation-in-chat` | In-chat translation menu | diff --git a/crates/signal-bot/src/commands/menu_locale.rs b/crates/signal-bot/src/commands/menu_locale.rs index 22a424f..94e8259 100644 --- a/crates/signal-bot/src/commands/menu_locale.rs +++ b/crates/signal-bot/src/commands/menu_locale.rs @@ -162,7 +162,7 @@ PER MSG QUOTE REPLY: !help-transcription"#; -const HELP_HUB: &str = r#"--CipherSlate-- +const HELP_HUB: &str = r#"--Sigstack-- MENUS: !translation-threads @@ -188,7 +188,7 @@ const HELP_THREAD: &str = r#"Language Thread !info !commands"#; -const INFO_HUB: &str = r#"--CipherSlate-- +const INFO_HUB: &str = r#"--Sigstack-- !translation-threads Language Threads — multilingual main chat + language sidecars @@ -353,7 +353,7 @@ const PRIVACY_MENU: &str = r#"Privacy & TEE example: !verify "write something unique here" -CipherSlate is one Signal number in one Phala TEE/CVM. +Sigstack is one Signal number in one Phala TEE/CVM. Translation: Signal text is processed in this TEE and translated via NEAR AI private inference. diff --git a/crates/signal-bot/src/commands/translate_all.rs b/crates/signal-bot/src/commands/translate_all.rs index c74ab3c..c0875dc 100644 --- a/crates/signal-bot/src/commands/translate_all.rs +++ b/crates/signal-bot/src/commands/translate_all.rs @@ -781,7 +781,7 @@ mod tests { let msg = BotMessage { source: "+15550001111".into(), source_number: Some("+15550001111".into()), - source_name: Some("CipherSlate".into()), + source_name: Some("Sigstack".into()), text: "📝 Transcript:\nHola amigos".into(), timestamp: 0, message_timestamp: 0, @@ -879,7 +879,7 @@ mod tests { let msg = BotMessage { source: "+15550001111".into(), source_number: Some("+15550001111".into()), - source_name: Some("CipherSlate".into()), + source_name: Some("Sigstack".into()), text: "Hello friends".into(), timestamp: 0, message_timestamp: 0, diff --git a/crates/signal-bot/src/commands/verify.rs b/crates/signal-bot/src/commands/verify.rs index f60d3f7..e78227e 100644 --- a/crates/signal-bot/src/commands/verify.rs +++ b/crates/signal-bot/src/commands/verify.rs @@ -55,7 +55,7 @@ impl VerifyHandler { pub(crate) fn prefixed_challenge(&self, raw: Option) -> String { let user_part = raw.unwrap_or_else(|| "no-challenge-provided".into()); - format!("CipherSlate: {user_part}") + format!("Sigstack: {user_part}") } /// Parse the challenge nonce from the message text. @@ -316,11 +316,11 @@ mod tests { let handler = create_test_handler(); assert_eq!( handler.prefixed_challenge(Some("hello".into())), - "CipherSlate: hello" + "Sigstack: hello" ); assert_eq!( handler.prefixed_challenge(None), - "CipherSlate: no-challenge-provided" + "Sigstack: no-challenge-provided" ); } diff --git a/crates/signal-bot/src/config.rs b/crates/signal-bot/src/config.rs index 7c0c356..d2e6fa6 100644 --- a/crates/signal-bot/src/config.rs +++ b/crates/signal-bot/src/config.rs @@ -75,7 +75,7 @@ pub struct NearAiConfig { #[derive(Debug, Clone, Deserialize)] pub struct BotConfig { - /// Signal username nickname (e.g. `cipherslate`; Signal adds `.NN`). + /// Signal username nickname (e.g. `sigstack`; Signal adds `.NN`). /// Empty string disables startup username ensure. #[serde(default = "default_signal_username_opt")] pub signal_username: Option, @@ -286,7 +286,7 @@ fn default_log_level() -> String { } fn default_signal_username() -> String { - "cipherslate".into() + "sigstack".into() } fn default_signal_username_opt() -> Option { diff --git a/crates/signal-bot/src/ensure_username.rs b/crates/signal-bot/src/ensure_username.rs index 8940271..28d793b 100644 --- a/crates/signal-bot/src/ensure_username.rs +++ b/crates/signal-bot/src/ensure_username.rs @@ -60,16 +60,16 @@ mod tests { let mock_server = MockServer::start().await; Mock::given(method("POST")) .and(path("/v1/accounts/%2B15555555555/username")) - .and(body_json(serde_json::json!({ "username": "cipherslate" }))) + .and(body_json(serde_json::json!({ "username": "sigstack" }))) .respond_with(ResponseTemplate::new(200).set_body_json(serde_json::json!({ - "username": "cipherslate.01", + "username": "sigstack.01", "username_link": "https://signal.me/#eu/x" }))) .mount(&mock_server) .await; let client = SignalClient::new(mock_server.uri()).unwrap(); - ensure_signal_username(&client, "+15555555555", "cipherslate.99").await; + ensure_signal_username(&client, "+15555555555", "sigstack.99").await; } #[tokio::test] @@ -90,6 +90,6 @@ mod tests { .await; let client = SignalClient::new(mock_server.uri()).unwrap(); - ensure_signal_username(&client, "+15555555555", "cipherslate").await; + ensure_signal_username(&client, "+15555555555", "sigstack").await; } } diff --git a/crates/signal-bot/src/main.rs b/crates/signal-bot/src/main.rs index 98920f0..88a6d27 100644 --- a/crates/signal-bot/src/main.rs +++ b/crates/signal-bot/src/main.rs @@ -55,11 +55,7 @@ async fn main() -> AppResult<()> { .as_deref() .filter(|p| !p.trim().is_empty()) { - let nickname = config - .bot - .signal_username - .as_deref() - .unwrap_or("cipherslate"); + let nickname = config.bot.signal_username.as_deref().unwrap_or("sigstack"); ensure_signal_username(&signal, phone, nickname).await; } else { warn!( diff --git a/crates/signal-client/src/client.rs b/crates/signal-client/src/client.rs index 84ea2dc..664ae8e 100644 --- a/crates/signal-client/src/client.rs +++ b/crates/signal-client/src/client.rs @@ -542,8 +542,8 @@ impl SignalClient { /// Set (or refresh) a Signal username for an account. /// - /// Pass a nickname (e.g. `cipherslate`); Signal assigns a discriminator - /// (`cipherslate.54`) and returns a shareable `username_link`. + /// Pass a nickname (e.g. `sigstack`); Signal assigns a discriminator + /// (`sigstack.54`) and returns a shareable `username_link`. #[instrument(skip(self))] pub async fn set_username( &self, diff --git a/crates/signal-client/src/lib.rs b/crates/signal-client/src/lib.rs index fc2a974..de8528e 100644 --- a/crates/signal-client/src/lib.rs +++ b/crates/signal-client/src/lib.rs @@ -655,9 +655,9 @@ mod tests { Mock::given(method("POST")) .and(path("/v1/accounts/%2B15555555555/username")) - .and(body_json(serde_json::json!({ "username": "cipherslate" }))) + .and(body_json(serde_json::json!({ "username": "sigstack" }))) .respond_with(ResponseTemplate::new(200).set_body_json(serde_json::json!({ - "username": "cipherslate.54", + "username": "sigstack.54", "username_link": "https://signal.me/#eu/abc" }))) .mount(&mock_server) @@ -665,10 +665,10 @@ mod tests { let client = create_test_client(&mock_server).await; let info = client - .set_username("+15555555555", "cipherslate") + .set_username("+15555555555", "sigstack") .await .unwrap(); - assert_eq!(info.username.as_deref(), Some("cipherslate.54")); + assert_eq!(info.username.as_deref(), Some("sigstack.54")); assert_eq!( info.username_link.as_deref(), Some("https://signal.me/#eu/abc") @@ -687,7 +687,7 @@ mod tests { let client = create_test_client(&mock_server).await; let err = client - .set_username("+15555555555", "cipherslate") + .set_username("+15555555555", "sigstack") .await .unwrap_err(); assert!(err.to_string().contains("taken")); diff --git a/docker/.env.example b/docker/.env.example index 7ad9cb8..7e05478 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -1,5 +1,5 @@ # Copy to docker/.env and fill in. -# Unified CipherSlate (hub + voice + translation). +# Unified Sigstack (hub + voice + translation). SIGNAL_PHONE=+1YYYYYYYYYY NEAR_AI_API_KEY=sk-your-api-key-here @@ -14,6 +14,6 @@ LOG_LEVEL=info GROUP_PREFERENCES_PERSIST=true ENTITLEMENTS_PERSIST=true BOT_GITHUB_REPO=https://github.com/BreadchainCoop/sigstack-bot -BOT_SIGNAL_USERNAME=cipherslate +BOT_SIGNAL_USERNAME=sigstack RATE_LIMIT_GLOBAL_PER_MINUTE=10 RATE_LIMIT_PER_NUMBER_PER_HOUR=3 diff --git a/docker/.phala.env.example b/docker/.phala.env.example index a3993dd..be75c50 100644 --- a/docker/.phala.env.example +++ b/docker/.phala.env.example @@ -27,7 +27,7 @@ TRANSLATE_ALL_MAX_MESSAGES_PER_MINUTE=30 # ENTITLEMENTS_LEGACY_COMPOSE_HASH= LOG_LEVEL=info BOT_GITHUB_REPO=https://github.com/BreadchainCoop/sigstack-bot -BOT_SIGNAL_USERNAME=cipherslate +BOT_SIGNAL_USERNAME=sigstack RATE_LIMIT_GLOBAL_PER_MINUTE=10 RATE_LIMIT_PER_NUMBER_PER_HOUR=3 # Optional: inject an ops SSH pubkey so `phala ssh -i …` works. diff --git a/docker/compose.yaml b/docker/compose.yaml index a7f8e33..dd87517 100644 --- a/docker/compose.yaml +++ b/docker/compose.yaml @@ -43,7 +43,7 @@ services: - TRANSLATE_ALL__ENABLED=${TRANSLATE_ALL_ENABLED:-true} - TRANSLATE_ALL__MAX_MESSAGES_PER_MINUTE=${TRANSLATE_ALL_MAX_MESSAGES_PER_MINUTE:-30} - BOT__LOG_LEVEL=${LOG_LEVEL:-info} - - BOT__SIGNAL_USERNAME=${BOT_SIGNAL_USERNAME:-cipherslate} + - BOT__SIGNAL_USERNAME=${BOT_SIGNAL_USERNAME:-sigstack} - BOT__GITHUB_REPO=${BOT_GITHUB_REPO:-https://github.com/BreadchainCoop/sigstack-bot} - DSTACK__SOCKET_PATH=/var/run/dstack.sock - GROUP_PREFERENCES__PERSIST=${GROUP_PREFERENCES_PERSIST:-true} diff --git a/docker/phala.yaml b/docker/phala.yaml index 6950ad8..f8d2939 100644 --- a/docker/phala.yaml +++ b/docker/phala.yaml @@ -48,7 +48,7 @@ services: - TRANSLATE_ALL__ENABLED=${TRANSLATE_ALL_ENABLED:-true} - TRANSLATE_ALL__MAX_MESSAGES_PER_MINUTE=${TRANSLATE_ALL_MAX_MESSAGES_PER_MINUTE:-30} - BOT__LOG_LEVEL=${LOG_LEVEL:-info} - - BOT__SIGNAL_USERNAME=${BOT_SIGNAL_USERNAME:-cipherslate} + - BOT__SIGNAL_USERNAME=${BOT_SIGNAL_USERNAME:-sigstack} - BOT__GITHUB_REPO=${BOT_GITHUB_REPO:-https://github.com/BreadchainCoop/sigstack-bot} - DSTACK__SOCKET_PATH=/var/run/dstack.sock - GROUP_PREFERENCES__PERSIST=true diff --git a/docs/in-chat-translation.md b/docs/in-chat-translation.md index d9fe230..24af7b0 100644 --- a/docs/in-chat-translation.md +++ b/docs/in-chat-translation.md @@ -1,6 +1,6 @@ # In-chat (group) translation -Status: **MVP implemented** on the unified CipherSlate (hub menus, in-chat, Language Threads, and voice). +Status: **MVP implemented** on the unified Sigstack (hub menus, in-chat, Language Threads, and voice). One **bilingual** Signal group (e.g. English + Spanish). The bot detects which side of the pair a message is on and quote-replies with the other language in the **same** main thread. diff --git a/docs/language-threads.md b/docs/language-threads.md index acd83b0..609225c 100644 --- a/docs/language-threads.md +++ b/docs/language-threads.md @@ -42,7 +42,7 @@ N=1 (one sidecar) uses the same relay rules as N=3 — add another language late | `!commands` | Sidecar only | Compact Language Thread command list | | `!list-langs` | Any | Full Language Threads / manual `!translate` catalog (includes Basque, Swahili, and 30 other codes) | | `!help-threads` | Any | How Language Threads works (use case + flow) | -| `!help` / `!privacy` | Any | Hub menus (`!help` is always the CipherSlate hub; `!privacy` and `!verify` on this bot) | +| `!help` / `!privacy` | Any | Hub menus (`!help` is always the Sigstack hub; `!privacy` and `!verify` on this bot) | Menus: `!help` → `!translation-threads`. English-only for now (multi-language UI deferred). diff --git a/docs/one-cvm-architecture.md b/docs/one-cvm-architecture.md index 2c37852..38678fa 100644 --- a/docs/one-cvm-architecture.md +++ b/docs/one-cvm-architecture.md @@ -8,7 +8,7 @@ See also: the architecture learning [CPU TEE Whisper does not scale](solutions/a | Bot | Phone | Duty | |-----|-------|------| -| **CipherSlate** | Registered number on this CVM | Hub menus (`!help`, `!info`, `!privacy`), Language Threads, Bilingual Threads, in-chat translation, voice (`!transcription` menu, `!transcribe*`), `!verify` (one reply) | +| **Sigstack** | Registered number on this CVM | Hub menus (`!help`, `!info`, `!privacy`), Language Threads, Bilingual Threads, in-chat translation, voice (`!transcription` menu, `!transcribe*`), `!verify` (one reply) | Voice crate [`crates/signal-bot-voice`](../crates/signal-bot-voice); pairing / `PEER_PHONE` / a second Signal number do not exist. diff --git a/docs/plans/2026-08-14-001-feat-localize-bot-menus-plan.md b/docs/plans/2026-08-14-001-feat-localize-bot-menus-plan.md index 2d8cfbd..3aa590c 100644 --- a/docs/plans/2026-08-14-001-feat-localize-bot-menus-plan.md +++ b/docs/plans/2026-08-14-001-feat-localize-bot-menus-plan.md @@ -54,7 +54,7 @@ A Spanish speaker in a mixed group still gets English `!help`. The leftover `Men - R10. In a Language Thread sidecar, if the user has no explicit locale, menus default to that sidecar's language code when it is in `ALL_LANGUAGES`. - R11. An explicit user locale wins over the sidecar default, including `en`. - R12. Localized command lists keep the stacked layout in `docs/solutions/signal-mobile-menus.md`. -- R13. Hub `!help` from a sidecar still returns the CipherSlate hub menu (localized), not the thread compact list. +- R13. Hub `!help` from a sidecar still returns the Sigstack hub menu (localized), not the thread compact list. **Coverage and persistence** diff --git a/docs/solutions/signal-mobile-menus.md b/docs/solutions/signal-mobile-menus.md index 22395e3..e631c7c 100644 --- a/docs/solutions/signal-mobile-menus.md +++ b/docs/solutions/signal-mobile-menus.md @@ -14,7 +14,7 @@ Menus are **English-only** for now; multi-language UI is deferred. 2. **Section header** (optional) + optional one-line blurb. 3. **Each command** on its own line. No `cmd — desc` on one line. 4. Prefer plain `!command` lines over `- !command` bullets. -5. **Hub / nav lists** (e.g. main `!help` on CipherSlate): commands only — skip indented descriptions when they would just restate the command name. +5. **Hub / nav lists** (e.g. main `!help` on Sigstack): commands only — skip indented descriptions when they would just restate the command name. 6. **Product / how-to lists** (e.g. `!translation-in-chat`, transcription toggles): put a short description on the next line, indented with two spaces (aim ≤~40 chars). 7. **`!help` footer** is the bare command — no “Main menu” / “Show this menu” line (`!help` is implicit). 8. Prose blocks (privacy explanations, invite/status messages) stay paragraphs; only **command lists** use the forms above. @@ -22,7 +22,7 @@ Menus are **English-only** for now; multi-language UI is deferred. Hub shape: ```text -CipherSlate +Sigstack !translation-threads !translation-in-chat @@ -52,7 +52,7 @@ Optional one-line blurb. !help ``` -Language Thread sidecars use `!commands` for the thread menu (rename / leave / info). Hub `!help` always returns the CipherSlate menu, including when sent from a sidecar. +Language Thread sidecars use `!commands` for the thread menu (rename / leave / info). Hub `!help` always returns the Sigstack menu, including when sent from a sidecar. Voice transcription uses `!transcription` for its product menu (not hub `!help`). Hub `!help` / `!info` / `!privacy` and `!transcription` all live on the same bot. See [one-cvm-architecture.md](../one-cvm-architecture.md). diff --git a/docs/voice-transcription.md b/docs/voice-transcription.md index a5d177a..262b0f4 100644 --- a/docs/voice-transcription.md +++ b/docs/voice-transcription.md @@ -1,6 +1,6 @@ # Voice transcription -Status: **implemented** on the unified CipherSlate on the surviving Phala CVM. +Status: **implemented** on the unified Sigstack on the surviving Phala CVM. Speech → text via **NEAR AI Whisper Large V3** (GPU TEE). Audio is decrypted in this CVM, stripped of Signal metadata, and uploaded as a generic file. See [one-CVM architecture](one-cvm-architecture.md) and [CPU TEE Whisper does not scale](solutions/architecture-patterns/2026-08-13-cpu-tee-whisper-does-not-scale.md). diff --git a/site/README.md b/site/README.md index 8dc203e..b0458b9 100644 --- a/site/README.md +++ b/site/README.md @@ -1,9 +1,9 @@ -# CipherSlate site +# Sigstack site -Educational / marketing site for CipherSlate. +Educational / marketing site for Sigstack. **Stack:** SvelteKit (static) + Paraglide (en/es/fr via cookie) + Vitest + Playwright -**Host:** GitHub Pages at `https://breadchaincoop.github.io/sigstack-bot/cypherslate/` +**Host:** GitHub Pages at `https://breadchaincoop.github.io/sigstack-bot/sigstack/` **Design:** Small token system inspired by [Octant](https://octant.build/) accent language and [Golem Foundation](https://golem.foundation/)-like typography (DM Sans). Not affiliated with either. Products live on one `/products` page; the nav Products dropdown pins section anchors (`#language-threads`, `#in-chat`, `#transcription`). ## Local @@ -14,7 +14,7 @@ npm install npm run dev ``` -Production base path defaults to `/sigstack-bot/cypherslate`. For root-local preview: +Production base path defaults to `/sigstack-bot/sigstack`. For root-local preview: ```bash BASE_PATH= npm run build && BASE_PATH= npm run preview @@ -42,9 +42,9 @@ Optional public env (GitHub Pages-safe; never put secret keys here): | Variable | Effect | | -------- | ------ | | `PUBLIC_STRIPE_PORTAL_URL` | Success page “Manage billing” link; if unset, shows “coming soon” stub | -| `PUBLIC_SIGNAL_USERNAME_LINK` | Alpha / checkout success “Message CipherSlate” button (`signal.me/#eu/…` username share link; never put the bot E.164 here) | +| `PUBLIC_SIGNAL_USERNAME_LINK` | Alpha / checkout success “Message Sigstack” button (`signal.me/#eu/…` username share link; never put the bot E.164 here) | -After the bot claims its Signal username (startup `BOT__SIGNAL_USERNAME=cipherslate`), copy the logged `username_link` into the GitHub Actions variable `PUBLIC_SIGNAL_USERNAME_LINK` and redeploy Pages. +After the bot claims its Signal username (startup `BOT__SIGNAL_USERNAME=sigstack`), copy the logged `username_link` into the GitHub Actions variable `PUBLIC_SIGNAL_USERNAME_LINK` and redeploy Pages. ## Scripts @@ -59,6 +59,6 @@ After the bot claims its Signal username (startup `BOT__SIGNAL_USERNAME=ciphersl 1. Repo **Settings → Pages → Build and deployment → Source: GitHub Actions** 2. Merge to `main` (or run **Pages** workflow manually) -3. Site URL: https://breadchaincoop.github.io/sigstack-bot/cypherslate/ +3. Site URL: https://breadchaincoop.github.io/sigstack-bot/sigstack/ Legacy `web/` (Private AI) is unrelated — do not use it as the product storefront. diff --git a/site/package-lock.json b/site/package-lock.json index 5812f0d..fffaca1 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -1,11 +1,11 @@ { - "name": "cipherslate-site", + "name": "sigstack-site", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "cipherslate-site", + "name": "sigstack-site", "version": "0.0.1", "devDependencies": { "@axe-core/playwright": "^4.13.0", diff --git a/site/package.json b/site/package.json index 3f0da69..09bfa72 100644 --- a/site/package.json +++ b/site/package.json @@ -1,5 +1,5 @@ { - "name": "cipherslate-site", + "name": "sigstack-site", "private": true, "version": "0.0.1", "type": "module", diff --git a/site/playwright.config.ts b/site/playwright.config.ts index 1e727eb..cf9b530 100644 --- a/site/playwright.config.ts +++ b/site/playwright.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from '@playwright/test'; -const basePath = process.env.BASE_PATH ?? '/sigstack-bot/cypherslate'; +const basePath = process.env.BASE_PATH ?? '/sigstack-bot/sigstack'; const origin = 'http://127.0.0.1:4173'; export default defineConfig({ diff --git a/site/src/lib/components/InChatDiagram.svelte b/site/src/lib/components/InChatDiagram.svelte index 5c452eb..470d6ce 100644 --- a/site/src/lib/components/InChatDiagram.svelte +++ b/site/src/lib/components/InChatDiagram.svelte @@ -23,7 +23,7 @@ - CipherSlate · quote-reply + Sigstack · quote-reply 🇪🇸 Reunión en la plaza a las 3 original stays · translation below diff --git a/site/src/lib/components/PrivacyPromiseDiagram.svelte b/site/src/lib/components/PrivacyPromiseDiagram.svelte index 46aee11..2d96ed9 100644 --- a/site/src/lib/components/PrivacyPromiseDiagram.svelte +++ b/site/src/lib/components/PrivacyPromiseDiagram.svelte @@ -17,7 +17,7 @@ - CipherSlate + Sigstack TEE isolation !verify challenge you can check the box diff --git a/site/src/lib/components/PrivacyTeeDiagram.svelte b/site/src/lib/components/PrivacyTeeDiagram.svelte index 7413847..35606b8 100644 --- a/site/src/lib/components/PrivacyTeeDiagram.svelte +++ b/site/src/lib/components/PrivacyTeeDiagram.svelte @@ -1,7 +1,7 @@

A cloud host surrounds a sealed TEE. The host cannot read memory inside the sealed region where - CipherSlate runs. + Sigstack runs.

diff --git a/site/src/lib/components/PrivacyTrustDiagram.svelte b/site/src/lib/components/PrivacyTrustDiagram.svelte index 0d1c554..b93dd07 100644 --- a/site/src/lib/components/PrivacyTrustDiagram.svelte +++ b/site/src/lib/components/PrivacyTrustDiagram.svelte @@ -20,7 +20,7 @@ Phala TEE - CipherSlate + Sigstack decrypts here diff --git a/site/src/lib/components/SiteFooter.svelte b/site/src/lib/components/SiteFooter.svelte index 6df945a..17f3af8 100644 --- a/site/src/lib/components/SiteFooter.svelte +++ b/site/src/lib/components/SiteFooter.svelte @@ -7,7 +7,7 @@