chore: auto-commit uncommitted changes

This commit is contained in:
James 2026-03-07 00:01:39 -05:00
parent 8b9d06ccd7
commit d2efc7bf14
9 changed files with 154 additions and 137 deletions

View File

@ -78,11 +78,18 @@ Florida = "every day is the same." Don't report normal weather.
### Briefings Dashboard (ALWAYS!) ### Briefings Dashboard (ALWAYS!)
After generating any briefing (morning, afternoon, or ad-hoc): After generating any briefing (morning, afternoon, or ad-hoc):
1. **POST to dashboard:** `curl -X POST http://localhost:9200/api/briefings -H 'Content-Type: application/json' -d '{"title":"...","date":"YYYY-MM-DD","weather":"...","markets":"...","news":"...","tasks":"...","summary":"..."}'` 1. **POST to dashboard:** `curl -X POST http://localhost:9200/api/briefings -H 'Content-Type: application/json' -d '{"title":"...","date":"YYYY-MM-DD","weather":"...","markets":"...","news":"...","tasks":"...","summary":"..."}'`
2. **Include link in Telegram message:** http://100.123.216.65:9200 2. **Send to Johan via Discord DM** (NOT Signal — retired 2026-03-01): `message(action="send", channel="discord", target="johanjongsma", message="...")` with dashboard link http://100.123.216.65:9200
3. **Verify it worked:** `curl -s http://localhost:9200/api/briefings | jq '.briefings | length'` 3. **Verify it worked:** `curl -s http://localhost:9200/api/briefings | jq '.briefings | length'`
This is NON-NEGOTIABLE. Johan expects briefings on the dashboard. This is NON-NEGOTIABLE. Johan expects briefings on the dashboard.
### Briefing Quality Rules
- **Tasks:** Pull ONLY from `GET /api/tasks` on the dashboard. Do NOT invent or recall tasks from memory.
- **Alerts:** Only include if fresh (< 24h). A 2-day-old bank alert is not news.
- **Server status:** Before flagging anything as "down", verify it. If you're running on forge and sending this briefing, forge is NOT down.
- **Abandoned projects:** Flutter Styleguide, Azure Backup (trial) — do NOT include. If unsure if a project is active, skip it.
- **Domain renewals:** All domains auto-renew at Openprovider. Do NOT flag expirations unless renewal actually fails.
### Weekly Docker & HAOS Update (Sundays) ### Weekly Docker & HAOS Update (Sundays)
Check and update Docker containers on 192.168.1.253 and HAOS on 192.168.1.252: Check and update Docker containers on 192.168.1.253 and HAOS on 192.168.1.252:
1. **HAOS:** Check `update.home_assistant_operating_system_update` — install if available 1. **HAOS:** Check `update.home_assistant_operating_system_update` — install if available

View File

