Decision Log (All Projects)
Auto-generated from TRACKER.md decision logs — do not edit manually
ai-memory
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-12 | v2 rescope: database-backed MCP server | INCIDENT-044 + RESEARCH-224. File-based index fails repeatedly. Every mature system uses DB as source of truth. |
| 2026-04-12 | Custom pgvector over keeping Mem0 | Mem0 summarizes on write (lossy). Need raw storage + hierarchical schema. Same pgvector infra. |
| 2026-04-12 | Store raw, retrieve smart (Mem-Palace pattern) | Never summarize at ingestion. Structural filtering + hybrid search on read. 34% retrieval boost. |
| 2026-04-07 | Rescoped from mem0-memory-layer to ai-memory | Broader scope: unified memory, not just Mem0 install. RESEARCH-206 gap analysis. |
| 2026-04-07 | Two layers, not five | CLAUDE.md/MEMORY.md for bootstrap + Mem0 for shared knowledge. Everything else is noise. |
| 2026-04-07 | Enforcement via hooks, not discipline | INCIDENT-024 proved agent discipline fails. Hooks are the only reliable enforcement. |
| 2026-03-30 | Mem0 over custom build | 48K stars, Apache 2.0, native pgvector. Why reinvent? |
| 2026-03-30 | HAA read-only initially | Autonomous agent writing bad memories propagates to all agents. Validate first. |
| 2026-03-30 | Gemini embeddings over local | Free tier covers volume. Saves RAM vs Ollama. |
ai-newsletter
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Self-build, no beehiiv | HitCreate IS the platform. beehiiv is a competitor. RESEARCH-116. |
| 2026-03-30 | Resend for delivery | Deliverability is the only hard problem. Buy it. Build everything else. |
| 2026-03-30 | Platform modules first | Life Score = use case, HitCreate = infrastructure. Reusable for all clients. |
| 2026-04-07 | Own project (not just Life Score B5) | Newsletter is a standalone offering, not just a feature. Needs full kickstart. |
| 2026-04-07 | Resend Pro plan active | API key configured. Need sending domain DNS. |
auth
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | Auth is cross-cutting infra that blocks all products needing user login |
| 2026-03-30 | Authelia for infra auth | RESEARCH-111: 5 options evaluated. Lowest effort, lowest RAM, purpose-built. |
| 2026-03-30 | GoTrue for product auth | RESEARCH-114: Already running, $0, multi-tenant capable, mobile-friendly |
| 2026-03-30 | Resend for email | Free tier sufficient (100/day). Mister already has account from Lovable. |
| 2026-03-30 | Rejected: caddy-security | 10 CVEs in 2024, requires custom Caddy build |
| 2026-03-30 | Rejected: Authentik | ~860MB RAM — would destabilize server |
| 2026-03-30 | Rejected: custom middleware | 17-33 hours to build a worse Authelia |
| 2026-04-04 | Health check fixed | RESEARCH-156: authelia config validate replaces nonexistent healthcheck command |
| 2026-04-04 | Server-wide migration complete | 63 subdomains migrated from basic_auth to Authelia forward_auth |
| 2026-04-04 | term.hitcreate.io added to admin group | HitTerm (CloudCLI fork) added to Authelia config |
automations
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-31 | Project kickstarted | Mister's confidence blocker (4/10) needs process automation, not more products |
| 2026-03-31 | B0 completed same session | Reality check + AI survey + cron already live |
| 2026-03-31 | Bucket C, 1-afternoon booklets | 20% cap. Each booklet must be completable in a single focused session |
| 2026-03-31 | B1 is next priority | Follow-up nudges directly attack the accountability gap |
| 2026-03-31 | B2 depends on TechIRL tiers | Can't template proposals without confirmed service packages |
biz-intel
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-22 | Biz Intel split from Fin Intel | Company entity (Pty Ltd) has different compliance surface than personal/sole-trader books |
| 2026-04-22 | Airwallex = primary biz banking rail | AU-headquartered, API-first, Mister has live account, multi-currency at mid-market |
| 2026-04-22 | Stripe = agency services invoicing | Lower fee than Paddle for services, Stripe Tax handles AU GST |
| 2026-04-22 | Paddle = MoR for SaaS only (deferred) | Only needed when HitCreate Platform ships digital products |
| 2026-04-22 | Xero = export target, not system of record | Accountants know it; we own the ledger, they sign off |
| 2026-04-22 | All AI routed through LiteLLM | Per CLAUDE.md security rule #6 |
| 2026-04-22 | Bucket C with A unlock | Internal tool, 20% cap applies — but enables A invoicing |
| 2026-04-22 | B1 appetite extended to 10 days | R&D April 30 deadline is forcing function |
| 2026-04-22 | TBC (Mister to confirm before B1 start) | — |
caddy-migration
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-31 | Project kickstarted | INCIDENT-035 proved bulk Caddyfile edits are dangerous. Needs proper project treatment. |
| 2026-03-31 | Classification: I (Infrastructure), Bucket C | Internal capability, no revenue impact. 20% cap applies. |
| 2026-03-31 | 5-step staged approach | Each step isolated, verified, rollback-ready. Lesson from INCIDENT-035: never change >10 lines at once. |
| 2026-03-31 | Wildcard uses dns cloudflare with CLOUDFLARE_DNS_TOKEN | Token already in Caddy systemd env (INCIDENT-034 resolution). Module already installed. |
| 2026-03-31 | Verification script mandatory | INCIDENT-035 root cause #1: no post-deploy verification. Script must run after every reload. |
cdn-speed
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | RESEARCH-125 complete, all findings actionable |
| 2026-03-30 | Cloudflare Free only, no paid CDN | $0 covers all needs at current scale |
| 2026-03-30 | Single booklet (not phased) | Total effort ~2-3 hrs, no reason to split |
| 2026-03-30 | zstd + gzip, not brotli in Caddy | zstd native in Caddy, CF handles brotli at edge |
| 2026-03-30 | CF API for DNS, dashboard for settings | Token scoped to DNS edit only |
| 2026-03-30 | Skip wildcard proxy | CF Free doesn't support it, low-traffic sites |
chatii
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-13 | Project kickstarted | Discord/ZeroClaw adapter failed. Need owned comms platform. |
| 2026-04-13 | Next.js + Supabase Realtime stack | Zero new infrastructure. Everything already running. Per CODE-STANDARDS.md. |
| 2026-04-13 | Three faces: command center + widget + Instagram | One backbone serves internal + 2 revenue products |
| 2026-04-13 | B1 = command center first | Proven need (Mister needs it today). Widget/Instagram validated separately. |
cmd-aorus
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-07 | Project kickstarted | Home PC as second compute node |
| 2026-04-07 | GPU target: RTX 5080 SUPER (24GB) | 32B models fully on GPU |
| 2026-04-07 | Networking: Tailscale mesh | Zero config, works with NordVPN |
| 2026-04-14 | RESCOPE: Aorus becomes primary compute | VPS at breaking point (10GB RAM, 4GB swap full, load 14.0). RESEARCH-248. |
| 2026-04-14 | IDE moves to Aorus (openvscode-server) | code-server #1 RAM hog + zombie processes (INCIDENT-032) |
| 2026-04-14 | Cloudflare Tunnel for public IDE access | No port forwarding, works through NordVPN + NAT |
| 2026-04-14 | VPS downgrade to CX32 after stabilization | $30/mo saved, 8GB sufficient for edge services |
| 2026-04-14 | SSH via port 2222 (Windows→WSL2 proxy) | Windows OpenSSH unreliable on Tailscale, WSL2 SSH works |
| 2026-04-14 | Both faster-whisper + Parakeet TDT | Dual backend — whisper for speed, Parakeet for quality |
domain-management
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-31 | Project kickstarted | 80 domains across 2 registrars, no tracking, no alerts |
| 2026-03-31 | Option A: manage don't resell (for now) | Pre-revenue, <10 clients. Domain markup is ~$750/yr at 50 clients — not worth the overhead yet |
| 2026-03-31 | OpenSRS when ready, not ResellerClub | .com.au support, $100 min deposit, reliable API, Tucows-backed |
| 2026-03-31 | Cloudflare Registrar for own domains | At-cost pricing ($9.77/yr .com vs $12-15 elsewhere), free privacy, already on CF DNS |
| 2026-03-31 | 25 domains marked let-expire | Dead gaming project, dead brand variants, unused products |
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | Email broken, blocks comms and AI integration |
| 2026-03-30 | Stalwart for mail server | Lightest (~120MB), native JMAP, multi-domain |
| 2026-03-30 | Resend for outbound relay | VPS IP blacklisted, port 25 blocked |
| 2026-03-30 | Don't productize email | RESEARCH-127: build AI comms layer instead |
fin-intel
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted as Bucket C | Personal tooling research phase |
| 2026-03-30 | Promoted to Bucket B (Path B) | Build for self, architecture for product. CPA friend = validation shortcut. |
| 2026-03-30 | Provider stack: Wise + IBKR + Kraken + Xero + Sharesight | First-principles: move to API-first providers. RESEARCH-115. |
| 2026-03-30 | Up Bank rejected | User saw negative reviews. Wise has read+write API (Up is read-only). |
| 2026-03-30 | Don't be a bank | Every AU consumer neobank with own ADI licence is dead. RESEARCH-118. |
| 2026-03-30 | Odoo model: open-source core, AU-native modules | Zero open-source competition for AU CGT, super, BAS. First mover. |
| 2026-03-30 | Tax season 2026 (July-Oct) = launch window | r/fiaustralia + r/AusFinance distribution. CGT calculator as wedge. |
| 2026-03-30 | CPA friend validates tax modules | Professional validation before public release. Gate 4 shortcut. |
| 2026-03-30 | Revenue gate: 2 months post-release | Paying users or reclassify to Bucket C. |
flick-apply
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-22 | Name: Flick Apply (locked) | Mister directive |
| 2026-04-22 | Beachhead = relationship-tier, not segment | Dogfood + friends = real concierge at low effort, delays segment selection until evidence |
| 2026-04-22 | Build-gated behind recruiter preference test | Flywheel is the moat; if recruiters don't prefer the format, the product has no defensible advantage |
| 2026-04-22 | flickcv repo parked, not deleted | Apply.AI v9.2 interview flow + Firebase code is salvageable IP for B4 |
forms
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | Need structured data collection across all products |
| 2026-03-30 | SurveyJS renderer (MIT) over Formbricks | Zero new services, writes to existing Supabase tables, AI generates JSON |
| 2026-03-30 | Bucket C (internal capability) | Infrastructure module — becomes B when used for client-facing surveys |
| 2026-03-30 | Archive Formbricks fork | Vanilla clone, never deployed, separate DB = data silo |
| 2026-03-30 | Don't generalize Life Score | Too EmberFi-specific, SurveyJS is more capable for general forms |
fyidigital
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-01 | Project kickstarted | No standardised delivery pipeline exists |
| 2026-04-01 | Absorbs custom-domains + domain-management | All parts of the same pipeline |
| 2026-04-01 | Synergy Wholesale for .com.au client domains | RESEARCH-166 — AU-native, AUD, white-label |
| 2026-04-01 | Cloudflare Registrar for non-AU domains | RESEARCH-166 — at-cost, seamless DNS |
| 2026-04-01 | B1 is research-only | Need standards before building tooling |
| 2026-04-12 | B1 COMPLETE | RESEARCH-221 (1,033 lines) + CLIENT-DELIVERY-PLAYBOOK.md written |
| 2026-04-12 | Stack: Penpot + Lovable/v0 + Claude Code + Next.js | Mister: no Figma subscription, pioneer Penpot |
| 2026-04-12 | "Instant Preview" model adopted | 5-question intake → 3 live previews in <24hrs → iterate → launch in 5-10 days |
| 2026-04-12 | Min Min runs 60% of client touchpoints | Mister approves pricing, Claude Code builds |
| 2026-04-12 | Mel (Signature Social Hire) = B3 dry run | First real client through the playbook |
gws-integration
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-16 | GWS CLI chosen over separate API integrations | Collapses 5+ APIs into 1 tool. RESEARCH-054 Wave 2. |
| 2026-03-30 | Drive input pipe prioritized over Gmail send | Closes multi-AI workflow gap immediately. Lower risk. |
| 2026-03-30 | ChatGPT/Gemini save to Drive root by default | Watcher scans root, filters by recency. Config optional. |
| 2026-03-30 | Bucket B (not C) — client comms = revenue enabler | Only B9.1 is arguably C. B9.2+ directly enable client workflows. |
| 2026-03-30 | B9.1 built (8/9 done) — blocked on OAuth re-auth | Token expired. Run gws-reauth.sh to fix. |
| 2026-03-30 | Created gws-reauth.sh for headless re-auth from iPad | Manual code exchange flow. |
| 2026-03-31 | RESCOPED: Gmail integration = agency intelligence | Not inbox mgmt. Feeds Swipe Library + Sendii + Fin Intel. |
| 2026-03-31 | B9.2 rescoped: Email Triage + Classification | gmail-triage.sh built, tested, benchmarked. |
| 2026-03-31 | B9.3 rescoped: Swipe Extraction Pipeline | Extract structured cards from marketing emails. |
hands
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-18 | Project kickstarted | RESEARCH-267 identified the gap |
| 2026-04-18 | Stagehand v3 over browser-use / Playwright-solo | Model-agnostic, 44% faster via CDP, action caching |
| 2026-04-18 | Self-host on Hetzner, not Browserbase cloud | $0 infra vs $0.05/step × 1000 = $50 |
| 2026-04-18 | Node/TS, not Python | Stagehand is Node-native; all existing services on VPS can call REST regardless |
| 2026-04-18 | Port 18820, Authelia-gated | Consistent with transcriber (18800), review (others) |
hitcreate-config
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-01 | Project kickstarted | RESEARCH-163 found 0/18 repos with formatter, config drift visible |
| 2026-04-01 | GitHub Packages not npm registry | Private packages, already have hitcreate GitHub org |
| 2026-04-01 | Single repo, multiple exports | Simpler than separate repos per config type |
| 2026-04-01 | Classification O/I | Config files only, no product code |
| 2026-04-01 | B1 COMPLETE | v1.0.1 published, validated in safetii (zero type errors) |
| 2026-04-01 | exactOptionalPropertyTypes fix | v1.0.0 had wrong option name, patched in v1.0.1 |
hitcreate-review
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-14 | Project kickstarted | Gap identified: Ruttl has UX, GiveFeedback has voice-first, neither has API/data ownership |
| 2026-04-14 | React + Vite for dashboard | HitCreate standard stack (CODE-STANDARDS) |
| 2026-04-14 | Vanilla JS for widget | No framework dependency on client sites |
| 2026-04-14 | rrweb for replay (not custom) | 17K stars, PostHog/Sentry use it, well-maintained |
| 2026-04-14 | Raw Replayer API, not rrweb-player | rrweb-player is Svelte; build React wrapper (PostHog pattern) |
| 2026-04-14 | Batch AI processing | Industry standard (GiveFeedback, Marker.io). Simpler architecture. |
| 2026-04-14 | Subdomain: review.hitcreate.io | Standalone product, white-label later |
| 2026-04-14 | Monorepo: packages/widget + packages/dashboard | Widget and dashboard are separate builds, shared types |
| 2026-04-14 | Browse&Talk + Inspect Mode UX | Default: voice+click always on. Inspect: opt-in hover outlines. Mister feedback. |
| 2026-04-14 | Text fallback when mic fails | iOS mic permission failed during test. Added textarea input as fallback. |
| 2026-04-14 | Click-to-deselect toggle | Tap marked element again to remove highlight. Mister feedback. |
hitterm
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-04 | Project kickstarted | RESEARCH-175 completed |
| 2026-04-04 | Fork CloudCLI (not build from scratch) | Agent SDK + mobile UI = months saved |
| 2026-04-04 | AGPL-3.0 accepted | Internal tooling only |
| 2026-04-04 | Rust rewrite deferred to B4 | Node.js pragmatic for V1 |
| 2026-04-04 | tmux over raw node-pty | Walk-away persistence |
| 2026-04-06 | B0 completed | Deployed, 52MB RAM, Authelia |
| 2026-04-07 | RESCOPE | RESEARCH-209: "better terminal" → "AI session orchestrator". Multi-node allocation added (B3). Push notifications promoted to P0 (B2). Diff review added (B2). TypeScript migration deprioritised. |
infrastructure-scaling
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-01 | Project kickstarted | RESEARCH-162 identified server at 75-80% RAM, 3.4GB swap, 46 services |
| 2026-04-01 | No Kubernetes | Solo founder, premature complexity |
| 2026-04-01 | No hyperscaler | 3-5x cost, no revenue to justify |
| 2026-04-01 | Supabase Cloud for production | $0-40/mo, managed backups, dev/prod isolation |
| 2026-04-01 | Cloudflare R2 for photos | Zero egress fees, <$2/mo at Safetii scale |
| 2026-04-01 | Home hardware = dev only | NBN uptime insufficient for production SLA |
| 2026-04-01 | Domain registrar: Synergy Wholesale for client .com.au, Cloudflare for own non-AU | RESEARCH-166. Cloudflare doesn't support .com.au. OpenSRS is USD/overkill. Open Synergy account when first client needs domain. |
| 2026-04-01 | R2 deferred — ship with Supabase Storage first | RESEARCH-165. 1GB free = ~5 weeks. Add R2 at 800MB. Avoids scope creep. |
knowledge-library
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-12 | Project kickstarted | CAO client workflow needs central reference library |
| 2026-04-12 | Filestash over File Browser | Beautiful UI, 30MB RAM, direct filesystem access |
| 2026-04-12 | No Nextcloud/Seafile/JVM tools | Bloated, proprietary storage, INCIDENT-039 |
| 2026-04-12 | RESHAPED: file browser → LLM training corpus | Primary purpose is agent grounding + fine-tuning, not file browsing |
| 2026-04-12 | pgvector over ChromaDB/Qdrant/Weaviate | Already running, zero new RAM (RESEARCH-223) |
| 2026-04-12 | Docling over Unstructured.io | MIT, lighter, no Docker (RESEARCH-223) |
| 2026-04-12 | nomic-embed-text on cmd-aorus | 768-dim matches mem0, free, offloads VPS |
| 2026-04-12 | Bucket C → B reclassified | Corpus grounds agents for revenue work (Safetii, CAO) |
| 2026-04-12 | Paperless-ngx deferred | Docling handles PDF/OCR; Paperless adds 400MB for marginal gain |
| 2026-04-12 | Hybrid search (vector + BM25) mandatory | 20-40% better recall (RESEARCH-223) |
| 2026-04-12 | Python HTTP server over Express/Node for API | Keeps stack simple, no Node dependency for corpus |
| 2026-04-12 | LiteLLM for embeddings (not direct Ollama) | Security Rule #6, handles routing + fallback |
| 2026-04-12 | Port 5433 direct postgres (not 5432 pooler) | Pooler rejects non-tenant connections |
| 2026-04-12 | B2 DONE — 181 docs, 2632 chunks | P0 deliverables complete, P1 deferred to B3 |
| 2026-04-12 | dufs replaces Filestash | dufs does browser UI + WebDAV on same port. Filestash stopped (container kept). library.hitcreate.io → dufs. dav.hitcreate.io removed. |
leadgen
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-31 | Project kickstarted as Bucket A | This IS the revenue engine |
| 2026-03-31 | Separate cold domain required | Protect hitcreate.io reputation |
| 2026-03-31 | Instantly over self-hosted | Warm-up network worth $30/mo |
| 2026-03-31 | 14-day soft expiry on reports | Urgency without destroying the asset |
| 2026-03-31 | Phone primary, email secondary | 40-60% conversion from calls vs 1-3% from cold email |
| 2026-03-31 | Reports celebrate first, then opportunities | RESEARCH-138: ego-protective rejection kills cold audits |
| 2026-03-31 | 15 industry profiles for accurate scoring | RESEARCH-132: Wastech proved one-size-fits-all is wrong |
life-intel
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-07 | Project kickstarted as core product (not feature) | This IS the EmberFi/Life OS brain. Bigger than GWS Integration. |
| 2026-04-07 | Tiller for CBA/StGeorge (not Basiq) | No code needed — Tiller → Sheets → GWS. Basiq = 12mo contract. |
| 2026-04-07 | Gmail batch API over gws CLI for bulk | 50x-200x faster. gws stays for light reads/calendar. |
| 2026-04-07 | Pub/Sub for real-time (not polling) | 5-second classification vs 15-min polling. |
| 2026-04-07 | BullMQ + Redis for CMD-AORUS offload | Job queue with retries, dead letters. Better than SSH/REST. |
| 2026-03-31 | Junk = phishing/malware ONLY | All real brand emails are marketing reference (Swipe or Newsletters) |
| 2026-03-31 | GWS Integration rescoped → agency intelligence | Not inbox management. Feeds Swipe Library + Sendii + Fin Intel. |
| 2026-04-07 | Life Intelligence project kickstarted as core product | Supersedes GWS Integration. Full life context for Min Min. |
| 2026-04-07 | 4 Gmail accounts connected (mnthompson223, mwebb00123, fyidigital1 + mister) | All OAuth'd. GCP project published to production. |
| 2026-04-07 | Wise API connected (personal + business) | Balances live: Personal AUD $4.71, Business AUD $4.29 |
| 2026-04-07 | Life Intel API live on port 18794 | systemd service, Caddy-proxied at /life-intel/api/* |
| 2026-04-07 | Proton Bridge parked | Headless server deps issue. Follow-up next session. |
| 2026-04-07 | INCIDENT-037 resolved by Mister | Telegram plugin registration was missing from openclaw.json |
| 2026-04-07 | Morning briefing switched to Discord announce | Telegram delivery TBD |
local-trader
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-07 | Project kickstarted | RESEARCH-200, 210, 211, 212 complete |
| 2026-04-07 | Bucket A (promoted from B) | Fastest path to cash — content SEO, no code for marketplace |
| 2026-04-07 | Astro SSG stack | SEO-first, zero JS, < 200KB pages, matches CODE-STANDARDS |
| 2026-04-07 | Eucalyptus/Sand palette | Distinctly AU, avoids corporate blue, research-backed |
| 2026-04-07 | Leaflet + OSM for maps | Free ($0 vs Google $7/1000), sufficient for Phase 1 |
| 2026-04-07 | URL: /[service]/[location]/ | Matches user search intent, Angi model proven at scale |
| 2026-04-07 | 4-step lead form | 3x conversion vs single step (RESEARCH-212) |
| 2026-04-07 | Quote estimator | 4x form conversion, Google "Online estimates" filter |
| 2026-04-07 | Light mode only | Outdoor daytime use, tradies in bright sun |
mem0-memory-layer
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | 5 fragmented memory systems, multiple failed prior attempts, industry moving to shared memory layers |
| 2026-03-30 | Mem0 over custom build | 48K stars, Apache 2.0, native pgvector/Supabase support, 26% accuracy boost. Why reinvent? |
| 2026-03-30 | B0 cleanup before B1 | Risk analysis: adding 5th memory system on top of 4 broken ones = worse. Clean first. |
| 2026-03-30 | HAA read-only initially | Risk: autonomous agent writing bad memories propagates to all agents. Validate first. |
| 2026-03-30 | Gemini embeddings over local model | Free tier covers volume (~200 ops/day). Saves ~1-2GB RAM vs Ollama. Fallback: OpenAI key in .env. |
| 2026-03-30 | Embeddings through LiteLLM | Security rule (INCIDENT-016): all AI API calls must route through LiteLLM proxy. |
| 2026-03-30 | MCP stdio not systemd | Claude Code spawns MCP servers via stdio. No persistent process needed for Claude Code access. systemd only if Min Min/HAA need HTTP API. |
| 2026-03-30 | OPENROUTER_API_KEY must be excluded | Mem0's OpenAI LLM checks OPENROUTER_API_KEY first, bypasses LiteLLM. config.py only loads required keys + explicitly removes OPENROUTER. |
| 2026-03-30 | Port 5433 not 5432 | pgBouncer on 5432 returns "Tenant or user not found". Port 5433 is direct DB access. |
| 2026-03-30 | gemini-2.5-flash for LLM extraction | Cheap, fast, supports function calling. Routed through LiteLLM. Some JSON parse errors (Gemini returns malformed JSON ~30% of time) but Mem0 handles gracefully with dedup. |
min-min
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-12 | Project kickstarted (rescope from OpenClaw workspace) | Never had proper project structure despite being core product |
| 2026-04-12 | Migrate OpenClaw → ZeroClaw | RESEARCH-226: 99% less RAM, 0 CVEs, native LiteLLM/Discord, migration tool exists |
| 2026-04-12 | Discord as primary channel (not Telegram) | Mister preference. Own full stack long-term (Chatii) |
| 2026-04-12 | OpenRouter as primary model (not Gemini) | Gemini too unreliable for agent tool calling. OpenRouter auto-top-up |
| 2026-04-12 | Monthly landscape review (QUICKREF-003) | AI agent space moving too fast to review annually |
| 2026-04-14 | Rescope B9: memory architecture replaces "fix broken things" | INCIDENT-052: tool-based memory fails with non-Claude models. RESEARCH-250: industry consensus is hybrid injection. Old B9 deliverables moved to B9.5 |
| 2026-04-14 | Switch default model: openrouter-auto → gemini-2.5-pro | OpenRouter auto-routing picked models bad at tool calling. Gemini Pro better but still doesn't call tools — confirms need for injection pattern |
| 2026-04-14 | Hybrid memory injection (L0+L1+L2) over tool-based memory | RESEARCH-250: every production agent system (MemPalace, Letta, Zep, GBrain) converged on this. Model-agnostic, 8 cents/day overhead |
| 2026-04-14 | Switch model: gemini-2.5-pro → gpt-4.1-mini | Gemini tool calling unreliable (documented Google forum issues, 5 LiteLLM bugs). GPT-4.1-mini: $0.40/1M input, 97-99% tool accuracy |
| 2026-04-14 | INCIDENT-052 ESCALATED: ZeroClaw webhook is a message broker, not agent loop | Source code confirms: server crate doesn't invoke LLM, just stores messages. Tools never reach the model via webhook. 12+ hrs spent before root cause found |
| 2026-04-14 | minmin-proxy built as Discord agent | Proxy handles: memory injection (L2), tool execution (allowlist+blocklist), Claude Code spawning, typing indicator. Becomes Chatii backend |
| 2026-04-14 | Runtime decision PENDING: expand proxy vs nanobot vs fork ZeroClaw | Recommendation: expand proxy (80% done, ~300 lines to add, becomes Chatii). ZeroClaw keeps Telegram+cron only until proxy replaces it |
minmin-orchestrator
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-22 | Project kickstarted | VPS overload (load 178), need orchestration not manual SSH |
| 2026-04-22 | ZeroClaw-first, retire OpenClaw | ZeroClaw already has nodes, skills, claude_code_runner, Discord — OpenClaw duplicates at 500MB+ cost |
| 2026-04-22 | 4 booklets, 1 evening each | Small bets. Each booklet is independently useful. Circuit breakers prevent scope creep. |
mwebb-bdm
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | Internal tool to enable agency sales |
| 2026-03-30 | React/Vite/Tailwind + Supabase | Same stack as other HitCreate apps, all infra exists |
| 2026-03-30 | I-Low classification | Internal tool, one user, no auth/payments, reversible |
| 2026-03-30 | Build not buy | No existing tool integrates Trust Score + pipeline + delivery |
| 2026-03-30 | B1 = pipeline + home only | Get the core workflow live fast, layer features in B2/B3 |
safetii
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-01 | Project kickstarted | Dreamworld demo |
| 2026-04-01 | Bucket A | Known buyer |
| 2026-04-02 | Basic mode = default | Conservative industry |
| 2026-04-02 | No Microsoft SSO | Invite links sufficient |
| 2026-04-02 | safetii.org canonical | NFP positioning |
| 2026-04-03 | NFP pivot — Safetii Foundation | "Everyone deserves to be safe" |
| 2026-04-03 | Worker app permanently free | Mission-driven |
| 2026-04-03 | Brand independent from HitCreate | Enterprise credibility |
| 2026-04-04 | RESCOPE #1: full safety document platform | JSA/SWMS/SOP. SWMS legally mandatory ($3.6M penalty). Maturity model. |
| 2026-04-04 | RESCOPE #2: AI-native, AI layer first | AI is the architecture, not a feature. Build B2 (AI) before B3 (JSA) / B4 (SWMS). Without AI, complex docs are worse than Word templates. |
| 2026-04-04 | Production AI only, no degraded experience | "People churn hard on bad experience." GPT-4o Mini Transcribe + Whisper WASM offline. ~$60/yr. |
| 2026-04-04 | iOS voice = production bug, fix first | Web Speech API silent fail in PWA standalone. B1-FIX before B2. |
scout
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-26 | Project kickstarted |
sendii
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | RESEARCH-133 defines Sendii as HitCreate's comms layer |
| 2026-03-30 | Bucket B (Revenue Later) | Phases 1-2 internal, 3+ need validation |
| 2026-03-30 | Stalwart = invisible engine | Users never see Stalwart. Sendii is the product. |
| 2026-03-30 | GoTrue for auth, not Stalwart | Product auth via Supabase, not Stalwart's built-in auth |
| 2026-03-30 | React/Vite stack | Same as EmberFi, consistent across HitCreate |
server-wiki
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-12 | Project kickstarted | Need single-pane server knowledge for agents + Mister |
| 2026-04-12 | mdBook over Wiki.js/MkDocs | 6MB binary, 0MB runtime, built-in search (RESEARCH-231) |
| 2026-04-12 | Hybrid auto-gen + manual annotations | Auto: always fresh. Manual: preserved in annotations.yaml |
| 2026-04-12 | Bucket C | Infrastructure, 20% cap. Reclassify to B if agents deliver faster |
speargo
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-04 | Project kickstarted | RESEARCH-183 competitive analysis complete |
| 2026-04-06 | Safety gate is NOT default on every job | Take 5 is ambient (2-3x/day), not per-job. Gate only for high-risk flagged jobs. RESEARCH-193. |
| 2026-04-06 | V1 = AI-native tool, V2 = AI operator | Ship the tool to 3 people first. Min Min graduates to operator when patterns are proven. |
| 2026-04-06 | Quoting + invoicing in B1, not deferred | Quote and invoice are the bookends of every business transaction. YC wants one complete loop. |
| 2026-04-06 | Photo + voice → AI quote is THE differentiator | ServiceM8 needs 100 jobs (cold start). BuildFolio does this but US-only. AU market is open. |
| 2026-04-06 | Extend Safetii PWA, do not fork | Same codebase, same auth, same offline architecture. Speargo is a mode/route, not a separate app. |
| 2026-04-06 | Xero deferred to B2 | Manual "mark as paid" is fine for 3 clients. Xero sync is B2 priority. |
supabase-cloud
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-22 | Use trigger-based migration, not pre-emptive bulk move | Webb framework — premature scaling is more expensive than catch-up |
| 2026-04-22 | Flick Apply migrates to Sydney region | Pre-emptive AU residency — zero extra cost today, unblocks future gov/insurance pitches |
| 2026-04-22 | Self-hosted stays for EmberFi/Safetii/Radar until trigger | No pain signals yet |
| 2026-04-22 | This is Bucket C but forcing-function for Bucket B (Flick Apply) | Elevated priority vs pure infra C work |
swipe-library
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | Core agency capability — feeds client audits and builds |
| 2026-03-30 | CLI-first (B1), Web UI second (B2) | Mister needs capture working now; UI can wait |
| 2026-03-30 | Supabase for storage | Already running, has Storage for screenshots, avoids new infra |
| 2026-03-30 | 6 capture types | Landing, funnel, email, ad, app store, competitor — covers all agency needs |
| 2026-03-31 | B1 complete | 8 swipes captured, avg 20s. Fallback nav for heavy SPAs. No merge with Radar needed. |
| 2026-03-31 | Integration plan written | Radar feeds URLs → Swipe for deep capture. Trust audit integration = next revenue value. |
| 2026-03-31 | B2 complete — unified dashboard | Library tab added to Radar dashboard at radar.hitcreate.io. Swipe API endpoints in radar-api.js. Screenshot proxy, search, filters, detail modal. |
| 2026-03-31 | Performance overhaul | WebP (Sharp), 3 sizes (thumb/medium/full), local disk serving, streaming, lazy loading, browser pooling. Thumbs 95% smaller (450KB→40KB avg). All 9 swipes re-captured. |
troveii
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-13 | Troveii = email-native CRM (not standalone CRM) | Mister's insight: email IS the CRM, make it work properly instead of adding another system |
| 2026-04-13 | Sendii = outbound only, Troveii = inbound | Clean product boundary: people emailing you (Troveii) vs you emailing people (Sendii) |
| 2026-04-13 | Multi-provider connector architecture | Can't require people to leave Gmail. Must work with existing email. Own stack (Stalwart) for new businesses |
| 2026-04-13 | Telegram-first UX | Zero frontend build. Validates before investing in UI. Mister lives in Telegram |
| 2026-04-13 | Keep Stalwart | Only self-hosted mail server with both Admin API (provisioning) and JMAP (email access). Alternatives lack one or both |
| 2026-04-13 | Stalwart for own-stack, Gmail/Outlook for existing users | Best of both: zero-cost infrastructure for new users, zero-friction onboarding for existing users |
trust-score
| Date | Decision | Rationale |
|---|---|---|
| 2026-03-30 | Project kickstarted | RESEARCH-112+124 identified product gap |
| 2026-03-30 | Bucket A (agency tool), not B (product) | Agency use IS the concierge validation. Build what you need to sell, prove demand, then productize |
| 2026-03-30 | Phase 1 = PDF only, no dashboard | Mister works from iPad. PDF is the right format. Dashboard is premature complexity |
| 2026-03-30 | Extend GEO suite, don't rebuild | 45% of scoring already works. Build on existing scripts, don't start from scratch |
| 2026-03-30 | Hybrid model (Option 3) | Agency tool first (Bucket A), graduates to SaaS (Bucket B) only after demand proven |
| 2026-03-30 | ACCC compliance flags as AU moat | No competitor does this. First infringement notice issued March 2026 ($39,600). Market is scared |
| 2026-03-30 | Kill criteria set | 10 audits → 0 conversations = re-evaluate. 3 months no self-serve demand = no Phase 2 |
video-ingest
| Date | Decision | Rationale |
|---|---|---|
| 2026-04-14 | Project kickstarted | Replace Gemini manual workflow with automated pipeline |
| 2026-04-14 | yt-dlp over reclip/MeTube/cobalt | Best API for programmatic use, 1700+ sites (RESEARCH-247) |
| 2026-04-14 | faster-whisper over Ollama Whisper | Full control, VAD filter, word timestamps, int8 GPU (RESEARCH-247) |
| 2026-04-14 | large-v3-turbo model | Best speed/accuracy for RTX 3050 8GB (~45s/20min, 5.5% WER) |
| 2026-04-14 | Tiered transcription (captions → Whisper → Deepgram) | Skip GPU when good captions exist |
| 2026-04-14 | Bucket B | Corpus feeds agent quality for revenue work |
| 2026-04-14 | YouTube captions via cmd-aorus SSH | VPS Hetzner IP blocked by YouTube bot detection. Residential IP works. |
| 2026-04-14 | gpt-4.1-nano for summaries (not Haiku) | Fast + cheap, good structured output quality |
| 2026-04-14 | B1 DONE | YouTube caption pipeline working end-to-end. Whisper path tested but non-YouTube blocked from VPS. |
| 2026-04-14 | Gemini direct YouTube REJECTED | Gemini hallucinates video content when given URLs via chat API. Must use real transcripts. |
| 2026-04-14 | Rebuilt: real captions + Gemini summary | 3-tier: cmd-aorus SSH → VPS fallback → queue for later |
| 2026-04-14 | cmd-aorus SSH down (port 2222 reset) | Blocks all YouTube ingest + embeddings. B1.5 Cloudflare Tunnel will help. |
| 2026-04-14 | vidcap.hitcreate.io deployed | Web UI live, systemd: vidcap, port 18796 |
| 2026-04-14 | VPS YouTube-blocked | Hetzner datacenter IP blocked by YouTube bot detection. Cannot fetch captions or metadata from VPS. |