Recent Changes And Evolution

Last updated: July 24, 2026

Recent Changes & Evolution

The dLANDiscord project has evolved significantly since its inception in 2021. This document tracks the major shifts, including the 2026 architectural overhaul.

๐Ÿ“… Late July 2026 - dIRC Services Daemon (dircservices)

A new standalone package โ€” dircservices/ โ€” implements a full IRC services daemon linking into UnrealIRCd as a U:Lined S2S peer (services.dlan, irc.dlan:6700). 14 pseudoclient services shipped in 3 milestone waves plus a gap-fill session, all built between 2026-07-23 and 2026-07-24 (โ‰ฅ20 commits). Pure Go (modernc.org/sqlite, no CGO, no AI deps).

๐Ÿ—„๏ธ Foundation (M1)

Commit Change Files
58a8405d dIRC analysis + dLAN Services plan docs docs/dIRC_Analysis.md, docs/dLAN_Services_Plan.md (new)
c0f7683e dirc client: default SASL off + Anope-compatible NickServ flow for UnrealIRCd (pre-M1 alignment) dirc/dirc.go, dirc/ircagents.go
c7487f5f Scaffold dircservices/ package โ€” config, crypto, opertypes, protocol interface, pseudoclient placeholder 9 new files
90401a55 SQLite store โ€” WAL + integrity_check/restore + backup rotation + ~40-table schema store/{store,backup,schema}.go (new)
781d9a51 protocol/unreal4 TS6/UID S2S handshake + dispatch + 4 tests protocol/unreal4/{handshake,uid,svs,dispatch,messages}.go + test
4e2f0302 Wire unreal4 โ†’ Protocol interface + real link config (config.example.json) protocol/*, config/*
5686dafb M1 smoke harness verified โ€” link established on irc.dlan:6700 (EAUTH-before-SID order fix) cmd/dircservices/main.go, protocol
dec1d2e5 M1 smoke results logged docs/dLAN_Services_DevLog.md

Wire protocol: PASS โ†’ PROTOCTL NOQUIT TOKEN SSJ3 ... PROTOCOL=1202 โ†’ PROTOCTL EAUTH=services.dlan โ†’ PROTOCTL SID=00X โ†’ PROTOCTL TS=<unix> โ†’ SERVER services.dlan 1 :dLAN IRC Services โ†’ peer SERVER + EOS (Unreal uses EOS not Anope's SVINFO).

๐Ÿ›ก๏ธ M2 โ€” Global, NickServ, OperServ, ChanServ, HostServ

Commit Change Files
4e4e930b Pseudoclient framework + UserRegistry + Global + OperServ essentials; services/services.go Registry pseudoclient.go, state/users.go, services/{services,global,operserv}/*
b37d1b54 NickServ (REGISTER/IDENTIFY/GHOST/INFO/AUTOOP/VHOST/HELP/STATUS); Kill added to protocol interface services/nickserv/, store/store.go, protocol/unreal4/svs.go
b928edc6 HostServ + wire all M2 services + shared IdentifiedMap (sync.Map, NickServ writes/ChanServ reads) services/hostserv/, store/vhost.go
15940f28 ChanServ โ€” REGISTER/ACCESS/AKICK/MODE/KICK/BAN/TOPIC/OP/DEOP/HELP; 5 access levels (0/100/200/300/400) services/chanserv/, store/chanserv.go
ae91b304 Fix groupโ†’group_name rename in group_members (SQLite reserved word) store/schema.go

๐ŸŽฒ M3 โ€” BotServ, ALIS + ChannelRegistry, GroupServ

Commit Change Files
e210c2eb Add Kick to Protocol interface + group_invites schema protocol/protocol.go, protocol/unreal4/svs.go, store/schema.go
bea9c8f1 ALIS + ChannelRegistry โ€” LIST w/ filters (glob, ยฑmembers, -topic, -mode) + channel tracking state/channels.go, services/alis/alis.go, store/botserv.go
19dd3a42 BotServ โ€” BOT/ASSIGN/BADWORDS/KICK enforcement/SET/INFO; real-time kick engine via OnPrivmsg (CAPS/FLOOD/REPEAT/BOLDS/COLORS/ITALICS/REVERSES/UNDERLINES/AMSG) services/botserv/
381b5016 GroupServ โ€” REGISTER/DROP/JOIN/PART/INVITE/FLAGS/SET/INFO/LIST; r/F/c flags model services/groupserv/, store/groupserv.go

๐Ÿ“Š M4+M5 โ€” StatServ, SecureServ, GameServ, IdleRPGServ, LoveServ

Commit Change Files
23db538c All 13 v1 services implemented โ€” StatServ (snapshot loop), SecureServ (DNSBL+clone+flood+proxyscan), GameServ (calc/8ball/roll/rps/namegen/lottery/trivia), IdleRPGServ (idle-to-level + 30-90min quests), LoveServ (16 gestures) 30 new files in services/{statserv,secureserv,gameserv,idlerpg,loveserv}/ + store/* + data/trivia/*.txt
146b4e40 M4+M5 smoke test results verified end-to-end vs irc.dlan:6700 โ€” 13 regulators + full channel burst clean shutdown docs/dLAN_Services_DevLog.md

Smoke test (commit 23db538c): 13 UIDs introduced in burst (00X001โ€“00X00D), peer SID 001 + EOS synced, 14-channel burst captured (WeatherWatch, FoodFacts, TechTrivia, DadJokes, MovieQuotes, BTC, ChristmasCountdown, random, general, Solana, dBot, NOC, Agents, opers), clean reverse-order shutdown on SIGTERM.

๐Ÿ“š Gap Fill (2026-07-24) โ€” HelpServ, full NickServ, OperServ expansion, ChanServ SET, HostServ approval, lifecycle hardening

Commit Change Files
2fb10a93 NickServ profile expansion (8 social/identity columns) + HelpServ multi-language ({LANG}.{Svc}.md โ†’ base โ†’ EN fallback) + 13 EN.*.md per-service docs services/{nickserv,helpserv}/*, store/store.go, docs/EN.*.md
b6a3974e Lifecycle hardening (panic recovery in dispatch, Reconnect() + auto-reconnect exponential backoff, store close on panic) + ChanServ expansion (19 SET sub-cmds, 8 user modes, 13 utility cmds, FDROP/STATUS/WHY/UP/DOWN/RECOVER/LIST) + HostServ approval queue (REQUEST/WAITING/ACTIVATE/REJECT) + bulk ops (SETALL/DELALL/GROUP/VHOSTNICK) + shared vhost pool (OFFER/TAKE/UNOFFER) at ~100% + NickServ REGAIN/two-arg IDENTIFY/SET KILL QUICK/ACCESS CLEAR + OperServ OPER INFO/STATS per-type/LOGSEARCH + BotServ fantasy routing โ†’ GameServ + GameServ per-channel context + GroupServ SET PASSWORD/JOINFLAGS/GROUPFLAGS + LoveServ per-channel MUTE + most-slapped + SecureServ WALLOPS oper notify + rewrite all 13 EN docs 23 files (see DevLog 2026-07-24 session 3)

This session also added HelpServ (HELP <service> [command], LIST) as the 14th service โ€” reads ## headers from dircservices/docs/*.md, language-aware via NickGetLanguage. Smoked: 14 services operational. Undocumented M2 skeleton (47-line NickServ with only HELP) was fully rewritten to ~17 commands โ€” noted as a critical lesson on subagent accountability (see DevLog 2026-07-24 gap audit).

Architecture Notes

  • Decoupled from dirc + assistant: the dirc client still connects as a regular IRC user, while dircservices is the S2S services peer owning nickname/channel registration, oper tooling, and games.
  • Protocol interface: 28 methods + 11 multi-subscriber On* event hooks (RLock + snapshot copy + dispatch loop) โ€” services share UserRegistry / ChannelRegistry / IdentifiedMap.
  • Per-operation ordering: OnUIDIntroduce โ†’ UserRegistry โ†’ service subscribers; OnPrivmsg โ†’ BotServ kick engine โ†’ flood counters โ†’ StatServ line count.
  • Operator types: access.OperType glob (path.Match) privileges installed at startup; pseudoclient.IsOper(cfg, nick) for oper-gated commands.
  • Gated but not enforcing (v1): NickServ ENFORCE engine (60s nick reservation), ChanServ mode-drift ENFORCE, HostServ actual vhost application via SVSMODE โ€” all stored/parsed but enforcement deferred.

See: dIRC Services Overview ยท Services Suite ยท dIRC overview


๐Ÿ“… July 2026 - ServerPing, Tool Timeouts, dMUD Realm Model, Agent Model Migration, Reliability Round

July 2026 brought a new infrastructure monitoring package (ServerPing), a centralized tool timeout system, the dMUD realm/zone world model, a wave of agent model migrations off gemma2:2b, and a deep reliability fix round covering tools, SSH, memory distillation, and Mission Control.

๐Ÿ“ก ServerPing โ€” Multi-Server Monitoring (new package serverping/)

Commit Change Files
11f7513c New serverping package โ€” TCP/HTTP/SSL monitoring for all dLAN servers with per-group WhatsApp alerts + /server-ping web dashboard serverping/serverping.go (new), main.go
472de083 Fix display names for monitored servers serverping/serverping.go
0d47017a Fix ping targets for Enterprise and Enhanced servers serverping/serverping.go

Monitors 5 servers across 3 WhatsApp groups (Sysafe, LondonHosting, Delicious). Checks TCP ports, HTTP response codes, and SSL certificate expiry. Alerts on failure, recovery message on restore.

See: ServerPing Overview

โฑ๏ธ Tool Timeout Tiers (new file assistant/tooltimeouts.go)

Commit Change Files
011e8038 Fix shell_execution (10s โ†’ 90s) and remote_ssh_execution (dead 60s entry โ†’ explicit 360s) assistant/tooltimeouts.go
ebb3dbf8 Fix den_file_upload + execute_python_code โ€” tools never worked; log dropped Error text assistant/assistant.go

Centralized per-tool timeouts with 4 tiers (Fast 5s, Normal 45s, Slow 120s, Extended 300s). Key overrides: call_agent 25m, execute_playbook 15m, plan 10m, remote_ssh_execution 360s. The old dead "remote_ssh" map entry was a silent bug โ€” never matched actual tool names.

See: Tool Timeout Tiers

๐ŸŒ dMUD Realm/Zone Model

Commit Change Files
68b26338 Multi-realm world architecture โ€” room_meta.go, realm/zone derivation, home bind, stable dailies, mode-aware /play dmud/room_meta.go (new), dmud/room.go, dmud/user.go, dmud/quest.go, dmud/web_handlers.go, 80 files changed
a4af856b New /what status command โ€” everyday snapshot with room, quests, next-up hints, pet, tip dmud/commands.go
2434e010 Tutorial T0/T1 polish โ€” coach Guide NPC, starter quest chain, claim UX dmud/commands.go, dmud/data/scripts/tutorial_guide.lua, dmud/data/quests/tutorial.ini
84cf52ee /play tab UI improvements + dMUD analysis docs dmud/web_handlers.go, dmud_analysis/ (new)

Rooms now auto-derive realm and zone from ID/theme. Room modes: ambient, rpg, hub, social, partyline. WoW Classic Elwynn realm (17+ rooms) separated into its own realm. Home bind allows /bind and /home. /what provides a quick "how am I / what next" snapshot without the full /stats sheet.

See: Realm/Zone Model ยท WoW Elwynn Realm

๐Ÿ–ฅ๏ธ Mission Control โ€” Live Den Shell & Enhancements

Commit Change Files
03bdd6d9 Live den shell tab, company comments, load bar assistant/missioncontrol.go, assistant/nikkishell.go, assistant/static/mission_control_modals.js
0bb86b02 Repair modals.js parse error + task board fixes assistant/static/mission_control_modals.js

New MC features: interactive shell access to Nikki's den (live terminal), company comment threads on business entries, and a visual load bar for long-running operations.

See: Mission Control Depth

๐Ÿ›ก๏ธ Graceful Shutdown System (new file assistant/graceful.go)

New ShutdownManager coordinates orderly shutdown across all subsystems. Each subsystem implements Stop() (graceful drain) + ForceStop() (emergency) with per-component timeouts and a 2-minute global hard cap. Panic-safe callbacks prevent cascading failures during shutdown.

See: Graceful Shutdown

๐ŸŽฎ Larry Castaway Enhancement

Commit Change Files
412349be Embed HTML, delta-time animation, local image serving, robust fallbacks larrycastaway/index.html, larrycastaway/larrycastaway.go, main.go

Game now uses //go:embed for the HTML bundle (no filesystem dependency), delta-time based animation for frame-rate independence, and local image serving with graceful fallback.

๐Ÿ“Š WoW Check Site Overhaul

Commit Change Files
1d25cd66 SVG progress charts, path traversal fix, IDโ†’name map perf fix, templating overhaul wowcheck/wowcharts.go (new), wowcheck/wowchecksite.go, wowcheck/wowchecksite_test.go (new), templates/char.html
df85a194 Fix 6-field cron spec parsing โ€” WoW summaries were dead main.go, wowcheck/wowcheck.go

New wowcharts.go generates SVG progress charts per metric on character pages (90d/180d toggle). Path traversal vulnerability fixed via allowlist. Performance improved by replacing per-ID JSON re-parsing with IDโ†’name maps (O(nยฒ) โ†’ O(n)). httptest smoke tests added.

๐Ÿ”ง Agent Model Migration โ€” gemma2:2b Purge

Commit Change Files
f7731c85 Swap Skutters from gemma2:2b โ†’ qwen2.5:3b โ€” gemma template can't do tool calls assistant/prompts/agent/skutters.md
2b4a8f65 Swap remaining gemma2:2b primaries (analyst, auditor, researcher, reviewer, robocop) 5 agent .md files
7b64d7c0 Downgrade Delicious primary to flash-lite assistant/prompts/agent/delicious.md
aa77f201 Sysadmin/sysafe to NIM glm-5.2; shell heredoc guard; technitium type aliases agent .md files, assistant/nikkishell.go, sasha/technitium_dns.sh

gemma2:2b models were fundamentally unable to produce tool-call output due to Jinja template incompatibility. All remaining primaries migrated to qwen2.5:3b or glm-5.2.

๐Ÿ”’ SSH Case-Insensitive Registry

Commit Change Files
82ced841 Case-insensitive registry lookup + short-name aliases for SSH host matching dpersistantssh/dpersistantssh.go

SSH host lookup now case-insensitive with short-name aliases (e.g., druid matches druid.sysafe.co.uk). Prevents silent connection failures from case mismatches in tool configurations.

See: Persistent SSH Overview

๐Ÿงน Reliability & Fix Round

Commit Change Files
5a4c86c2 Circuit breaker defer+notify, recovery nil panic, placeholder guard, execute_tool strip, WIS unmarshal, flash-lite registration assistant/adaptive_planner.go, assistant/assistant.go, assistant/assutils.go, assistant/conversation_intelligence.go, assistant/scheduler.go
ee00f7d9 Stop <thinking> / <tool_call> tags leaking into messages assistant/assistant.go, assistant/assutils.go, assistant/planner.go
eeb616a9 Reject raw HTML masquerading as markdown in view_website_as_markdown assistant/prompts/tools/shared/view_website_as_markdown.sh
1a4aa9c5 Stop hardcoding Source: Wowhead regardless of content in WoW playbook assistant/playbooks/global/wow_news_briefing.json
3845b7e4 manage_notes is_agent_note no longer required 5 tool .md files
4cc41bfa Stop rejecting items findTask already found in another list assistant/notes.go
6ebfc040 Repair unescaped embedded quotes and mid-string fences in JSON assistant
9c5deb1b Surface silently-recovered watchdog timeouts in scheduler assistant/scheduler.go
2d70fa07 Stop overnight distillation contention + timeout collapse assistant/conversation_intelligence.go, assistant/heartbeat.go
3f6e9a7d Finish dead-model purge; repair summary-chain provider bug assistant/assutils.go, assistant/multillm.go, assistant/planner.go
e5c906e9 Purge dead fallback models; retune memorymaster; kill summarizer false lead assistant/assistant.go, assistant/assutils.go, assistant/free-models.go

๐Ÿ“ˆ Scheduler & Heartbeat Fixes

Commit Change Files
30121bf5 Once-daily low-credits admin alert on any HTTP 402 from OpenRouter assistant/openrouter_client.go, assistant/scheduler.go
459f8e76 Route quiet-hours heartbeat ticks to cheaper model (MVP) assistant/heartbeat.go
0c6da5a4 Stop merging 4 architect audit types into one TaskType bucket assistant/architect.go
1baf11ce Trim Loop 4 to safe scope, fix dead timing on 2 loops assistant/heartbeat.go
99e3062c Stop internal-text leaks to WhatsApp assistant
d104d5ed Same-run recipient tier in double-delivery dedupe assistant/scheduler.go
383c4781 Content-based double-delivery dedupe (guard v2) assistant/scheduler.go
fd66d9c8 Remove [DONE] prompt hint that suppressed briefing delivery assistant/scheduler.go
4b7b349f Skip completion notification when session already delivered assistant/scheduler.go
95233d34 Outbound message audit round โ€” wakeup, monitor sweeps, heartbeat interims, scheduler warnings multiple files

๐Ÿค– Nikki Delegation Observability

Commit Change Files
9452b2dc New get_delegation_status tool + improved delegation summaries/observability assistant/assistant.go, assistant/nikkishell.go, assistant/prompts/tools/nikki/get_delegation_status.md (new)
b996e77d Stop paying for async-delegation capability her own directive already forbids assistant/nikkishell.go
5a761b2c Cap get_nikki_shell_history output at the source assistant/nikkishell.go

Nikki can now query get_delegation_status to see pending/recent delegations, which agents were used, and high-level results โ€” maintaining orchestration awareness without remembering every detail.

๐Ÿ” PromptIntel Shield Fixes

Commit Change Files
6cf39399 Parse full PromptIntel feed responses (array vs object shapes) assistant/shield/shield_sync.go

๐Ÿ“… June 2026 - SHIELD, Console, Agentic Flow, Custom Skills, dMUD Seasonal + WoW Realm

June 2026 brought a new security detection layer (SHIELD), a live-log Console tab in Mission Control, the custom-skill scoping pipeline, and a major dMUD content pass (seasonal events + WoW Classic Elwynn realm). Agentic-flow reliability saw a batch of fixes around async delegation, watchdog races, and playbook rendering.

๐Ÿ›ก๏ธ SHIELD Detection System (new package assistant/shield/)

Commit Change Files
be1bfc61 Wire early-return + hard block for protected roles on critical/suspicious matches assistant.go
88572533 Phase 2 feed syncer (PromptIntel pull) via subagent shield/shield_sync.go (new)
d93b0934 Integrate syncer startup (StartFeedSync + SyncNow) via sync.Once after shield.Init assistant.go
91365cba SHIELD.md generator (GenerateSHIELDMD + generateAndWrite on Init) + base data/shield/SHIELD.md shield.go, data/shield/SHIELD.md
318aa581 MC SHIELD tab(s) integration + prerequisite enhancements missioncontrol.go, shield/, static/mission_control.js
6ec08e26 / f66d0d57 Resolve duplicate GetRecentDecisions / GetLast* declarations shield.go, shield_sync.go
29b4ebae Hardcode PromptIntel API key, lazy syncer init, improved MC status shield_sync.go, assistant.go, static/mission_control.js
ebb9a312 / 03f9b54a / 28b1610d Fix PromptIntel response parsing (array vs object shapes) โ€” Data is now json.RawMessage and dispatches on first non-whitespace byte shield/shield_sync.go
64678479 Tune seed rules (broad_simple_examples.json) to avoid overblocking data/shield/seeds/

See: SHIELD System

๐Ÿ–ฅ๏ธ Mission Control โ€” Console Tab (commit ec309850)

New Infrastructure-segment tab between Servers and Radar that live-streams /root/botlog.log via 1.5s polling.

  • New route /api/mc/console/logs + mcConsoleLogsHandler + readTailLines / readLinesFromOffset helpers in missioncontrol.go
  • New tab_console.html template, mission_control_console.js, base.html nav button, switchTab hook in mission_control.js
  • 5 operator features delivered: auto-scroll toggle, pause/resume, text filter, log-level colour coding, clear screen
  • 5000-line DOM cap, status bar, "file not found" banner, HTML auto-escaping via textContent

See: Mission Control Console

๐ŸŽจ Custom Skill Scoping Pipeline

A multi-commit pass (14590034 โ†’ 115734d7) introduced owned / scoped custom skills alongside the existing global AntFarm skills catalog.

Commit Change Files
f9d68aa4 Wire initial skill activation in NewChatSession for custom/system SkillID at creation time assistant.go
627860cb Inject active skill system_prompt_suffix into generateStaticPrompt for main agents assistant.go
b5c603ff Correct delegation skill inheritance via parentSessionRef; fix ActivateSkill Field literals + ContextMgr ref skills infra
8fa2070b Security: remove blanket RBAC bypass for skillID in NewChatSession โ€” skills only augment tools, role checks always apply assistant.go
b12737ba skill_lookup supports activate action + scope / owner in results for custom skills skill_lookup
bb1715d5 Docs: update skill_lookup.md for activate action + custom scoping skill_lookup.md
014a5526 Implement create_skill tool (writes scoped custom skill JSON + auto-activates + registers) create_skill
b3f70923 skill_lookup search respects scoping โ€” users see own + global, agent-private filtered skill_lookup
115734d7 Remove unused swarm_config from example YouTube custom skills; fix required tool name to youtube_toolkit example skills

Design doc updated multiple times: 14590034, 87827be8, 4c3c092f, 2dbccdf7, b04158f9 (skills_scoping_design.md + nikki.md + create_skill.md).

See: Skills System โ€” Custom Skill Scoping

๐ŸŒณ dMUD Seasonal Event System & WoW Classic Elwynn Realm

Commit Change Files
b03682a6 New seasonal.go (seasons, festivals, weather, seasonal stat bonuses, seasonal NPC spawns) + events.go new EventTypes (seasonal/seasonal_start/seasonal_end/weather/festival/random) + new actions give_xp / apply_seasonal_bonus / set_weather dmud/seasonal.go (new), dmud/events.go
3deed0af Per-system seasonal integration โ€” rooms + NPC Lua APIs dmud/
3d8f05ff Character pass โ€” seasonal stat bonuses + seasonal equipment effects (SeasonalStatBonus) dmud/
9fe6c6be Stop holiday_end events from re-triggering every minute dmud/events.go
7ca5ec6f WoW Classic Elwynn Forest realm โ€” 9 rooms + 8 NPCs dmud/data/rooms/wow_.ini, dmud/data/scripts/wow_.lua
48bdf8be Rename wow_elwynn_portal โ†’ wow_azeroth_gateway (lore accuracy) room INI
b84e0e53 Expand Elwynn Forest โ€” 8 new rooms, 7 NPCs, 2 expansion hooks (Westfall / Redridge stubs) room INI + scripts
67cfe10 Enable WoW Classic realm dmud
693b5583 / 2d896c1d Separate RPG worlds by theme (multi-realm architecture) dmud
964dd80c Fix /play page keyboard input and disconnect message display dmud frontend
a26e29d9 dmud frontend refresh: Play tab, world life stats, improved users page dmud/data/admin

See: Seasonal Events ยท WoW Elwynn Realm

โš™๏ธ dMUD Async Pipeline & Structured Logging

Commit Change Files
0e155400 Async command pipeline with per-session worker goroutine โ€” bounded buffered channel (cap 16), non-blocking enqueue + drop-on-full warn, 30s per-command context timeout, atomic response + prompt render (eliminates ambient interleaving) dmud/pipeline.go (new), dmud/server.go, dmud/user.go, dmud/input_test.go
29de0c56 Structured logging with log/slog โ€” new dmud/logger.go (per-component sub-loggers + domain helpers), ~100 log.* calls across 17 files migrated, log.Fatalf โ†’ slog.Error (no fatal exits in library code) dmud/logger.go (new), 17 files
c3810acd Panic fix โ€” Logger initialised as package-level var with no-op init() stub (Go initialises package vars before init(), so the original logServer = logWith("server") panicked on cold start) dmud/logger.go

See: Async Command Pipeline & Structured Logging

๐Ÿ”„ Agentic Flow & Reliability Round 1

Commit Change Files
50f77b4c Agentic flow round 1 โ€” async delegation, fallback recovery, session lifecycle assistant/
14ad356b Dedupe async delegation completion context (#8) assistant/
55c58583 Gate zero-tool-call retry to autonomous tasks (#4) assistant/
8b66ece5 Trim live-status monitoring payloads before LLM context (#10) assistant/
07c72677 Raise orchestration tool timeouts โ€” call_agent 25m, playbooks 15m, plan 10m, distill/reflect 5m (default 45s) assistant/
ca31ce79 Allow call_agent playbook steps targeting non-planner agents (#B) assistant/
013a05e8 Watchdog race โ€” StopInterimUpdates CancelFunc cancels ctx before result is read assistant/
b7c9cac1 Remove CancelFunc from StopInterimUpdates to fix watchdog race permanently assistant/
692a0f4b Early-exit cosmetic fix, autonomous task nudges, watchdog timeout, FreshSession for command tasks, token-based hygiene threshold assistant/
28981721 Playbook JSON field casing bug + free-models cleanup + Sasha model fix + adaptive planner text nudge assistant/
bbfc60c9 Comprehensive tool/delegation/playbook/model fixes from June 2026 analysis assistant/
b39fb25e Filter execute_playbook during playbook delegation + strip unresolved templates from output assistant/
81c77acf All 6 playbooks now include actual {step_N_result} placeholder(s) in finish_task so the LLM sees prior data playbooks/*.json
591fdb14 Fix trigger patterns for Morning Infra Summary and Weekly Tech Round-up playbooks/*.json

๐Ÿ“‰ Context & Hygiene Improvements

Commit Change Files
e144c688 Refine context management and agent model alignment assistant/
79d44640 Size/hygiene/scheduled command improvements assistant/
a49ce9d0 Prompt section truncation in dsysadmin + sysafe to prevent context bloat dsysadmin/, sysafe/
61555f67 Reduce max history: single-shot 40โ†’30, force 10 for Internal_Monitoring rehydrates; trim top CPU/mem processes at source; summarize/dedup NOC batches; update May-problems.md assistant/
dfa2bfe1 Reduce Architect telemetry scope โ€” remove SYSAFEINFRA / LDNINFRA / DELICIOUSINFRA / NOCPULSE from default list to reduce context bloat in critical/audit messages architect

๐Ÿค– Model Additions & Tweaks

Commit Change Files
659c9621 Add nvidia/moonshotai/kimi-k2.6 to availableModels assutils.go
6636a180 Add openrouter/google/gemini-2.5-flash to availableModels assutils.go
83c48d26 Add openrouter/z-ai/glm-5.2 and openrouter/x-ai/grok-4.2-fast to availableModels assutils.go
6f36e1e1 Update DefaultHighEndModel + SummaryModel; move Sasha/Murloc to glm-5.2 assutils.go, agent .md files
cda308c1 Model updates for sysafe / sysadmin after critical panic fix assutils.go
bcdc6235 Model tweaks assutils.go

๐Ÿ› Misc Fixes

Commit Change Files
cc38c5dc GitLab poller error logging + UniFi presence watchdog logging gitlab_poller.go, unifi
2e9c1077 Resolve fatal error: sync: Unlock of unlocked RWMutex in GetVoiceStatsMonthly voice stats
02b4c7d8 Enforce LF line endings + clean up .gitignore repo
e9992a2d / ffa01040 Scheduler/heartbeat isolation (no blocking, goros + zombie ticker); Nikki den early-exit mitigations; LXC/service/check_alerts head limits; May-problems.md updates heartbeat, scheduler, May-problems.md
9e56db1a / 88cddd34 Restore full May-problems.md and append 2026-06-17 refinements summary May-problems.md
09cecacf Make some monitors fresh starts monitoring
98ba426a Update scheduler DB task field for "Creative Playtime" entry with detailed autonomous prompt scheduler DB
70201e9d Commit additional untracked files including ASSISTANT_AGENTIC_SYSTEM_REVIEW.md docs

๐Ÿ“… May 18, 2026 - Model Migrations & Stability Fixes

Panic Recovery Overhaul

Commit Change Files
f56931b6 Add safeGo() panic recovery wrapper to all goroutines, SQLite WAL mode for scheduler DB heartbeat.go, scheduler.go

Root cause: Any unhandled panic permanently kills heartbeat/scheduler goroutines with zero logging and zero recovery โ€” causing silent service degradation.

Changes applied:

  • safeGo() helper wraps all 18 heartbeat goroutines with recover() + debug.Stack() logging
  • Main scheduler goroutine (scheduler.go:665) and checkAndExecuteDueTasks() now have per-tick recover()
  • SQLite WAL mode + busy_timeout=5000 on scheduler DB (matches observability pattern)

Affected loops: telemetry, resumption, subagent cleanup, project/company/team managers, memory cleanup, playbook discovery, Nikki/Liz work loops, architect audits, midnight snapshot, notes fix, self-evolution, async cleanup, CCTV polling/overnight, GitLab monitor, security audit, financial anomaly, WoW pulse, free games

Model Migrations (GLM-4.7 โ†’ GLM-5, Grok-4.3 for Nikki)

Commit Change Files
a2612db3 Migrate agents from GLM-4.7 to GLM-5, try grok-4.3 for Nikki assutils.go, agent .md files
893ffd9b Update agent models to glm-5/grok-4, normalize playbook line endings prompts/agent/.md, playbooks/.json

Nikki: openrouter/x-ai/grok-4.3 primary, fallback โ†’ glm-5 All other agents: glm-5 (Lenore, Nova, Oracle, Sasha, Sysadmin, Sysafe, + 10 others) Lia: glm-5-flash 7 playbooks: glm-4.7-flash โ†’ glm-4.5-air:free

Context Overflow Detection

Commit Change Files
41536d47 Detect context length errors from llama-server 400 responses, trigger fallback chain (โ†’ gemini-2.5-flash-lite) llama_client.go

Added ErrContextOverflow sentinel in llama_client.go. Triggered from both ReAct loop and Single-Shot paths. Falls back to gemini-2.5-flash-lite on context exhaustion.

Heartbeat Tweaks

Commit Change Files
ff1b1a7e Murloc WoW pulse: 5h โ†’ 24h interval, add isHostReachable('wow.dlan') check. BTC threshold 5%โ†’2% for earlier detection. Platform changed to 'whatsapp'. heartbeat.go
110f51e5 Model name changes assutils.go

Added isHostReachable() helper (1-ping, 3s timeout) for liveness checks.

WoW Health Check Playbook Fix

Commit Change Files
a70dee25 Fix dlan_health_check.json playbook: Step 2 (system_vitals) missing "command": "all", Step 3 (unifi_network) missing "command": "devices" assistant/playbooks/global/dlan_health_check.json

Failing daily on the 9am scheduler run for 7+ consecutive days.


๐Ÿ“… May 17, 2026 - dMUD Command System Overhaul

Command Registry & Tags

Commit Change Files
f02f3b7c Dynamic command registry (commands_registry.go) with 60+ commands across 12 categories, admin alias manager, public /commands page dmud/commands_registry.go, dmud/commands.go, dmud/web_handlers.go
ab88319a Add Tags field on all 60+ commands (mud, irc, warcraft, arcade, telnet, rpg, bbs, generic, discord), /whois, /topic, /ignore, /emote dmud/commands.go
3239cc6b Fix missing tags, add 15 new commands (/shout, /yell, /motd, /nick, /inspect, /duel, /channel, /coin, /dance, /wave, /think, /flip, /weather, /rng, /yesno, /jimjoke) dmud/commands.go
2c18478f Special-case 'back' in cmdGoto so /go back works dmud/commands.go
abab0ee0 Fix WebSocket login capturing terminal control messages as usernames dmud/server.go
c9494ea8 Strip terminal escape sequences from WebSocket login input dmud/server.go

Admin UI Enhancements

Commit Change Files
0d74b3be Add Events tab, Activity monitor, room filter, enhance admin cards (item Type/Rarity badges, quest rewards preview) dmud/data/admin/index.html, dmud/web_handlers.go

๐Ÿ“… May 10, 2026 - Web UI & Quest Refinements

Quest & Item System Refinements

Commit Change Files
ede8427b Enhance Items/Quests pages: Type/Rarity badges with color coding, effects boxes, wider cards dmud/web_handlers.go
c531e95b Enhance quest admin UI: Create/Edit/Delete quest modal, chain filter, NPC/room/level badges dmud/data/admin/index.html
a5667438 Per-user config, per-room config, quest chains (tutorial_welcome โ†’ tutorial_first_chat โ†’ tutorial_explore โ†’ tutorial_game), web viewers for items/quests dmud/user.go, dmud/room.go, dmud/quest.go, dmud/web_handlers.go

๐Ÿ“… May 9, 2026 - Tool System & OpenRouter Enhancements

Progressive Disclosure & Tool Guidelines

Commit Change Files
3cd6e03b Tools load with name + 120-char one-liner; full details via get_capabilities. Tool-use guidelines added (Execute Don't Describe, Direct Execution, No Preambles, Finish is Mandatory) assistant/assistant.go
87e1bcad Enable OpenRouter prompt caching assistant/openrouter_client.go

๐Ÿ“… May 6, 2026 - dMUD & Teams Stabilization

WoW Check & Notifications

Commit Change Files
f860ed15 Enable notifications for 447917134999 and add summary logging wowcheck.go
f3eb8783 Ensure 447917134999 receives all summary types wowcheck.go
b7c8467b Fix WoW check ensuring all summary types wowcheck.go
656f8056 Update go.mod go.mod

dMUD Partyline

Commit Change Files
5552d6b8 Add more dMUD design details dmud/
a97ff9d6 Thread safety for stats/gold/quests/items dmud/games.go, dmud.go
37f4832f Race condition, case stripping, telnet backspace dmud/
9f2bcb4a Add Quests/Pets tabs, error handling dmud/
af17fc93 Type assertion safety in games.go dmud/games.go
4335a4bd Modularize JSON persistence dmud/
1bed6b5e Admin Dashboard with User/Item CRUD dmud/
5e6dfdbc Phase 1 Admin Dashboard dmud/

Mail System

Commit Change Files
da66e766 Add mail system with /mail command mail.go, dmud/

Teams Module & Agent Fixes

Commit Change Files
f47a7bf0 Update heartbeat interval and specialist guardrails teams.go, heartbeat.go
b051bf7a Critical fixes for system panics and team logic teams.go, agent_bridge.go
e0745ad4 Model & Timeout Alignment llm_utils.go, adaptive_planner.go
7e094c7b Circuit Breaker 300s, scheduler 20m timeout adaptive_planner.go, scheduler.go

VB Tickets (Disabled)

Commit Change Files
5dc85518 Module disabled (SD+ API key required) vbtickets.go
803dc9f3 New probe utility cmd/vbprobe/, vbtickets.go

Wiki & Assistant Fixes

Commit Change Files
94085b5f JSON truncate repair for unclosed model responses assistant.go
13b490b6 Resolve startup deadlock in loadSessions publicai/
25c7fcd1 Define substr template function discorddash/
1fd52840 Robustify JSON parsing for LLM outputs assistant.go
8a1b25f7 UX improvements โ€” collapsible nav wikiserver/

๐Ÿ“… April 25, 2026 - Light Refresh Summary

Wiki Server Bug Fixes

Commit Change Files
740fb2c6 TOC ReferenceError fix + favicon wikiserver/static/js/wiki.js, wiki_server.go
40a31627 404 panic, nil pointer, nav caching fixes wiki_server.go, wiki_navigation.go, wiki_renderer.go
7d96b693 Navigation tree and .md link handling wiki.js, wiki_server.go
5ef270fa Static asset path mismatch fix wiki_server.go

GitLab & Heartbeat Optimization

Commit Change Files
2d21c25c GitLab push batching and cooldown logic gitlab_poller.go, heartbeat.go
a2fc324f Quiet Hour Focus for Nikki/Lenore work loops heartbeat.go
93d70316 Heartbeat interval optimization, quiet-hour throttling heartbeat.go
e09aeb18 System tasks aligned to 8 AM schedule webserver.go

Context & Token Optimization

Commit Change Files
b56baa59 Summarization timeout increased to 15 minutes conversation_intelligence.go
f1b72bf8 Proactive compaction threshold 30k tokens assistant.go
0d348ec0 Proactive and universal context compaction assistant.go

Discord & Notifications

Commit Change Files
63cbca8b Discord channel notifications restored, telemetry prune ddiscord.go, dsysadmin.go
4ab23e0c Gilfoyle switched to flash model prompts/agent/gilfoyle.md
1f5ff7be Skip first interim Discord update -
29f1daf6 Interim status handling for Discord -

Playbook System

Commit Change Files
a9f3e540 Reduced iteration limits, free games playbook playbook.go
08c13f5b Playbooks reorganized into agent directories -

๐Ÿ•ฐ๏ธ Historical Evolution

  • 2021-2023: Initial development as a Discord bot with various integrated packages (WoW, crypto, etc.). AI integration began with basic Claude and OpenAI wrappers.
  • 2024-2025: Modularization into specialized packages. The core assistant framework started to take shape with the introduction of planning and task decomposition.
  • January 2026:
    • Claude Deprecation: The legacy claude package was retired. All AI interactions, including WhatsApp and image analysis, now route through the centralized assistant and localai packages.
    • Multimodal AI: WhatsApp image analysis migrated to use localai.QueryOllamaMultimodal (Ollama/Llama-server).
  • March 2026:
    • Ollama to Llama Migration: A large-scale shift to use llama-server for local LLM inference, while retaining Ollama for multimodal tasks.
    • MrTool Implementation: Introduction of autonomous tool and skill creation for agents.

๐Ÿš€ Major Updates (April 2026)

1. Robustness & Stability

  • Deadlock Fixes: A critical deadlock in the session logging system was resolved by standardizing lock orders.
  • Zombie Cleanup: The scheduler now features an automated cleanup for "zombie" tasks that were stuck in an 'executing' state due to system restarts.
  • Nil Safety Audit: A comprehensive audit of all defer calls and pointer accesses in the assistant module was completed to prevent nil pointer panics.

2. Monitoring & Observability

  • JSONL Session Logs: Every agent session now writes its events (thinking, tools, results) into a structured .jsonl file in real-time.
  • Mission Control Fallback: Mission Control was updated to automatically read these JSONL files if the observability SQLite database becomes corrupted.
  • Structured Audit Trails: All tool executions and agent decisions are logged with unique execution IDs to enable deep tracing and forensic analysis.

3. Intelligence Expansion & Agent Realignment

  • New Specialized Agents:
    • Murloc (WoW Shaman): Dedicated AzerothCore analyst using a hybrid SQL/SOAP bridge for real-time player and server intelligence.
    • CommanderData (Ops Officer): Android disaster monitor tracking global telemetry (seismic, space weather, grid load, gov alerts).
  • Security & Posture Shift: Responsibility for full perimeter security audits (LXC package/OS scanning) was moved to MrRobot to align with his paranoid guardian persona.
  • Nightly Security Ritual: Coordinated audit where Gilfoyle (detecting pushes) summons SkriptKiddie (scanning CVEs) at 03:00 to analyze code changes.
  • Adaptive Heartbeats: Expanded the heartbeat system to 18 concurrent loops, adding adaptive intervals (faster during day, slower at night) to optimize token usage.

4. Infrastructure & Tool Repairs

  • CCTV Firmware Fix: Overhauled cctv_monitor.go with a raw HTTP polling implementation to bypass a Reolink firmware bug causing unmarshalling failures.
  • Tactical Suite Upgrades:
  • RoboCop: Added perimeter_event_summary and neighborhood_pulse (UK Police API).
  • SkriptKiddie: Added leak_check (HIBP) and shodan_infra_lookup.
  • Lenore: Fully transitioned to Executive Guardian for Liz, equipped with London-Hosting "Business Sorcery" tools (WHMCS/Jira).

๐Ÿš€ Critical Fixes (April 2026, Continued)

1. WhatsApp LIDโ†’JID Resolution

  • Issue: Async delegation notifications failed because WhatsApp LID format wasn't being resolved to JID format.
  • Fix: Implemented 3-tier fallback in planner.go, scheduler.go, and wakeup.go:
    1. Direct ChatID use if already JID format
    2. Phone number extraction + @s.whatsapp.net suffix
    3. Fallback to stored ZombieParent ChatID
  • Files: assistant/planner.go, assistant/scheduler.go, assistant/wakeup.go

2. Empty ChatID in ZombieParent Registration

  • Issue: ZombieParent registration captured empty ChatID, breaking async notification delivery.
  • Fix: Added fallback in AsyncCallAgent() to use stored parent ChatID when current is empty.
  • File: assistant/planner.go

3. LLM Semaphore Timeout Handling

  • Issue: Ollama requests cancelled while waiting for semaphore due to queue timeout overlap.
  • Fix: Separate 30-minute queue timeout, reduced concurrent slots 5โ†’3 to prevent saturation.
  • File: assistant/ollama_client.go, assistant/llama_client.go

4. Reolink CCTV Search Parsing

  • Issue: NVR returns object instead of array for certain queries, causing JSON unmarshal failures.
  • Fix: Created searchRecordings() wrapper that handles both object and array responses.
  • File: assistant/cctv_monitor.go

5. Playbook Placeholder Format

  • Issue: Playbooks used [From Step X] format which isn't recognized by substitution engine.
  • Fix: Corrected 7 playbooks to use {step_X_result} format.
  • Files: assistant/playbooks/*.json

6. Planner Session Reliability

  • Issue: WhatsApp-initiated planner sessions failed because LLM returned empty/text responses without calling get_capabilities.
  • Fix: ProcessReActLoop now forces get_capabilities for ALL planner sessions regardless of source.
  • File: assistant/planner.go

7. Shared Tools Full Definitions

  • Issue: get_capabilities returned only tool names, not full definitions.
  • Fix: GetSystemCapabilities now returns complete Tool structs.
  • File: assistant/assistant.go

8. dMUD Stability & Concurrency Overhaul (Phases A-D)

  • Issue: The dMUD engine suffered from 50+ identified concurrency issues, leading to deadlocks during reconnection and panics in mini-games.
  • Fixes (20 Applied):
    • Phases A & B (Panic Prevention): Added nil guards to Send() and CurrentRoom, fixed Blackjack empty deck panic, and implemented sync.Once for config watchers.
    • Phase C (UsersMu - High Impact): Introduced UsersMu RWMutex to the Room struct. This resolved data races in chat broadcasting, ambient rendering, and NPC script interactions by protecting the Users map.
    • Phase D (Blocking & Deadlock Mitigation): Optimized the Register() flow by moving bcrypt hashing outside of mutex locks, reducing global lock contention. Added non-blocking selects for internal save channels.
  • Files: dmud/room.go, dmud/user.go, dmud/server.go, dmud/config.go, dmud/games.go
  • Result: Server-side panics and "session hangs" during multi-user interactions have been eliminated.

๐ŸŽ™๏ธ Voice Pipeline & UI Overhaul (April 2026)

1. WhatsApp Voice Note Dual Output

  • Issue: Voice note responses couldn't include image generation results; agent routing defaulted to "sysafe" instead of last-used agent.
  • Fix:
    • Added Callback to voice QueryOptions so image generation results are delivered
    • Added GetLastUsedAgent() check before defaulting agent selection
    • Added SaveLastUsedAgent() call after voice responses for sticky agent persistence
  • Files: dwhatsapp/dwhatsapp.go

2. Lenore TTS Configuration

  • Issue: Lenore agent had no TTS voice configuration, causing fallback to default voice.
  • Fix: Added Lenore's Inworld voiceID (Selene) to TTS config map and assutils.go voiceID registry.
  • Files: assistant/tts.go, assistant/assutils.go

3. TTS Sanitization

  • Issue: Voice notes included raw emojis and markdown formatting, causing unnatural TTS output.
  • Fix: Added SanitizeForTTS() function that strips emojis, markdown, and code blocks before TTS synthesis.
  • Files: assistant/tts.go

4. Voice UI Kiosk Mode & Accessibility

  • Issue: Voice UI (voice.html, wake.html) wasn't optimized for tablet/kiosk use and lacked accessibility features.
  • Fix:
    • Added kiosk mode detection (?kiosk=true&agent=xxx) with hidden controls and larger touch targets
    • Added aria-live regions for screen reader announcements
    • Added responsive CSS for tablet/mobile layouts
    • Changed hardcoded "Dan:" to "User:" in history display
  • Files: assistant/static/voice.html, assistant/static/voice.js, assistant/static/wake.html, assistant/static/wake.js

5. Lenore Theme & TTS Default Selector

  • Issue: Lenore agent had no visual theme; TTS selector lacked "Agent Default" option.
  • Fix:
    • Added Lenore theme (Indigo/MediumPurple) to AgentThemes map
    • Added "Agent Default" TTS option that respects per-agent voice configuration
    • Updated backend nikki_voice.go to handle "default" TTS fallback
  • Files: assistant/nikki_voice.go, assistant/static/voice.js, assistant/static/wake.js

6. Canvas Blur Performance

  • Issue: CSS filter: blur() on canvas was GPU-intensive, causing performance issues on tablets.
  • Fix: Moved blur effect from CSS filter to JavaScript rendering in aura.js for better performance control.
  • Files: assistant/static/aura.js

๐Ÿš€ Major Updates (April 2026 - Continued)

5. IRC Platform Enhancements

  • Automatic Channel Registration: Implemented ChanServ integration for automatic channel registration on join
  • Personal Agent Channels: Each agent bot now has a personal channel for private communications
  • Specialized Channels: Added #NOC (infrastructure metrics), #dBot (bot operations), and #Solana (blockchain monitoring)
  • Intelligent Dynamic Topics: Channel topics now update automatically based on system state and agent activity
  • Identity-Aware Message Processing: Fixed multiple reply issue by making message processing identity-aware
  • ErgoIRCd Integration: Enhanced SASL/nickname handling and improved connection stability
  • Log Throttling: Implemented log throttling to prevent message delivery hangs
  • Operator Status: Master Dan automatically granted operator status on join

6. Context Optimization & Token Efficiency

  • Active LLM Summarization: Implemented middle-out context compaction using active summarization for long sessions
  • Tool Result Hashing: Added hashing to prevent redundant context bloat from repeated tool calls
  • Prompt Reordering: Reordered prompts to maximize LLM prefix caching efficiency
  • Conversation Summary Limits: Optimized truncation limits (3000 characters) for better context management
  • Intelligent Task List Pruning: Implemented smart pruning for task list tool to reduce token usage
  • Circuit Breaker: Extended circuit breaker to all adaptive planner LLM call sites with fallback loops
  • Session Counter Reset: Reset session counters on new user message with 2s delay before LLM retries

7. Dual-Platform Notification System

  • WhatsApp + Discord Dispatch: Unified notification routing to both platforms simultaneously
  • Gilfoyle Nightly Ritual: Enhanced 3am Gilfoyle notifications with dual-platform support
  • WHMCS Poller Integration: WHMCS ticket notifications now route to both WhatsApp and Discord
  • Bulk WhatsApp Consolidation: Individual notifications consolidated into single bulk WhatsApp message
  • Nova Response Capture: Explicit capture and routing of Nova's responses to WhatsApp groups

8. Discord HUD System Overhaul

  • Message Splitting: Split delicious servers into separate HUD messages (UK/Enterprise staff)
  • Public HUD Channel: Added public HUD channel with 10-minute refresh interval
  • Persistent HUD Support: Message and embed edit wrappers for persistent HUD updates
  • Interim Status Handling: Implemented interim status handling for Discord persona updates
  • Telemetry Segmentation: Added specific telemetry segments for different HUD types
  • Content Filtering: Public HUD channels filter sensitive data (Status/CPU/RAM/Load only)
  • Cluster Isolation: Isolated delicious staff HUD and added sysafe_ldn cluster HUD

9. dMUD RPG System Expansion

  • Profession System: Implemented Mining & Woodcutting professions with idle mechanics
  • Wallet & Inventory: Added wallet commands, inventory management, and item persistence
  • Pet System: Implemented pet auto-feed worker, pet seller NPC, and shop-aware /pet buyfood
  • NPC Logic Ecosystem: Full NPC triggers on /use and /trade with Lua scripting
  • RPG Dashboard: Real-time /rpg dashboard with inventory and quest tracking
  • Quest System: Quest acceptance script hooks, weekly quests, and Mayor/Guard quest NPCs
  • Shop Functionality: Tavern shop with item purchasing and NPC interactions
  • Multi-Room Zones: Expanded dLand into multi-room zones with proper navigation

10. Playbooks System

  • Agent-Specific Directories: Reorganized playbooks into agent-specific directories (analyst, nova, nikki, etc.)
  • Server Health Playbook: Automated Gadgetzan infrastructure health checks
  • Standups Playbook: Daily London-Hosting standup automation with WHMCS/Jira integration
  • SNOW Trend Reports: Daily ticket trend analysis and reporting
  • Free Games Playbook: Daily free games briefing with Steam/Epic discovery
  • Self-Evolution Pipeline: AI-generated playbook candidates with admin approval workflow

๐Ÿ›ค๏ธ The Roadmap ("God-Tier Upgrades")

The system continues to evolve toward "God-Tier" autonomy. Planned enhancements include:

  • Logic Scalpel: Live intervention in agent reasoning via Mission Control.
  • ACK Security Protocol: Human-in-the-loop confirmation for medium-risk infrastructure changes.
  • Global Event Bus: A unified pub/sub architecture for all system-wide infrastructure events.

๐Ÿš€ Wiki Server Enhancements (April 25, 2026)

Wiki Server Launch

  • Port 7779: Standalone documentation server (wikiserver/wiki_server.go)
  • Goldmark Renderer: Full GFM, Footnote, Table, Strikethrough, Linkify support
  • Monokai Syntax Highlighting: Code blocks with chroma-based highlighting
  • Navigation API: Dynamic sidebar tree from /api/navigation

Enhanced Wiki Features (commit f187e7b8)

  • Search: Client-side page search
  • Table of Contents: Auto-generated from headings
  • Theme Toggle: Light/dark mode switching
  • Share Links: Copy-to-clipboard for page URLs
  • Version History: 5 most recently modified pages (sorted by modTime)
  • Back to Top: Smooth scroll button
  • File Modified Date: Per-page "Last updated" timestamp
  • Enhanced 404: Friendly error page with navigation
  • Loading Skeleton: Visual feedback during page load

Wiki UX Improvements (commit 88d01408)

  • Active Navigation: Highlight current page in sidebar
  • Collapsible Sections: Expandable nav sections with animations
  • Image Styling: max-width, borders, shadows, border-radius
  • Page Transitions: Smooth fadeIn/fadeOut animations
  • Lightbox: Full-screen image viewing
  • External Links: CSS indicator (โ†—) for external URLs
  • Mermaid.js: Client-side diagram rendering from code blocks

Bug Fixes (commit cfc7384f)

  • Navigation Tree: Fixed index-based range to navigate actual tree nodes (nested directories now work)
  • Version History: Fixed sorting to use modTime descending (most recent first)
  • XSS Escaping: Added esc() helper using template.HTMLEscapeString for all user-controlled strings

๐Ÿš€ Wiki Server Bug Fixes (April 25, 2026)

Navigation & Path Handling (commit 7d96b693, 40a31627)

  • Navigation Tree Fix: Fixed critical index-based range bug in addToTree() that prevented proper nested directory structure
  • 404 Panic Fix: Added nil checks to prevent panics when handling non-existent pages
  • Nil Pointer Fix: Fixed nil pointer dereference in nav cache initialization
  • Nav Caching: Implemented proper navigation caching with invalidation on file changes
  • .md Link Handling: Fixed relative path handling for internal wiki links

Static Asset Path (commit 5ef270fa)

  • Path Mismatch Fix: Resolved static asset path issues causing missing CSS/JS files
  • File Serving: Fixed proper serving of files from wikiserver/static/ directory

TOC & UI Fixes (commit 740fb2c6)

  • TOC ReferenceError: Fixed JavaScript ReferenceError in Table of Contents generation
  • Favicon Addition: Added favicon for wiki branding

Wiki UX Improvements (commits 88d01408, cfc7384f)

  • Active Navigation: Highlight current page in sidebar
  • Collapsible Sections: Expandable nav sections with animations
  • Image Styling: max-width, borders, shadows, border-radius
  • Page Transitions: Smooth fadeIn/fadeOut animations
  • Lightbox: Full-screen image viewing
  • External Links: CSS indicator (โ†—) for external URLs
  • Mermaid.js: Client-side diagram rendering from code blocks
  • XSS Escaping: Added esc() helper using template.HTMLEscapeString for all user-controlled strings

๐Ÿ“… May 27, 2026 - Stability Overhaul & Mission Control UI Refresh

Assistant Core Fixes

Commit Change Files
59808a6e Resolve panics, improve mutex contention, fix room configs assistant.go, planner.go
6b01a175 Optimize model usage for stability conversation_intelligence.go, lenore.md

Session & Persistence Overhaul

Commit Change Files
5543e088 Per-ChatSession persistence worker (Option B) - async DB writes with per-session queue assistant/chat_persistence.go, assistant.go, scheduler.go
6d73bdc8 Guaranteed early exit logging + increased TryLock retries + delegation completed log assistant/planner.go
58811645 Increase planner TryLock retries + default response for Partner on restricted agents assistant/planner.go
4e89d1c3 Guarantee completion logging and cleanup for call_agent planner.go, adaptive_planner.go

Chat Persistence Architecture:

  • Per-ChatSession worker goroutine with dedicated SQLite queue
  • Eliminates global DB contention by serializing writes per-session
  • Background writes prevent main session loop blocking
  • AppendMessage truncates get_capabilities calls for background tasks (40k token budget)

Concurrent Session & Mutex Improvements

Commit Change Files
20237c7a TryLock in cleanup goroutine to prevent mutex starvation planner.go
a58b20c3 Replace blocking mutex Lock() with TryLock+retry in register/deregister planner.go
ceedbad8 Goroutine stack dump when mutex TryLock fails planner.go
fb5a47ca Detailed debug logging to cleanup goroutine planner.go
a7e289c5 Make PlannerSession.Cleanup() async to prevent AB-BA deadlock planner.go
8c3ab5aa Eliminate cleanup mutex deadlock planner.go

Mission Control Dashboard Refresh

Commit Change Files
17510d9a Implement new Dashboard landing page with mission_control_dashboard.js missioncontrol.go, mission_control.html
e624a6b5 Migrate Dashboard, Kanban, Server views to active Go templates (HTML deleted) templates/missioncontrol/*, mission_control.html
fcbbc8f8 Redesign Servers tab to 3-column layout, polish NOC stream missioncontrol.go
74a2c732 Redesign Kanban taskboard to horizontal scroll layout missioncontrol.go

Go Template Migration:

  • Dashboard, Kanban, Servers tabs migrated from static HTML to Go html/template package
  • tab_dashboard.html, tab_servers.html, tab_tasks.html in assistant/templates/missioncontrol/
  • Reduces static HTML from ~930 lines, enables dynamic data injection at render time

FreshSession Feature (Full Implementation)

Commit Change Files
c8e474bb Add FreshSession bool to QueryOptions, update scheduler to respect FreshSession, wakeup uses FreshSession=true heartbeat.go, scheduler.go, planner.go
38326b48 FreshSession for Architect audits, upgrade mrrobot/architect/lenore/lia off GLM-5 architect.go, agent .md files
6ba38881 FreshSession for WHMCS alerts + audit history trim heartbeat.go, nova.go
  • fresh_session column added to scheduled_tasks table
  • Background tasks (heartbeat, scheduler) now use FreshSession=true for clean slate
  • Architect audits use FreshSession for independent analysis

Model Migrations (May 19-20)

Commit Change Files
23550ce4 Nova primary โ†’ llama/qwen3:8b, fallback โ†’ llama/qwen3:30b. Architect fallback โ†’ llama/qwen3:30b (was deepseek-r1:14b). Replaced ministral โ†’ llama/qwen3:30b assutils.go, agent .md files
a2612db3 Migrate agents from GLM-4.7 to GLM-5, try grok-4.3 for Nikki assutils.go, agent .md files
893ffd9b Update agent models to glm-5/grok-4, normalize playbook line endings prompts/agent/.md, playbooks/.json
5d3d2db7 Downgrade nova/mrrobot/architect off 30b due to llama-server load failures assutils.go
f8998f01 Fix planner deadlock, migrate EOL nvidia/z-ai/glm5 planner.go, assutils.go
5705f21d Migrate remaining glm-4.7-flash model overrides to glm-4.5-air:free playbooks/*.json

Current Model Configuration:

  • Nikki: openrouter/x-ai/grok-4.3 primary, fallback glm-5
  • Nova: llama/qwen3:8b primary, llama/qwen3:30b fallback
  • Architect: llama/qwen3:30b (primary and fallback)
  • Lenore/Lia: glm-5 / glm-5-flash
  • All other agents: glm-5 or glm-4.5-air:free

Heartbeat Enhancements

Commit Change Files
2a2db148 Add daily run guards to nightly_security and cctv_overnight heartbeat.go
cbd6bab6 Add initialization logs to remaining loops + daily run guard heartbeat.go
fb12b739 Add explicit state transition logging to wakeup wakeup.go
17be4c83 Widen free_games window + add initialization logging to key loops heartbeat.go
e43f5e34 Add detailed initialization and trigger logging to heartbeat loops heartbeat.go
dd7a7c7a Phase C data race fixes (multiple files)
dfd88224 Move daily run guard variables to function scope heartbeat.go

Daily Run Guards:

  • Prevents re-execution within same 24h period for: nightly_security, cctv_overnight
  • Variables moved to function scope to prevent state leakage across restarts

Context Overflow Detection & Fallback Chain

Commit Change Files
41536c47 Detect context length errors from llama-server 400 responses, trigger fallback chain llama_client.go
e8f4da9b Non-blocking summarization, 40k compaction threshold, remove tool dedup assistant.go, conversation_intelligence.go

Context Overflow Flow:

  1. llama-server returns 400 with context length error
  2. ErrContextOverflow sentinel detected in llama_client.go
  3. Falls back to gemini-2.5-flash-lite
  4. If all models exhausted, session fails gracefully with detailed error

Wakeup & Scheduler Resilience

Commit Change Files
d4359af0 Add retry logic with fallback handling for LLM calls in wakeup, scheduler, heartbeat wakeup.go, scheduler.go, heartbeat.go
24073eba Make RecordSession async to prevent SQLite contention deadlock assistant.go
f56931b6 Add panic recovery to all goroutines, WAL mode for scheduler DB heartbeat.go, scheduler.go

Teams Module Improvements

Commit Change Files
a459f323 Add cache and resilience to team agents loader assutils.go, missioncontrol.go
  • Team agent metadata cached to prevent repeated file reads
  • Fallback on cache miss for continued operation during file issues

Heartbeat Model & Alert Threshold Changes

Commit Change Files
ff1b1a7e WoW pulse: 5hโ†’24h interval, add isHostReachable('wow.dlan') check. BTC threshold 5%โ†’2%. Platform โ†’ whatsapp heartbeat.go, wowcheck.go
a70dee25 Fix dlan_health_check.json playbook: missing command fields on system_vitals and unifi_network steps playbooks/*.json

๐Ÿ“… May 18, 2026 - Model Migrations & Stability Fixes