refactor(rename): branding strings + active-use docs → bitSpire

Final rename commit covering user-facing copy and the docs that
describe current state. The mechanics of the rename are done after
this; the LNbits backend swap (phase 3) is the next concern.

Code branding strings (Lightning invoice descriptions):
  apps/machine/src/services/lightning.ts
  apps/machine/src/stores/atm.ts
  docs/clink-protocol.md  (example code blocks)
    "Lamassu ATM Payment"        → "bitSpire Payment"
    "Lamassu ATM - Cash Out"     → "bitSpire - Cash Out"
    `Lamassu ATM - Buy ${n} sats`→ `bitSpire - Buy ${n} sats`

Top-level docs:
  README.md, CLAUDE.md — title + intro + dir-tree references.
  deploy/nixos/README.md — title + worktree-path commands.
  docs/machine-installation.md — opening line carries the historical
    note ("Lamassu Next" → "bitSpire"). The body still uses
    `/opt/lamassu/` paths and the `lamassu-kiosk` systemd unit
    because the dev branch is moving to NixOS disk-image flash
    (phase 4) — this AppImage-sideload doc represents the legacy
    deploy path. Leaving the LP/lamassu refs in there as part of
    its historical context; a separate doc will describe the
    NixOS path.
  .claude/skills/nostr-check.md — header only.

DELIBERATELY left as "Lamassu Next" (pedagogical / historical):
  - docs/adr/001-hal-architecture.md — frozen ADR; renaming
    distorts the historical decision context.
  - docs/architecture-comparison.md — deliberately contrasts
    "lamassu-server" (prior) with "lamassu-next" (us at the time
    of writing).

NOT done in this commit (deferred to LNbits/clean-up phase):
  - docker/docker-compose.dev.yml container names
    (lamassu-relay, lamassu-bitcoind, etc.) — these belong to the
    LP-bearing dev stack that 3c/3d will significantly reshape.

Verified: pnpm typecheck clean (12/12 cached).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-05-13 12:39:02 +02:00
commit 219e7e1e4d
8 changed files with 23 additions and 23 deletions

View file

@ -14,7 +14,7 @@ Where `target` can be:
- `--events` to validate event structures - `--events` to validate event structures
- `--relay` to check relay configuration - `--relay` to check relay configuration
## Relevant NIPs for Lamassu ATM ## Relevant NIPs for bitSpire
### Core NIPs (Must Implement) ### Core NIPs (Must Implement)
| NIP | Description | Usage in Lamassu | | NIP | Description | Usage in Lamassu |

View file

@ -1,10 +1,10 @@
# CLAUDE.md # CLAUDE.md
This file provides guidance to Claude Code when working with the Lamassu Next codebase. This file provides guidance to Claude Code when working with the bitSpire codebase.
## Project Overview ## Project Overview
**Lamassu Next** is a Nostr-native Lightning ATM system. Key principles: **bitSpire** is a Nostr-native Lightning ATM system. Key principles:
- **KYC-Free**: No identity collection, no compliance theater - **KYC-Free**: No identity collection, no compliance theater
- **Lightning-Native**: Security encapsulated in Lightning protocol - **Lightning-Native**: Security encapsulated in Lightning protocol
@ -14,7 +14,7 @@ This file provides guidance to Claude Code when working with the Lamassu Next co
## Architecture ## Architecture
``` ```
lamassu-next/ bitSpire/
├── apps/ ├── apps/
│ ├── machine/ # Electron + Vue 3 ATM kiosk application ✅ │ ├── machine/ # Electron + Vue 3 ATM kiosk application ✅
│ ├── dashboard/ # Vue 3 operator dashboard (planned) │ ├── dashboard/ # Vue 3 operator dashboard (planned)
@ -166,7 +166,7 @@ cd ~/dev/local/docker/regtest && ./start-regtest
source docker-scripts.sh source docker-scripts.sh
# Start lamassu services connected to regtest # Start lamassu services connected to regtest
cd lamassu-next/docker && ./start-with-regtest.sh cd bitSpire/docker && ./start-with-regtest.sh
# CLI helpers # CLI helpers
bitcoin-cli-sim -generate 1 # Mine blocks bitcoin-cli-sim -generate 1 # Mine blocks

