Dev Wiki
Dashboard
Changelog
Documentation
Toggle dark mode
Settings
Home
A - Z
Page Index
Archive
AWS Design
Async Embedding Pipeline
Auth
CDN Read Path
E-1 Cold Start Benchmarks
Implementation Phases
Lambda Library Mode
Operations
Phase 0 EFS Benchmarks
Phase Gates
Platform Overview
Semantic Search
AWS Tasks
E-2 CDN Read Path
E-2 CDN Read Path ClientSide
Launch Checklist
P1-9 MCP OAuth Discovery Routing
P1-9 MCP OAuth Routing
Phase 0
Phase 1
Phase 2
Phase 3
Phase 4
Prerequisites
Bugs
Semantic Search Background Sync
Design
Admin Panel Reenablement
Auth
Custom Domains
Dashboard Visibility Toggle
Data Model
E-3 Encryption Spike
E2E Testing
Frontend
Git HTTP Access
Implementation Workflow
Landing Page
MCP Server
Note Schema
Operations
P2-Username Summary
Per Wiki Database
Platform Overview
REST API
Research Wiki
Resolver
Semantic Search V2
Server Consolidation
VPS Architecture
Wiki Stats Plugin
did web Identity
Dev
2026-03-16 Beta User TLS Fix
Claude Code Memory Backup
Memory Bootstrap Guide
P1-8 E2E Test
P2-10 Summary
P2-1 Summary
P2-2 Summary
P2-3 Summary
P2-4 Summary
P2-5a Summary
P2-5b-7 Summary
P2-6 Summary
P2-8 Summary
P2-9 Summary
Phase 1 Deployment
Phase 1 Gate Results
Phase 1 Progress
Proxmox CPU Type
Underscore Filenames
V1-3 Deployment Summary
V1 SQLite Port Summary
V3 ATProto Auth Summary
V3 V5 Risk Research
V6-1 Landing Page Summary
V7 Ops Hardening
VPS Deployment Progress
VS-1 ATProto Spike
VS-2 MCP OAuth Summary
DiagTestPage
E2ETestPage
Home
Meta
Wiki Usage Guide
Minsky
Agent IRC Architecture
Directed Message Routing
IRC MCP Bridge
Plans
CI CD Pipeline
Disk Usage Caps
Login Page UX
Monitoring Dashboard
Permissions Panel Implementation
Rate Limiting And Security Headers
Security Logging
Wiki To Dashboard Navigation
Security
OWASP 2025 Audit
Tasks
Disk Usage Cap
Emergent
MCP Wiki Routing
Semantic Search Architecture
Semantic Search Multi Tenant
VPS Phases
To-Do
UserBPage
irc-plugin-design-review
An Otter Wiki
Dev
Page Index
Toggle page headings
2
2026-03-16 Beta User TLS Fix
Symptom
Root cause
Fixes deployed
1. Post-signup/login redirect (e6c5bba)
2. Private wiki auth redirect (13f4762)
3. Manual wiki creation for stranded users
Process lessons
C
Claude Code Memory Backup
Architecture
Repos and Tools
MCP Servers (DO NOT CONFUSE)
MCP Authentication
VPS Infrastructure
Process Rules
Agent Delegation Model
Implementation Workflow
Feedback Rules (Hard-Won Lessons)
Project Context
Per-Wiki SQLite DB (COMPLETED)
Cold Start / Performance
Shared Worktree Trial
User Preferences
Reference Pointers
M
Memory Bootstrap Guide
Philosophy
The Three Tiers
Tier 1: MEMORY.md (always loaded)
Tier 2: Operational rule files (loaded by scope)
Tier 3: External knowledge base (queried on demand)
Archive (cold storage)
Bootstrapping from Scratch
Step 0: Observe before writing
Step 1: Start with MEMORY.md
Step 2: Add operational rules as they emerge
Step 3: Connect an external knowledge base (if available)
Step 4: Maintain
Anti-patterns
What This System Doesn't Solve
P
P1-8 E2E Test
Status: Complete (with known gaps)
Test Results
Findings
Working
Known Gaps
Files
How to Run
Architecture Decisions
P2-10 Summary
Overview
Required Environment Variables
Test Scenarios
Design Decisions
Running
P2-1 Summary
Status: Complete
Acceptance Criteria
Files Changed
Design Decisions
Test Results
Pulumi Preview
Branch
P2-2 Summary
Deliverables
app/auth/jwt.py — Platform JWT (RS256)
app/auth/workos.py — WorkOS Integration
app/auth/middleware.py — Auth Middleware
Test Coverage (32 tests)
Design Decisions
Acceptance Criteria
P2-3 Summary
Deliverables
app/auth/permissions.py
app/auth/acl.py
app/auth/headers.py
app/models/wiki.py (modified)
tests/test_acl.py
Design Decisions
P2-4 Summary
What was built
Files
API Endpoints
Design decisions
Integration notes
Not included (future work)
P2-5a Summary
Status: Complete
Branch
Changes
New Resources (7)
Verification
Design Notes
P2-5b-7 Summary
What was built
1. app/otterwiki/resolver.py — TenantResolver WSGI middleware
2. app/otterwiki/lambda_init.py — Conditional multi-tenant wrapping
3. infra/__main__.py — Infrastructure changes
4. app/poc/mcp_server.py — Multi-tenant MCP
5. tests/test_resolver.py — 42 tests
Design decisions
P2-6 Summary
Status: Complete
Acceptance Criteria
Files Changed
Design Decisions
Test Results
P2-8 Summary
Status: Complete
Acceptance Criteria
Files Changed
Design Decisions
Test Results
Branch
P2-9 Summary
Status
Deliverables
Commands
Configuration
Architecture Decisions
Test Coverage (35 tests)
Phase 1 Deployment
Summary
Deploy Details
E2E Test Results
Changes Made
Notes
Phase 1 Gate Results
Summary
Results
Performance
Issues Found
Corrected: /pages/{path}/links was not a bug
Fixed: P1-9 MCP OAuth Routing
Note: API auth header
Go/No-Go
Post-Gate: E2E Test Coverage
Phase 1 Progress
Task Status
Architecture Decisions
apig-wsgi instead of Mangum (P1-1 / P1-3)
Zip package + Lambda layer instead of Docker (P1-3)
Single API Gateway (P1-7)
MCP on separate Lambda, no VPC (P0-7)
Plugin loading via explicit import (P1-4)
Endpoints
Also Completed (Track B / Prerequisites)
Proxmox CPU Type
Problem
Current workaround
Proper fix
U
Underscore Filenames
Status: Future work
Problem
Current state
Future feature
Scope
V
V1-3 Deployment Summary
Deliverables
Entry Points (app/)
Shared Configuration
Systemd Units (ansible/roles/deploy/files/)
Ansible Deploy Role
Requirements Added
Environment Variables
Testing
V1 SQLite Port Summary
Summary
Files Created (21 total)
Data Access Layer
Auth
WSGI Middleware
Tests
Key Schema Differences from wikibot-io
Architecture Notes
V3 ATProto Auth Summary
What Changed
Deliverables
Routes
Key Design Decisions
Schema Changes
Test Coverage
V3 V5 Risk Research
V3: ATProto OAuth Client — Risk Assessment
The cookbook demo is solid and directly usable
Scope question: RESOLVED
Remaining V3 risks
V3 verdict: LOW RISK
V5: MCP OAuth AS — Risk Assessment
What Claude.ai needs
authlib provides most of the machinery
Implementation sketch
The metadata endpoints are trivial
Remaining V5 risks
V5 verdict: MEDIUM RISK
Combined assessment
V6-1 Landing Page Summary
Status
Deliverables
Architecture
Page Structure
Design Decisions
Not Done
V7 Ops Hardening
Roles
backup (roles/backup/)
healthcheck (roles/healthcheck/)
logging (roles/logging/)
diskmon (roles/diskmon/)
Prerequisites
Semantic Search Switch
VPS Deployment Progress
Completed
V0: VM Infrastructure (2026-03-15)
V1: Otterwiki on Caddy (2026-03-15)
VS-1: ATProto OAuth Spike (2026-03-15)
V2: Migrate Dev Wiki (2026-03-15)
In Progress
VS-2: MCP OAuth for Claude.ai
V3: ATProto OAuth Production Auth Service
V3: ATProto OAuth Production Auth Service (2026-03-15)
V4: Management API + Wiki Lifecycle (2026-03-15)
V5: MCP OAuth AS (2026-03-15)
V6: Frontend + Landing Page (2026-03-15)
V7: Operational Hardening (2026-03-15)
Bugfixes (2026-03-16)
Semantic Search + Infrastructure (2026-03-17)
Not Started
Architecture Notes
VS-1 ATProto Spike
Status: COMPLETE — ready for manual deployment and testing
What was built
Key adaptations from cookbook demo
Files
Smoke test results
Dependencies
Deployment steps
What to watch for during manual testing
Findings for V3 production implementation
VS-2 MCP OAuth Summary
Problem
Solution
Changes
Configuration
Token Lifetimes
Schema
Branch
Test Results
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9