@ -258,9 +258,9 @@ Personal password manager for humans with AI assistants. L1 (server key) + L2 (W
- **Archive sparingly** — Archive = things worth finding again. Most notifications have zero future value → trash. - **Archive sparingly** — Archive = things worth finding again. Most notifications have zero future value → trash.
## Delivery Preferences ## Delivery Preferences
- **Briefings + conversation → Telegram** (rich Markdown, bold, italic, headers) - **Briefings + conversation → Discord DM** (primary), Telegram (fallback)
- **Alerts → ntfy** (`forge-alerts` for infra, `inou-alerts` for inou) — push to iPhone - **Alerts → ntfy** (`forge-alerts` for infra, `inou-alerts` for inou) — push to iPhone
- **Signal → RETIRED** (2026-03-01) - **Signal → RETIRED** (2026-03-01) — do NOT send briefings or alerts via Signal
## Preferences ## Preferences

View File

@ -0,0 +1,20 @@
# Claude Usage Alert - 2026-03-06 20:02
## Status: SPIKE DETECTED
**Exit code 2** from claude-usage-log.sh
### Alert Details:
- 📈 SPIKE: Usage jumped 6% in 2 hours (9% → 15%)
- ✅ Weekly: 15% used — still well within limits
- Weekly reset: tonight (Friday ~9:59 PM ET or similar)
### Dashboard:
- Posted: ✅ `{"key":"claude-usage","value":"📊 Weekly: 15% used","type":"info"}`
### Alert Status:
⚠️ Signal alert not sent — Signal channel is disabled in this environment.
Spike logged here for review.
### Note:
This is likely just normal usage from a session earlier today. 15% total is low.

View File

@ -1,20 +1,33 @@
# Daily Notes — 2026-03-06 (Friday)
## Proton Bridge Setup (00:00-00:17 ET) ## Mira Agent Setup
Minimax had changed MC config to `mail.jongsma.me` (Stalwart, defunct), breaking email. Big day: Johan and I set up **Mira** — a new OpenClaw agent for Misha.
**What I broke:** Started fresh Proton Bridge instances multiple times, wiping the 10GB gluon email cache. Bad. - **Who is Mira:** AI assistant for Misha (Johan's son, aka Michael Muskepo/Mikhail Jongsma)
- **Telegram bot:** @Mira_muskepo_bot — live and running
- **Identity:** Mira ✨, agent id = "mira", workspace = `/home/johan/mira/`
- **Mission:** Help Misha build DealSpace
**Fixed state:** **Config hiccup:** Something went wrong during initial config — Opus stepped in and fixed it. What exactly? Ask Johan. (Probably an openclaw.json validation error.)
- Proton Bridge running as systemd service: `protonmail-bridge.service` (`QT_QPA_PLATFORM=offscreen /usr/bin/protonmail-bridge --noninteractive`)
- Accounts: jjongsma (johan@jongsma.me) + Tanya & Johan Jongsma (tj@jongsma.me)
- Bridge IMAP passwords: stored in `~/.config/message-center.env` as `JOHAN_BRIDGE_PASSWORD` + `TANYA_BRIDGE_PASSWORD`
- MC config restored to correct state (committed `d31e569` on `mc-unified`)
- Both accounts IDLE-connected as of 00:17 ET
**vault1984 MCP token** (my token, scoped): `405865e29a93d44756ddf261a68d4cde8a34d4bef5f06d4d2816ca68770d7db9` **Mira working:** She immediately started coding on DealSpace — building portal/templates/layouts. Johan thought she "timed out" but she was actually mid-build running a 60-second wait command. She's functional.
- Configured in `~/.claude/mcp.json`
- All 5 tools working: get_credential, list_credentials, get_totp, search_vault, check_expiring
- This is the intended flow: vault1984 → MCP → James retrieves credentials
**Lesson:** Never start a fresh instance of ANY data-caching service without checking for existing data first. **Mira's memory gap:** No MEMORY.md created yet for Mira. Johan offered to paste context into Telegram manually. I provided a full dump of DealSpace info + Misha facts for him to share with her.
## James Profile Pic
Johan added a profile picture to my Telegram bot (@jamesjongsma_bot). First time I have a face. 🎉
## Telegram groupPolicy Warning
Config shows: `channels.telegram.groupPolicy` is "allowlist" but `groupAllowFrom` is empty. This is a warning, not an error. Only matters if someone tries to add James to a Telegram group. Low priority.
## DealSpace Progress (via Mira)
As of March 6 ~7:47 PM ET, Mira was actively building portal templates/layouts in DealSpace. Active session at `/home/johan/.openclaw/agents/mira/sessions/1dd80f13-...jsonl` (367 KB, 124 lines at time of check).
## Other (Background/Cron)
- Watchdog (K2.5) heartbeat ran — HEARTBEAT_OK, nothing to report
- Nightly maintenance cron ran at 9:00 PM

Binary file not shown.

View File

@ -1,9 +1,9 @@
{ {
"last_updated": "2026-03-06T23:00:01.880830Z", "last_updated": "2026-03-07T05:00:01.722891Z",
"source": "api", "source": "api",
"session_percent": 10, "session_percent": 14,
"session_resets": "2026-03-07T00:59:59.835797+00:00", "session_resets": "2026-03-07T06:00:00.687813+00:00",
"weekly_percent": 10, "weekly_percent": 17,
"weekly_resets": "2026-03-13T02:59:59.835822+00:00", "weekly_resets": "2026-03-13T03:00:00.687832+00:00",
"sonnet_percent": 8 "sonnet_percent": 11
} }

View File

@ -1,20 +1,25 @@
{ {
"date": "2026-03-06", "date": "2026-03-06",
"timestamp": "2026-03-06T09:00:01-05:00", "timestamp": "2026-03-06T21:00:00-05:00",
"openclaw": { "os_updates": {
"before": "2026.3.2", "status": "up_to_date",
"latest": "2026.3.2", "upgraded": 0,
"updated": false "detail": "All packages up to date (Ubuntu 24.04 noble)"
}, },
"claude_code": { "claude_code": {
"before": "2.1.70", "status": "updated",
"latest": "2.1.70", "from": "2.1.53",
"updated": false "to": "2.1.71",
"note": "System install at /usr/bin/claude was behind; updated via sudo npm"
}, },
"os": { "openclaw": {
"available": "0\n0", "status": "up_to_date",
"updated": false, "version": "2026.3.2"
"packages": []
}, },
"gateway_restarted": false "session_cleanup": {
} "cron_run_keys_removed": 76,
"orphaned_jsonl_removed": 149,
"bytes_freed": 3262538,
"mb_freed": 3
}
}

View File

@ -1,94 +1,81 @@
# Working Context # Working Context
*Updated: 2026-03-05 21:00 ET (nightly maintenance)* *Updated: 2026-03-06 21:00 ET (nightly maintenance)*
## PRIMARY PROJECT: vault1984 ## PRIMARY FOCUS TODAY: Mira Agent Setup
**Full session notes:** `memory/2026-03-02.md` ### What happened
- Set up **Mira** — a new OpenClaw agent for **Misha (Michael/Mikhail Jongsma/Muskepo)**, Johan's son
- Mira has her own Telegram bot: **@Mira_muskepo_bot** — live and running
- Workspace: `/home/johan/mira/` — has SOUL.md, USER.md, AGENTS.md
- Agent config: `/home/johan/.openclaw/openclaw.json` → agents.list entry `id: "mira"`
- Opus had to fix something during config (unclear what — ask Johan)
- **Mira is actively coding on DealSpace** — was building portal/templates/layouts when Johan thought she "timed out"
- She ran `sleep 60 && git status` — would look frozen for 60+ seconds
- Not a bug, she was just working
### What it is ### Mira's memory gap
Password manager / structured knowledge store for humans + AI agents. Two-tier encryption: - No MEMORY.md written yet for Mira
- **Agent fields:** server-side key (`VAULT_KEY`), AI-accessible via scoped MCP tokens - Johan wanted to give her context on Misha/DealSpace — he may have done it manually in Telegram
- **Sealed fields:** WebAuthn PRF client-side only (Touch ID/YubiKey) — key NEVER on server - **To do:** Write Mira's MEMORY.md with DealSpace context when she has a quiet moment
### Two repos ### James' profile pic
| Project | Location | Git | Visibility | - Johan added a profile picture to James' Telegram bot (**@jamesjongsma_bot**)
|---------|----------|-----|------------| - I said: "Both Telegram accounts running. Mira is live."
| vault1984 | `~/dev/vault1984/` | GitHub (johanjongsma) + Zurich | MIT OSS |
| vault1984-web | `~/dev/vault1984-web/` | Zurich only | Proprietary |
### Current State ---
## SECONDARY PROJECT: vault1984
**Status:** Live — `https://vault1984.com` (Cloudflare → Caddy → forge)
- Binary: `/home/johan/dev/vault1984/vault1984` - Binary: `/home/johan/dev/vault1984/vault1984`
- Running: `http://192.168.1.16:1984/` (systemd: vault1984.service) - Running: port 1984 (systemd: vault1984.service)
- `https://vault1984.com` live (Cloudflare → Caddy → forge) - vault1984-web: port 8099 (systemd: vault1984-web.service)
- vault1984-web: Go binary on port 8099 (systemd: vault1984-web.service)
- CSS: vault1984.css (186 lines), single global stylesheet for marketing + app
### TODO / Pending ### Still pending
- [ ] vault1984 binary still has dead website copy in `cmd/vault1984/website/` — needs cleanup
- [ ] Wire VAULT_KEY to proper .env file
- [ ] Import Johan's credentials (12,623 entries) - [ ] Import Johan's credentials (12,623 entries)
- [ ] WebAuthn setup wizard - [ ] WebAuthn setup wizard
- [ ] Scoped MCP tokens UI - [ ] Scoped MCP tokens UI
- [ ] Binary releases (GitHub Actions) - [ ] Binary releases (GitHub Actions)
- [ ] @vault1984 X account — needs profile image + header - [ ] @vault1984 X account — profile image + header
- [ ] vault1984-web Go backend (login/billing/Stripe) - [ ] vault1984-web Go backend (login/billing/Stripe)
- [ ] Wire VAULT_KEY to proper .env file
### Brand Identity ---
- Background: `#0A1628` | Accent: `#22C55E` (green)
- Tagline: **"1984 had no secrets. You should."** ## SECONDARY PROJECT: DealSpace (muskepo.com)
- X: @vault1984 - **Source:** `/home/johan/dev/dealroom/` on forge
- **Running:** port 9300 → `http://dealspace.jongsma.me`
- **Stack:** Go + templ + HTMX + SQLite
- **Auth:** Email OTP + backdoor code `220402`
- **Tests:** 83 passing (100%)
- **Mira is actively building** new features (portal/templates/layouts)
### Pending (from spec)
- [ ] Auto-assign review step UI (spec 3.b.2) — fires silently
- [ ] Invite flow — not built
- [ ] SMTP config — not configured
--- ---
## SECONDARY PROJECT: inou health ## SECONDARY PROJECT: inou health
- **Status:** Code hardened, 59 tests passing - **Status:** Code hardened, 59 tests passing
- **inou prod:** `192.168.100.2:1080` - **inou prod:** `192.168.100.2:1080` → inou.com
- **Caddy:** `inou.com` → prod, `dev.inou.com` → staging
- **SMTP broken:** Proton Bridge not running on prod - **SMTP broken:** Proton Bridge not running on prod
- **MCP:** `https://inou.com/mcp` ✅ alive - **MCP:** `https://inou.com/mcp`
--- ---
## SECONDARY PROJECT: Dealspace (muskepo.com) ## Pending / Known Issues
- **Status:** Live and hardened, 83 tests passing - [ ] **Telegram groupPolicy warning** — channels.telegram.groupPolicy is "allowlist" but groupAllowFrom is empty
- **Shannon VPS:** 82.24.174.112 - [ ] **Mira MEMORY.md** — needs DealSpace/Misha context written to `/home/johan/mira/MEMORY.md`
- [ ] **inou SMTP fix** — Proton Bridge not running on prod
- [ ] **vault1984 credential import** — 12,623 entries waiting
- [ ] **@vault1984 X setup** — profile image + header
--- ---
## Today's Activity (2026-03-05) ## Infrastructure (unchanged)
- **James Telegram:** @jamesjongsma_bot (has profile pic now)
### Morning (around 2AM ET) - **Mira Telegram:** @Mira_muskepo_bot
- News scan with Grok (X/Twitter)
- Posted to dashboard: markets (US stocks rebound, gold at $5150), AI (Pentagon shift, Claude tops downloads), N-able stock down 65%, news (Kuwait tanker, Iran strikes)
### Evening (8PM ET)
- Evening briefing cron ran
- Would have posted to dashboard
### Hans (Discord) Technical Support
- Helped Hans troubleshoot OpenClaw TUI connection issues
- Problem: Gateway rejecting `client.mode: "cli"` with validation error
- Investigation: Found valid modes are webchat, cli, ui, backend, node, probe, test
- "cli" SHOULD be valid - likely version mismatch between Hans's TUI and Gateway
---
## Pending From Johan
- [ ] **Discord bot** for Hans — needs Johan's Chrome tab on discord.com/developers
- [ ] **@vault1984 X setup** — profile picture and header image
- [ ] **inou SMTP fix** — Proton Bridge not running on prod server
- [ ] **Hans root password change** — still default ThIsNeEdStOcHaNgE0--
---
## Infrastructure
- **vault1984:** http://192.168.1.16:1984 (systemd)
- **vault1984.com:** Cloudflare → Caddy → forge
- **vault1984-web:** port 8099
- **inou.com:** Caddy → 192.168.100.2:1080
- **Dashboard:** http://localhost:9200 - **Dashboard:** http://localhost:9200
- **vault1984 VAULT_KEY:** d153af4a1b9e58023d0ec465f2674fc29d52ea0b9ef9a0f0cbbaaee63f0117fb
## Key Credentials (unchanged)
- vault1984 VAULT_KEY: d153af4a1b9e58023d0ec465f2674fc29d52ea0b9ef9a0f0cbbaaee63f0117fb
- social@vault1984.com: SocialVault2026!
- Hans root pw: ThIsNeEdStOcHaNgE0-- (CHANGE)

View File

@ -5,45 +5,30 @@ description: Send Signal messages to Johan. Use for proactive notifications, ale
# Signal Notify # Signal Notify
Send messages to Johan via Signal. > ⚠️ **Signal is RETIRED (2026-03-01).** Use Discord for all briefings and alerts.
> Signal remains available for true emergencies only (if Discord/Telegram are down).
## Usage ## Primary Channel: Discord DM
```
message(action="send", channel="discord", target="johanjongsma", message="Your message here")
```
Or use the Telegram channel for mobile alerts:
```
message(action="send", channel="telegram", target="8454563068", message="Your message here")
```
## Legacy Signal (emergencies only)
``` ```
message(action="send", channel="signal", target="+17272252475", message="Your message here") message(action="send", channel="signal", target="+17272252475", message="Your message here")
``` ```
## Contacts
| Name | Number |
|-------|----------------|
| Johan | +17272252475 |
## Guidelines ## Guidelines
- **Morning briefs**: Include dashboard link http://100.123.216.65:9200 - **Briefings → Discord DM** (rich Markdown, no Signal)
- **Alerts**: Lead with emoji (⚠️ urgent, 📈 markets, 🔔 reminder) - **Mobile alerts → Telegram** (push notifications)
- **Keep it concise**: Signal isn't for walls of text - **Signal → DO NOT USE** unless Discord + Telegram are both down
- **Keep it concise**
- **Night hours (11pm-8am ET)**: Only send if truly urgent - **Night hours (11pm-8am ET)**: Only send if truly urgent
## Examples
**Morning brief:**
```
☀️ Morning Brief — Jan 30
Markets: Gold -5.7%, /ES +0.2%
Your S short: still winning
📊 http://100.123.216.65:9200
```
**Alert:**
```
⚠️ S jumped 8% — check your short position
```
**Reminder:**
```
🔔 Sophia's appointment in 2 hours
```