View file

@ -1,4 +1,4 @@
# Lamassu Next # bitSpire
A Nostr-native Lightning ATM system. KYC-free, open source, auditable. A Nostr-native Lightning ATM system. KYC-free, open source, auditable.
@ -17,7 +17,7 @@ A Nostr-native Lightning ATM system. KYC-free, open source, auditable.
```bash ```bash
# 1. Clone the repository # 1. Clone the repository
git clone ssh://forgejo@git.atitlan.io/aiolabs/lamassu-next.git git clone ssh://forgejo@git.atitlan.io/aiolabs/lamassu-next.git
cd lamassu-next cd bitSpire
# 2. Enter the development environment # 2. Enter the development environment
devenv shell devenv shell
@ -74,7 +74,7 @@ pnpm dev # Start Electron app with hot reload
## Architecture ## Architecture
``` ```
lamassu-next/ bitSpire/
├── apps/ ├── apps/
│ └── machine/ # Electron + Vue 3 ATM kiosk │ └── machine/ # Electron + Vue 3 ATM kiosk
├── packages/ ├── packages/

View file

@ -985,7 +985,7 @@ export async function initializeLightningServices(options?: {
console.log('[CLINK] Creating invoice for', amountSats, 'sats') console.log('[CLINK] Creating invoice for', amountSats, 'sats')
const invoice = await lightningPub.createInvoice({ const invoice = await lightningPub.createInvoice({
amountSats, amountSats,
description: request.description || 'Lamassu ATM Payment', description: request.description || 'bitSpire Payment',
}) })
console.log('[CLINK] Invoice created:', invoice.paymentRequest.slice(0, 32) + '...') console.log('[CLINK] Invoice created:', invoice.paymentRequest.slice(0, 32) + '...')
@ -1225,7 +1225,7 @@ function createATMServices(
try { try {
const invoice = await lightningPub.createInvoice({ const invoice = await lightningPub.createInvoice({
amountSats, amountSats,
description: 'Lamassu ATM - Cash Out', description: 'bitSpire - Cash Out',
}) })
console.log('[ATM Service] createInvoice response:', invoice) console.log('[ATM Service] createInvoice response:', invoice)

View file

@ -696,7 +696,7 @@ export const useAtmStore = defineStore('atm', () => {
console.log('[ATM] Generating invoice for debit request...') console.log('[ATM] Generating invoice for debit request...')
const invoice = await lightningPub.value.createInvoice({ const invoice = await lightningPub.value.createInvoice({
amountSats: amount, amountSats: amount,
description: `Lamassu ATM - Buy ${amount} sats`, description: `bitSpire - Buy ${amount} sats`,
}) })
if (!invoice.paymentRequest) { if (!invoice.paymentRequest) {
@ -709,7 +709,7 @@ export const useAtmStore = defineStore('atm', () => {
invoice.paymentRequest, invoice.paymentRequest,
{ {
amountSats: amount, amountSats: amount,
description: `Lamassu ATM - Buy ${amount} sats`, description: `bitSpire - Buy ${amount} sats`,
} }
) )

View file

@ -1,4 +1,4 @@
# Lamassu ATM NixOS Deployment # bitSpire NixOS Deployment
NixOS configuration for deploying Lamassu Next ATM software on UP Board hardware. NixOS configuration for deploying Lamassu Next ATM software on UP Board hardware.
@ -162,7 +162,7 @@ sudo nixos-rebuild switch --flake /etc/nixos#lamassu-atm
```bash ```bash
# Build new version # Build new version
cd lamassu-next/apps/machine cd bitSpire/apps/machine
pnpm run build pnpm run build
# Copy to ATM # Copy to ATM
@ -177,7 +177,7 @@ ssh lamassu@<atm-ip> "sudo systemctl restart lamassu-atm"
For development/testing, you can use the regtest docker environment: For development/testing, you can use the regtest docker environment:
```bash ```bash
cd lamassu-next cd bitSpire
./docker/dev.sh up --fund ./docker/dev.sh up --fund
./docker/dev.sh atm ./docker/dev.sh atm
``` ```

View file

@ -52,7 +52,7 @@ const noffer = encodeNoffer({
pubkey: 'abc123...', // ATM's pubkey (or Lightning.Pub's pubkey) pubkey: 'abc123...', // ATM's pubkey (or Lightning.Pub's pubkey)
relay: 'wss://relay.example.com', relay: 'wss://relay.example.com',
priceType: 'spontaneous', // Customer chooses amount priceType: 'spontaneous', // Customer chooses amount
description: 'Lamassu ATM - Cash Out', description: 'bitSpire - Cash Out',
}) })
// Result: noffer1qqs8h5mrx8v9... // Result: noffer1qqs8h5mrx8v9...
@ -337,7 +337,7 @@ Used to create, update, or revoke payment offers.
// ATM generates noffer for cash-out // ATM generates noffer for cash-out
const noffer = clink.createOffer({ const noffer = clink.createOffer({
priceType: 'spontaneous', priceType: 'spontaneous',
description: 'Lamassu ATM - Cash Out', description: 'bitSpire - Cash Out',
}) })
// Display QR code with noffer // Display QR code with noffer

View file

@ -1,6 +1,6 @@
# Machine Installation # Machine Installation
This document describes how to deploy the Lamassu Next ATM software to a Sintra machine. This document describes how to deploy the bitSpire ATM software to a Sintra machine. (Historical name: "Lamassu Next" — renamed on the `dev` branch as part of the LNbits-backend transition.)
## Prerequisites ## Prerequisites
@ -43,7 +43,7 @@ These can be self-hosted or provided by a third party.
``` ```
release/ release/
├── Lamassu ATM-0.1.0.AppImage # Portable executable (recommended) ├── bitSpire-0.1.0.AppImage # Portable executable (recommended)
└── linux-unpacked/ # Unpacked application directory └── linux-unpacked/ # Unpacked application directory
``` ```
@ -56,21 +56,21 @@ The AppImage is a self-contained executable that works on any Linux distribution
1. Copy to Sintra: 1. Copy to Sintra:
```bash ```bash
scp "apps/machine/release/Lamassu ATM-0.1.0.AppImage" user@sintra:/opt/lamassu/ scp "apps/machine/release/bitSpire-0.1.0.AppImage" user@sintra:/opt/lamassu/
``` ```
2. Make executable: 2. Make executable:
```bash ```bash
ssh user@sintra ssh user@sintra
chmod +x "/opt/lamassu/Lamassu ATM-0.1.0.AppImage" chmod +x "/opt/lamassu/bitSpire-0.1.0.AppImage"
``` ```
3. Test manually: 3. Test manually:
```bash ```bash
export DISPLAY=:0 export DISPLAY=:0
"/opt/lamassu/Lamassu ATM-0.1.0.AppImage" --no-sandbox "/opt/lamassu/bitSpire-0.1.0.AppImage" --no-sandbox
``` ```
### Option B: Unpacked Directory ### Option B: Unpacked Directory
@ -145,7 +145,7 @@ Create `/etc/systemd/system/lamassu-kiosk.service`:
```ini ```ini
[Unit] [Unit]
Description=Lamassu ATM Kiosk Description=bitSpire ATM Kiosk
After=graphical.target network-online.target After=graphical.target network-online.target
Wants=network-online.target Wants=network-online.target