// LIVE
INTELCritical Citrix NetScaler memory flaw actively exploited in attacks
INTELTelnyx joins LiteLLM in latest PyPI package poisoning tied to Trivy breach
INTELStorm Brews Over Critical, No-Click Telegram Flaw
INTELFTC Action Against Match and OkCupid for Deceiving Users, Sharing Personal Data
INTELTeamPCP Supply Chain Campaign: Update 004 - Databricks Investigating Alleged Com
INTELHealthcare IT Platform CareCloud Probing Potential Data Breach
INTELSecurity updates for Monday
INTEL'When intelligence and trust move together, AI stops being an experiment and sta
INTELRussian APT Star Blizzard Adopts DarkSword iOS Exploit Kit
INTELDisclosure of Replay Attack Vulnerability in Signed References
INTELHackers now exploit critical F5 BIG-IP flaw in attacks, patch now
INTELTelnyx Targeted in Growing TeamPCP Supply Chain Attack
CVE(Pwn2Own) Canon imageCLASS MF654Cdw TTF Parsing Out-Of-Bounds Write Remote Code
CVEZDI-26-204: Canon imageCLASS MF654Cdw XPS Parser Vulnerability
CVEZDI-26-202: QNAP TS-453E Hyper Data Protector Plugin SQL Injection RCE Vulnerabi
INTELCritical Citrix NetScaler memory flaw actively exploited in attacks
INTELTelnyx joins LiteLLM in latest PyPI package poisoning tied to Trivy breach
INTELStorm Brews Over Critical, No-Click Telegram Flaw
INTELFTC Action Against Match and OkCupid for Deceiving Users, Sharing Personal Data
INTELTeamPCP Supply Chain Campaign: Update 004 - Databricks Investigating Alleged Com
INTELHealthcare IT Platform CareCloud Probing Potential Data Breach
INTELSecurity updates for Monday
INTEL'When intelligence and trust move together, AI stops being an experiment and sta
INTELRussian APT Star Blizzard Adopts DarkSword iOS Exploit Kit
INTELDisclosure of Replay Attack Vulnerability in Signed References
INTELHackers now exploit critical F5 BIG-IP flaw in attacks, patch now
INTELTelnyx Targeted in Growing TeamPCP Supply Chain Attack
CVE(Pwn2Own) Canon imageCLASS MF654Cdw TTF Parsing Out-Of-Bounds Write Remote Code
CVEZDI-26-204: Canon imageCLASS MF654Cdw XPS Parser Vulnerability
CVEZDI-26-202: QNAP TS-453E Hyper Data Protector Plugin SQL Injection RCE Vulnerabi
MARCH 2026
30 ENTRIES
v1.7.0
2026-03-17
10 CHANGES
Homepage Hero Redesign (Phase 3 NEW
Mobile-First)** — Full rewrite of `templates/index.html` with mobile-first dual-column layout: hero block + intelligence feed (left) + deep dives / radar / OPS Intel / versus sidebar (right). Mobile stacks all sections vertically with deep dives, radar, CVEs, and versus interleaved between intelligence cards.
Hero Selection Logic
`_get_hero_article()` picks the best article: admin-pinned > best deep dive (7d, by qa_score) > best article (48h, by qa_score) > most recent. Result cached 5 minutes.
▼ expand
Content Freshness Indicator
`_get_content_freshness()` returns color-coded freshness (green < 6h, amber 6–24h, red > 24h) displayed as animated dot + label on the hero block.
▼ expand
`pinned_hero` DB Column
Migration added to `tech_news/db.py`. Admin can pin any published article as homepage hero.
▼ expand
Admin Hero Pin API
`POST /api/admin/pin-hero/<id>` pins an article as hero (clears previous pin). `POST /api/admin/pin-hero/clear` removes pin. Both invalidate the hero cache.
▼ expand
Versus Request Modal
Bottom-sheet modal on mobile / centered on desktop. Users request a "tool A vs tool B" comparison. Submissions saved to `versus_requests` table in `commands.db`.
▼ expand
`/api/versus-request` Route
`POST` accepts `{tool_a, tool_b}`, saves to DB, returns `{status: submitted}`.
▼ expand
Jinja2 Filters
`timeago` (ISO datetime → "Xm/Xh/Xd ago") and `parse_tags` (JSON string → list) registered as app template filters.
▼ expand
`index()` route
Rewritten to use `published=1` filter, lane `LIKE '%LANE%'` queries (handles pipe-separated lanes), enriched article dicts with `aria_take` (extracted from body_html), `word_count`, `read_time`, `time_ago`, `lane_primary`. Passes `hero`, `intelligence`, `deep_dives`, `radar`, `cves`, `versus`, `counts`, `freshness` to template.
▼ expand
CSS
All `hp-*` styles added inline in `index.html`'s `{% block extra_css %}`. Mobile-first base rules, `@media (min-width: 769px)` tablet, `@media (min-width: 1025px)` desktop. Light mode overrides for all new classes.
▼ expand
v1.6.0
2026-03-17
10 CHANGES
Deep Dive Auto-Generation Queue
`deep_dive_queue` table in `pipeline.db` with 25 seeded topics across priority tiers (55–95). Topics sourced from manual admin input, promoted articles, auto-suggest (weekly), or seed list.
▼ expand
ARIA Generation Engine (`pipeline/deep_diver.py`)
Direct Ollama API calls to `aria-32b` for full 800–1200 word markdown articles. Retry logic (3 attempts) if word count < 600. Markdown-to-HTML conversion, tag extraction, and first-paragraph extraction for metadata. Publishes directly to `tech_news` table with `lane='DEEP_DIVES'`, status `approved`.
▼ expand
Daily Scheduler
APScheduler cron job at 04:00 UTC picks highest-priority queued item and generates one article per day. Weekly Sunday 06:00 UTC job auto-suggests topics from popular recent articles.
▼ expand
Deep Dive Queue Admin Panel
Full-width panel on `/admin/pipeline` below the lane cards. Desktop: sortable table with priority badge, topic, source, status, actions. Mobile (≤768px): card-based layout with touch-friendly 36px+ buttons. Force-generate, skip, delete, add-topic modal with priority slider.
▼ expand
Scheduler Config Controls
Inline config bar: enable/disable daily auto-gen, run time, per-day limit, min word count. Saved via `POST /api/admin/pipeline/deep-dive-config`.
▼ expand
Promote to Deep Dive
"↗ DEEP DIVE" button on approved articles in `/admin/tech-news`. Adds article as `promoted` source type queue entry at priority 70.
▼ expand
API Routes
Full queue CRUD: `GET/POST /api/admin/deep-dives/queue`, priority/skip/delete per item, `POST /api/admin/deep-dives/force-generate`, `POST /api/admin/deep-dives/promote`.
▼ expand
`pipeline/scheduler.py`
Added daily deep dive and weekly auto-suggest cron jobs. Boot message updated.
▼ expand
`pipeline/db.py`
Added `deep_dive_queue` table, config keys, `seed_deep_dive_queue()`, and `article_slug` migration.
▼ expand
`/admin/pipeline` route
Passes `dd_queue` context dict (items + stats + config) to template.
▼ expand
v1.5.0
2026-03-01
10 CHANGES
ARIA Site Content Awareness
ARIA now knows what articles are currently published on nsysops.com. Recent Intelligence and Ops Intel articles are injected into the LLM system prompt at request time (via `aria/routes.py` + `_build_site_context()`). ARIA cites articles as clickable markdown links when relevant.
▼ expand
Citations Panel
`#aria-citations` div below ARIA's speech text renders article links extracted from LLM markdown (`[Title](url)`) as styled `// SOURCES:` chips. Speech text displays clean title text (markdown stripped). MutationObserver guard (`_processingCitations` flag) prevents observer loop.
▼ expand
Conversation Log
Left panel now populates with `// YOU:` / `// ARIA:` entries after each exchange. Root cause of previous failure: `handleManualSend()` in `main.js` calls the internal `askARIA` closure, bypassing the `ARIA.askARIA` proxy. Fixed by adding capture-phase `mousedown` listener on `#aria-send-btn` in `wireInputCapture()`, setting `_lastAriaQuestion` before input is cleared.
▼ expand
Quick Prompts Fixed
Chip `onclick` handlers changed from inline HTML attribute (broke on apostrophes in article titles) to `data-q` attribute + event delegation listener. 4th `source` argument now passed to `ARIA.askARIA`.
▼ expand
ARIA Page Redesign
Sphere Retheme** — Three.js avatar completely rethemed from bright blue (`#00c8ff`) to site-matching green-cyan (`#00ffb4`). Point light intensity reduced 2.0→0.35, emissive intensity 0.7→0.15, wireframe opacity 0.35→0.08, ring opacities 0.55/0.40/0.30→0.18/0.10/0.06. Core sphere color `#003344`→`#001408`.
▼ expand
Mobile Panel Layout
Reordered elements: response text → chips → input+SEND → status bar → stats row (was: response → chips → status → input → stats). Removed old blue color values from mobile input (`color:#e0f4ff` → green theme).
▼ expand
Mobile Theme Fixes
`#aria-topbar` border changed from blue (`rgba(0,200,255,0.12)`) to green. `#aria-mobile-panel` background overridden from dark-blue to `rgba(0,8,6,0.97)`. Mute button hidden by default, shown on ≤430px only.
▼ expand
Nav Status Race Condition
`syncNavStatus()` call on page load delayed 2.5s (was immediate). Prevents false "ARIA OFFLINE" flash before first Ollama health poll completes. Initial `#aria-ollama-label` text changed from "AI OFFLINE" to "AI ···" to avoid false offline indication at page load.
▼ expand
Twitch Badge Label
Changed from `○ OFFLINE` to `○ NO STREAM` to clarify it refers to stream status, not AI status.
▼ expand
OBS Crosshair Leak
`#obs-crosshair-h` and `#obs-crosshair-v` now directly targeted with `display:none !important; visibility:hidden !important` (belt-and-suspenders alongside parent `#obs-overlay { display:none }`). Restored via class on `body.obs-mode`.
▼ expand
FEBRUARY 2026
28 ENTRIES
v1.4.0
2026-02-27
6 CHANGES
Idle Ambient Phrases (F2)
ARIA now speaks spontaneously when idle for 45–90 seconds using 60 pre-written local phrases across 5 categories (tech, ambient, curious, philosophical, humor). Zero LLM calls. Features: weighted category rotation, recency exclusion (10-min cooldown per phrase), never-repeat-until-all-used cycle tracking, usage persistence, stream mode with different category weights, and Twitch chat posting for short phrases.
▼ expand
Idle Phrases Admin Panel
New "Idle Phrases" tab in `/admin/aria`: toggle on/off, min/max interval sliders, per-category weight sliders (auto-total display), full phrase manager table (view, retire, delete), bulk import from text, usage reset.
▼ expand
Changelog System
Public changelog at `/changelog` with timeline layout, category badges, and keyword/category filtering. Admin management at `/admin/changelog` with entry form, publish/draft workflow, and Claude session importer.
▼ expand
CHANGELOG.md
This file. Claude Code now maintains the changelog and bumps the version after every implementation.
▼ expand
Boot Intro Speech (F1)
ARIA's intro line is now a true 50/50 random selection between "Good to see you. What's on your mind?" and "Awaiting your command." — no more hardcoded "Manual mode active. Ready." that leaked UI state.
▼ expand
Boot overlay no longer displays "Manual mode active. Twitch offline."
replaced with neutral "Twitch interface standby."
▼ expand
v1.3.0
2026-02-20
2 CHANGES
Twitter Auto-Posting System
Queue-based tweet drafting from article pages. LLM generates tweet body; admin approves at `/admin/twitter` or auto-posts if `TWITTER_AUTO_POST=true`. Tweepy v4 Client (API v2).
▼ expand
"Tweet This" Button
Appears in tech_news, ops_intel, and guides article views (admin-only). One click queues an AI-generated tweet draft.
▼ expand
v1.2.0
2026-02-15
15 CHANGES
ARIA AI Showcase (/ai)
Full holographic AI assistant with Three.js avatar, TTS, Twitch integration (TMI.js + EventSub), and admin remote control.
▼ expand
Voice Input (F1/F2)
Wake word "Hey ARIA" + spacebar hold. SpeechRecognition API with 2-second silence timeout.
▼ expand
Conversation History (F3)
Rolling 20-exchange window sent with each request for contextual responses.
▼ expand
Long-Term Memory (F4)
Viewer recognition, streamer facts, inside jokes — persisted in `data/aria-memory.json`.
▼ expand
Twitch Chat Posting (F5)
ARIA posts responses to Twitch chat via TMI.js `say()` with 3-second rate-limit queue.
▼ expand
EventSub Webhooks (F6)
Follow, subscribe, cheer, raid, hype train, channel point redemption events → ARIA reactions.
▼ expand
Knowledge Base (F9)
Custom facts, personality, and site identity editable at `/admin/aria` Knowledge tab.
▼ expand
Chat Visualization (F10)
Colored particles emitted from Three.js avatar per chat message; pulse-out ripple on response.
▼ expand
Session Summaries (F11)
LLM-generated session recaps saved to `data/aria-sessions/`.
▼ expand
Monitoring Dashboard (F12)
Chat log, prompt log, activity log viewable at `/admin/aria` Monitoring tab.
▼ expand
Scheduled Announcements (F13)
Interval, time-offset, and one-shot announcement types with AI-generated or static text.
▼ expand
Admin Command Queue (F14)
Remote control via `/admin/aria-control`: force state, force say, queue clear/skip/pause/resume, mute/unmute.
▼ expand
Remote Control Page (F15)
Mobile-optimized `/admin/aria-control` with large tap targets for stream use.
▼ expand
Christian Worldview Integration (F8)
Hardcoded in `aria/ollama.py` — graceful, not preachy, always consistent.
▼ expand
Twitch Poll Creator (F7)
Admin can create Helix API polls with AI-generated answer choices.
▼ expand
v1.1.0
2026-02-10
5 CHANGES
Bulk Run All panel on admin dashboard
client-driven loop calls `run-one` repeatedly with pause/resume/stop.
▼ expand
Content pipeline
Three modules: `tech_news`, `ops_intel`, `guides`, each with RSS ingestion, LLM processing, and queue management.
▼ expand
Admin pipeline controls
Per-section admin pages with real-time run logs, progress bars, and pipeline badge system.
▼ expand
Queue cap system
`bypass_queue_cap` and `limit_override` flags on `run_ingestion()` for manual vs. scheduled runs.
▼ expand
No-more-candidates signal
Frontend detects `candidates===0 && generation_attempts===0` to stop bulk loops.
▼ expand
JANUARY 2026
11 ENTRIES
v1.0.0
2026-01-25
11 CHANGES
Initial site launch: NSYSOps portfolio with green terminal aesthetic.
Tech News, Ops Intel, and Guides article sections with SQLite-backed storage.
Admin authentication system (Flask-Login).
Services status page with live ping checks.
Tools directory with category filtering.
Contact form with email delivery (SMTP).
Google Analytics (G-FVXY2WY8VC) across all pages.
Sitemap generation and robots.txt.
Favicon and brand assets.
Honeypot endpoint for bot detection.
Request logging and visitor analytics.