Lumi/TODO.md
2026-06-25 14:10:04 +02:00

55 KiB
Raw Permalink Blame History

TODO

This file tracks larger Lumi work that cannot safely be completed in one pass. Keep pending work under the relevant category and move completed items to the Done section with a short note.

Current Local State / Source of Truth

OKF Knowledge System

Current state on experimental-okf as of 2026-06-21: standalone OKF plugin work is implemented locally and not pushed. The plugin provides SQLite-backed entries, sanitized Markdown, logged-in browsing, role-gated details, admin/editor management, per-user OKF permission grants through the shared core user lookup, workflow actions, version history, version restore, role-preview tooling, role-aware Lumi AI context integration through the generic AI context provider hook, a file-backed Markdown knowledge retrieval layer, generated core/plugin OKF baseline files, admin-editable community OKF files, and admin-created correction OKF files from reviewed core feedback.

Implemented Locally

  • Added standalone plugins/okf plugin with WebUI route mounting and navigation registration.
  • Added plugin-owned SQLite tables for OKF entries, versions, and per-user OKF permission grants.
  • Added sanitized Markdown rendering for OKF answers/details without unsafe raw HTML.
  • Added logged-in OKF/Q&A index, search, category/tag filtering, and entry detail pages.
  • Enforced server-side visibility:
    • anonymous users blocked
    • normal users see published user-visible entries
    • moderators see published user/mod entries and support details
    • admins see all OKF fields and workflow state
  • Added admin/editor management UI for create/edit, workflow actions, and version history.
  • Added OKF-specific permission grants independent of normal roles:
    • edit
    • edit_review
    • edit_review_implement
  • Added workflow actions for review, publish, archive, restore-as-draft, and soft delete.
  • Added version snapshots for create/update/workflow changes.
  • Added restore-from-version service/action/UI with a new audit version recorded for restores.
  • Added admin role preview cards for user, moderator, and admin/editor visibility.
  • Added shared core user lookup support through /api/users/search and [data-user-lookup].
  • Migrated OKF permission grants, Lumi AI access grants, moderation target fields, Economy banking transfers, and Economy balance adjustment fields to the shared user lookup.
  • Fixed the moderation target internal username search by removing its page-local picker and using the shared live lookup.
  • Added a local global.lumiFrameworks.okf.search(...) integration point for later AI context provider wiring.
  • Wired OKF into Lumi AI prompt context through the existing generic registerContext hook.
  • Made Lumi AI context providers receive user/message/scope/origin context so per-user OKF permissions can be enforced.
  • Ensured OKF AI context includes only published and approved entries and only fields visible to the requesting user.
  • Changed OKF aliases/related questions to newline-only input so commas remain valid inside questions.
  • Added knowledge/core, knowledge/plugins, knowledge/community, and knowledge/corrections with ownership documentation and keep-files.
  • Added dependency-free OKF Markdown/frontmatter parsing for stable IDs, scopes, status, priority, tags, generated/editable flags, and timestamps.
  • Added file-backed OKF chunking by Markdown heading with source metadata: path, id, heading, score, and excerpt.
  • Wired file-backed OKF retrieval into Lumi AI context alongside existing SQLite entries.
  • Enforced file retrieval priority: corrections, community, plugins, then core.
  • Enforced file-backed visibility for user/mod/admin knowledge.
  • Added access-aware OKF placeholder resolution for visible frontmatter values, with generic missing-reference markers for hidden or unavailable references.
  • Added an mtime/size-based file knowledge cache so unchanged files are reused and changed/deleted files are reflected on later searches.
  • Added generated core/plugin OKF baseline generation from package metadata, README, detected core routes, plugin manifests, plugin routes, and static command trigger hints.
  • Added generated baseline files under knowledge/core and knowledge/plugins.
  • Generated OKF files are marked generated: true and editable: false; files marked generated: false or editable: true are not overwritten.
  • Added an OKF admin community file editor for knowledge/community Markdown with frontmatter fields, Markdown body editing, preview, filename rename support, and generated/non-editable save protection.
  • Added admin feedback-to-correction OKF creation that writes searchable Markdown files under knowledge/corrections and links the generated path back to the reviewed feedback item.
  • Changed selected OKF entry editing into a full-screen admin modal with session-backed draft preservation.
  • Added global opt-in placeholder auto-suggest for fields that declare scoped placeholder sources, with OKF Markdown fields as the first consumer.
  • Added system-generated Throne Wishlist destination template placeholders to the global placeholder auto-suggest, using double-brace syntax while preserving legacy single-brace rendering.
  • Added a server-side placeholder registry, trusted field policy registry, catalog/preview APIs, and save/render validation for first user-visible fields.
  • Split /plugins/okf/admin into tabbed General OKF, Community OKF, and System-generated OKF sections.
  • Added a read-only System-generated OKF admin tab that lists generated core/plugin knowledge files and previews selected Markdown while preserving role-scoped retrieval semantics.
  • Replaced Community and System-generated OKF pill rows with responsive searchable/filterable tables while preserving edit and preview actions.
  • Expanded generated core/plugin OKF route documentation with static route reference details for purpose, inputs, response format, access signals, side effects, and limitations.
  • Capped OKF AI context output from generated route docs so route help queries do not overfill the local model context, and prefer specific route chunks over generic route-list chunks.
  • Added plugins/okf/tests/verify.js.

Core Feedback System

Current state on experimental-okf as of 2026-06-21: the core feedback system is implemented locally and not yet pushed after the latest context-menu, review action, screenshot attachment, Codex export, semantic target, draft-retention, and similar-feedback confirmation refinements. The detailed checklist below is retained for hardening, but this current-state block is the source of truth.

Implemented Locally

  • Core-level feedback storage in SQLite:
    • feedback_entries
    • feedback_comments
    • feedback_status_history
    • feedback_view_state
  • Logged-in feedback submission through:
    • persistent floating feedback button
    • site-wide custom context menu
    • /api/feedback
  • /feedback under Community navigation for logged-in users.
  • /admin/feedback under Admin navigation for admin review.
  • Generic issue categories, severity values, scope types, and status labels.
  • Feedback modal fields for summary, category, severity, scope, description, steps, expected behavior, actual behavior, page URL, page title, clicked-element metadata, and optional browser/viewport diagnostics.
  • Element-targeted feedback from right-click context menu with safe metadata:
    • selector/path
    • tag
    • visible text snippet
    • aria label/title/role
    • nearest label/heading
    • page URL/title
    • viewport size
  • Sensitive form field values are not captured by the element metadata collector.
  • Selected feedback target is highlighted while the modal is open and cleared when closed.
  • User feedback center:
    • public non-identifying feedback summary list
    • “My feedback” section
    • own-feedback detail view
    • submitter comments/follow-up
    • admin replies visible to submitter
  • Per-user notification counters for solved, needs-context, and not-worked/not-planned outcomes.
  • Notification counters reset/update when the user opens /feedback.
  • Admin review page:
    • full feedback details
    • submitter identity
    • target metadata
    • optional diagnostics
    • status history
    • comments/replies
    • private work notes
    • filters for status, category, severity, scope, submitter, and needs-action
    • filters for plugin/area text and submitted date range
    • sorting by newest, oldest, severity, status, and last activity
    • status/category/severity updates
    • admin reply to submitter
    • private admin work note
    • request-more-context support through needs_more_context
    • duplicate/rejected/not-planned/won't-fix/archive/delete statuses
    • manual links to issue/correction references
  • Admin review actions:
    • Finalize & Close
    • reopen closed feedback
    • hard-delete feedback, comments, private notes, status history, and screenshots
    • sensitive-data cleanup for screenshots, diagnostics, target metadata, and public admin replies
    • feedback rows are collapsed by default
  • Moderate submission rate limit.
  • Similar-feedback warnings show matching reports and require an explicit confirmation that the new report is distinct or adds useful context; confirmed reports retain this decision in sanitized diagnostics for admin review.
  • Validation against empty/too-short feedback.
  • Server-side permission checks for submission, own-feedback details, submitter comments, and admin review.
  • EJS escaping and sanitized server-side JSON/text handling for submitted feedback.
  • AI Improvement Center remains separate; wrong_tool_usage classification already exists there.
  • Custom context menu:
    • Back
    • Forward
    • Copy
    • Cut
    • Paste
    • Link to here
    • Hard reload
    • Feedback
  • Context menu availability behavior:
    • all actions remain visible
    • unavailable actions are greyed out and non-interactive
    • Back/Forward availability is history-aware where browser APIs allow
    • Copy is available only for selected text or right-clicked images
    • Cut is available only for selected text inside editable fields
    • Paste is available only when an editable field is active and readable clipboard text exists
    • Link to here, Hard reload, and Feedback remain available
  • Context menu tooltips:
    • show after one second of hover
    • explain each action
    • use fixed positioning
    • clamp to the viewport so they do not overflow or expand the page
  • Context menu keyboard behavior:
    • arrow-key navigation
    • Home/End navigation
    • Enter/Space activation
    • Tab focus wrapping while open
  • Scope label/target field:
    • displayed as a generated read-only “Detected target” field
    • updates when “Feedback is about” changes
    • is regenerated server-side and does not trust submitted free text
  • Optional screenshot support:
    • explicit opt-in only
    • supports image upload
    • supports pasted screenshots from the clipboard where browsers allow
    • avoids browser tab/window picker capture so the browser prompt is not submitted
    • shows an attached screenshot preview
    • lets users remove the screenshot before submitting
    • stores screenshots under data/feedback/screenshots
    • exposes screenshots only to the submitter or admins through authenticated routes
  • General protected attachments:
    • supports up to three optional PNG/JPEG/WebP/PDF/text files per feedback item
    • stores attachments under data/feedback/attachments
    • exposes attachments only to the submitter or admins through authenticated routes
    • supports admin cleanup/removal
  • Public discussion on existing feedback:
    • logged-in users can open public feedback detail without private diagnostics or attachments
    • logged-in users can mark existing feedback as affecting them too
    • logged-in users can add public context comments to existing feedback
  • Feedback form draft retention:
    • backdrop clicks and Escape no longer close the feedback modal
    • explicit close controls preserve the latest non-submitted report in session storage
    • reopening feedback from the floating button or context menu restores the draft
    • attached screenshot blobs are retained across modal close/reopen for the current page session
    • Reset clears the form, stored draft, screenshot, and detected target from the right side of the modal action row

Partially Implemented

  • Optional diagnostics exist for browser/user-agent, viewport, language, current URL, page title, selected scope, target metadata, screenshot attachment source, and opt-in sanitized page structure snapshots.
  • Admin filters cover status/category/severity/scope/plugin-area/submitter/date/needs-action. Richer custom-scope filters are not implemented.
  • Admin-created OKF correction files are available from feedback review, but broader task tracking remains manual and outside the feedback feature.
  • Duplicate handling includes lightweight similar-feedback suggestions from summary, description, scope, category, and page path; an explicit confirmation path for distinct/additional reports; “also affected” counts; and public context comments, but not full duplicate merging.
  • Feedback data is in SQLite under data/app.db, which is preserved by the update system through the existing protected data/ path. Screenshot files are stored under data/feedback/screenshots, also covered by the protected data/ path.

Active Work

OKF Knowledge System: File-Backed Knowledge Storage

  • Add richer category/tag management and Markdown preview/editor polish.
  • Continue enriching the non-editable system-generated OKF files so they act as scoped user manuals and developer support context. Route-level details are now generated; remaining work is broader content quality, role-specific depth, and retrieval tuning so casual admin questions do not receive unnecessary technical detail.

OKF Retrieval and Indexing

  • Add a more advanced persistent OKF index if file count or search volume requires it later.

Global Placeholder System

  • Continue migrating remaining placeholder-compatible fields away from inline JSON/static sources to trusted server-side field_id policies.
  • Consider an admin-managed /admin/settings -> Placeholders registry later for custom placeholders under the {{custom.*}} namespace.
  • Expand additional plugin-owned destination template fields to register generated placeholder sources, following the Throne Wishlist pattern.
  • Add API-backed platform statistic placeholders after reliable fetch/cache layers exist, especially Twitch follower/subscriber counts and scheduled stream start times.
  • Add async OKF AI context placeholder rendering if Lumi AI context providers are updated to support async providers.

Lumi AI Controller Routing

  • Consider a separate controller enablement/advanced-tuning switch only if live testing shows admins need to disable or override the heuristic controller. Internal mode budgets, source profile final-output limits, and controller diagnostics are exposed locally.
  • Expand controller tests with simulated controller timeout cases if the gate model is later changed to emit full controller schema directly. Invalid controller normalization is covered locally.
  • Tune controller heuristics after live use, especially unlimited-mode eligibility and OKF deep-vs-light retrieval thresholds.

AI Reply Feedback and OKF Correction Pipeline

This section is for Lumi chat answer feedback and AI Improvement Center work, not the separate core feedback system.

Feedback Loop

  • Add thumbs up/down controls to Lumi chat answers.
  • Store feedback payloads with rating, prompt, response, retrieved context, optional comment, model/provider, timestamp, and review status.
  • Show an optional comment field for thumbs down and keep thumbs up lightweight.
  • Ensure feedback never directly modifies OKF.

Admin Feedback Review

  • Add an admin feedback review page or section.
  • Show prompt, response, rating, comment, retrieved OKF sources, model/provider, and timestamp for each feedback item.
  • Add review actions: reviewed/no action, good, bad retrieval, bad response, missing knowledge, archive/delete.
  • Add correction creation UI with title, tags, affected topic/file, and Markdown body.
  • Save approved corrections as OKF files and re-index after save.
  • Add links from feedback rows to generated correction files.

Storage and Preservation

  • Store feedback queue, review status, source context snapshots, and correction links in SQLite or existing app storage.
  • Keep community OKF, corrections OKF, feedback/review data, and source metadata preserved across updates.
  • Ensure generated OKF is reproducible and not accidentally overwritten by admin edits.

Core Feedback System: Remaining Hardening

  • Full scroll-page or automatic current-tab screenshot capture is not implemented. Current browser APIs require prompts for page capture, so the implemented path is explicit upload/paste.
  • Full duplicate merge workflow and richer duplicate detection beyond lightweight summary/description/scope/category/page matching.
  • Richer custom scope targeting filters.
  • Broader OKF correction workflow polish for documentation/terminology/knowledge feedback, including review guidance and discoverability.
  • Broader browser testing for image clipboard copy and clipboard-read availability because browser support and permissions vary.

Foundation

  • Implement a general core feedback system available to logged-in users only.
  • Add a persistent feedback entry point somewhere logical in the UI.
  • Add /feedback under the Community navbar section for logged-in users.
  • Add /admin/feedback as the admin review entry point.
  • Ensure the feedback system is core-level functionality and can cover any area, scope, feature, page, plugin, or UI element.
  • Keep the AI Improvement Center separate from this system; it should continue handling AI reply quality feedback.
  • Add a wrong tool classification to the AI Improvement Center for cases where the AI used the wrong tool, action, integration, or capability.

Feedback Categories and Scope

  • Use generic feedback categories based on issue type rather than feature-specific categories.
  • Suggested categories:
    • bug
    • confusing wording
    • broken interaction
    • visual/layout issue
    • accessibility issue
    • missing feature
    • improvement suggestion
    • performance issue
    • permission/access issue
    • unexpected behavior
    • other
  • Allow feedback to target:
    • the whole page
    • a specific clicked UI element
    • the current feature/page
    • a plugin
    • a broad system area
    • other/custom scope
  • Encourage users to submit one feedback item per issue.
  • Add helper text explaining that small, specific feedback reports are preferred over broad combined reports.

Feedback Submission UI

  • Add a feedback modal for creating feedback.
  • The modal should be accessible from the persistent feedback button and from the custom context menu.
  • Require logged-in user identity for all feedback submissions.
  • Allow the user to enter:
    • short summary/title
    • category
    • severity/priority
    • scope/target
    • detailed description
    • optional steps to reproduce
    • optional expected behavior
    • optional actual behavior
  • Support severity/priority values such as:
    • minor
    • confusing
    • broken
    • urgent
    • security/sensitive
    • suggestion
  • Pre-fill feedback scope based on the current page or clicked element when available.
  • Allow users to change the auto-detected scope before submitting.
  • Show clear confirmation after feedback is submitted.

Site-Wide Custom Context Menu

  • Replace the standard browser right-click context menu across Lumi with a custom site-wide context menu.
  • Include the following actions:
    • Back
    • Forward
    • Copy
    • Cut
    • Paste
    • Link to here
    • Hard reload
    • Feedback
  • Ensure context menu actions respect browser permissions and limitations.
  • Ensure copy, cut, and paste only appear or work where appropriate.
  • Implement “Link to here” by creating a URL to the current page and, when possible, the clicked element or section.
  • Implement “Hard reload” as a cache-bypassing reload comparable to a developer hard refresh where possible.
  • Add the Feedback action to open the feedback modal with the clicked element as the target.
  • Preserve keyboard accessibility and provide fallback behavior if custom context menu features are unavailable in a browser.

Element-Targeted Feedback

  • When feedback is opened from the context menu, capture the clicked element as the feedback target.
  • Store safe metadata about the clicked element, such as:
    • selector or generated stable path
    • element tag
    • visible text snippet
    • aria-label/title/role when available
    • nearest form label or heading
    • page URL
    • page title
    • viewport size
  • Do not store sensitive field values from passwords, tokens, secrets, or private inputs.
  • Allow users to choose whether feedback is about the clicked element, the whole page, the current feature, a plugin, or another scope.
  • Highlight the selected target while the feedback modal is open when practical.
  • Remove the highlight when the modal closes.

Optional Screenshot Support

  • Add optional screenshot attachment support without browser tab/window picker prompts.
  • Screenshots must be opt-in by the submitting user.
  • Do not require screenshots for feedback submission.
  • Support uploaded screenshot image files.
  • Support pasted screenshots from the clipboard where browsers allow it.
  • Consider full-page screenshots only if a safe DOM-rendering implementation or browser extension path is added later.
  • Store screenshots only when explicitly attached by the user.
  • Clearly warn users not to include sensitive information in screenshots.
  • Allow users to remove an attached screenshot before submitting.

Optional Diagnostic Data

  • Automatically attach basic non-sensitive context:
    • user ID
    • current URL
    • page title
    • timestamp
    • selected scope
    • target metadata if element-targeted
  • Make browser/user agent and screenshot/DOM snapshot optional opt-in fields.
  • If DOM snapshot support is added, sanitize it before storage.
  • Do not capture sensitive form values, passwords, tokens, secrets, private messages, or hidden data.
  • Clearly label optional diagnostic data so users understand what they are submitting.

Feedback Visibility for Users

  • On /feedback, show logged-in users a general list of current and past feedback that has not been deleted.
  • Public/general feedback list should only show basic non-identifying information:
    • summary
    • category
    • general scope
    • status
    • created date
    • last updated date
  • Do not expose submitter identity in the general feedback list.
  • Allow users to see their own feedback in detail.
  • Make it easy to distinguish the current users own feedback from general feedback.
  • Consider a separate “My feedback” section or a clear badge/label in the shared list.
  • Allow users to add comments to their own feedback when follow-up is needed.
  • Allow users to see admin replies that are visible to the submitter.

User Feedback Notifications

  • Add per-user feedback notification badges.
  • Show a green badge/sphere with the number of the users feedback items solved since they last opened the feedback center.
  • Show a red badge/sphere with the number of the users feedback items marked as needing more context.
  • Show a grey badge/sphere with the number of the users feedback items marked as declined, rejected, duplicate, wont fix, not planned, or otherwise not being worked on.
  • Reset or update badge counts when the user opens the feedback center and views the relevant items.
  • Ensure notification badges only reflect the logged-in users own feedback.

Feedback Statuses

  • Support feedback statuses such as:
    • new
    • reviewed
    • accepted
    • planned
    • in progress
    • fixed
    • solved
    • needs more context
    • duplicate
    • rejected
    • not planned
    • wont fix
    • archived
    • deleted
  • Allow admins to change status from the admin review UI.
  • Store status history with timestamps and actor information.
  • Show user-friendly status names and explanations on /feedback.

Replies, Comments, and Work Notes

  • Allow admins to reply to feedback.
  • Allow submitters to comment on their own feedback.
  • Allow admins to add private internal work notes that are not visible to normal users.
  • Allow admins to mark feedback as “needs more context”.
  • When feedback is marked “needs more context”, notify the submitter through the red feedback badge.
  • Allow the submitter to add additional context/comments after the request.
  • Distinguish clearly between public/admin replies, submitter comments, and private admin work notes.

Admin Feedback Review

  • Add /admin/feedback for admin feedback review.
  • Admins should be able to view full feedback details, including:
    • submitter
    • summary
    • description
    • category
    • severity
    • scope
    • target metadata
    • current URL
    • browser/user agent if submitted
    • screenshot if submitted
    • DOM snapshot if submitted
    • comments/replies
    • work notes
    • status history
  • Add filters for:
    • status
    • category
    • severity
    • scope
    • plugin/area
    • submitter
    • date
    • needs admin action
  • Add sorting by newest, oldest, severity, status, and last activity.
  • Add admin actions:
    • change status
    • assign category
    • change severity
    • reply to submitter
    • add internal work note
    • request more context
    • mark duplicate
    • archive
    • delete
    • convert to OKF correction where relevant
    • link to existing issue/correction

OKF and AI Improvement Integration

  • Keep this feedback system separate from AI reply feedback.
  • Do not use this feedback system to rate individual AI replies.
  • Use the AI Improvement Center for AI answer quality, wrong answers, bad context, and correction review.
  • Add wrong tool as a classification in the AI Improvement Center.
  • Allow core feedback to cover AI features, AI UI, AI configuration, and AI workflow problems.
  • Allow admins to convert relevant core feedback into OKF corrections only when the feedback concerns documentation, feature behavior, terminology, or community/system knowledge.
  • Do not automatically modify OKF based on general feedback.

Rate Limits and Abuse Prevention

  • Add moderate rate limits for feedback submissions.
  • Rate limits should prevent spam without blocking normal use.
  • Encourage one feedback item per issue.
  • Add validation to prevent empty or extremely vague feedback.
  • Add optional duplicate detection based on similar title, scope, and page.
  • If similar existing feedback exists, suggest adding a public comment or marking that it affects the user too instead of creating a duplicate.
  • Allow admins to delete or archive abusive/spam feedback.

Data Storage and Preservation

  • Store feedback data in SQLite or the existing app storage system.
  • Store screenshots and optional attachments in a protected feedback uploads/storage directory.
  • Preserve feedback data across repo updates, ZIP updates, migrations, and recovery operations.
  • Include feedback data in the protected user-data list for backups and update preservation.
  • Never overwrite feedback data during core/plugin updates.
  • Include feedback data in backup/restore planning.
  • Store enough metadata for auditability:
    • created_at
    • updated_at
    • submitter_id
    • assigned_admin_id if used
    • status history
    • comments/replies
    • linked issues/corrections

Privacy and Safety

  • Do not expose submitter identity in the general feedback list.
  • Only admins should see submitter identity and full diagnostic details.
  • Users should only see full detail for their own feedback.
  • Sanitize all submitted HTML/text before rendering.
  • Avoid capturing sensitive form values.
  • Make optional diagnostic capture transparent to users.
  • Add admin controls for deleting sensitive feedback, screenshots, or diagnostic data.
  • Ensure permissions are enforced server-side, not only in the UI.

Acceptance Criteria

  • Logged-in users can submit general feedback from a persistent UI entry point.
  • Logged-in users can submit targeted feedback from the custom right-click context menu.
  • Right-click context menu includes Back, Forward, Copy, Cut, Paste, Link to here, Hard reload, and Feedback.
  • Feedback modal can target the whole page, clicked element, current feature/page, plugin, broad system area, or custom scope.
  • Users can optionally attach screenshots by upload or clipboard paste.
  • /feedback appears under the Community navbar section for logged-in users.
  • /feedback shows general non-identifying feedback summaries and detailed feedback for the current users own submissions.
  • Users see per-user notification badges for solved, needs-context, and not-worked-on feedback.
  • Admins can review and manage feedback at /admin/feedback.
  • Admins can reply, add work notes, request more context, change statuses, finalize and close, reopen closed feedback, and permanently delete feedback.
  • Feedback data is preserved across updates and included in protected user data.
  • AI reply feedback remains handled by the AI Improvement Center, with an added wrong tool classification.

Homepage Hero System and Embeds

General Hero Embed Requirements

  • Continue improving service-specific "why unavailable" messages where external providers expose enough signal.
  • Improve handling of live-only Twitch heroes and live-state detection.
  • Add explicit Discord invite-to-widget guidance or lookup support if Discord server IDs are not known.

Discord Server Widget Hero

  • Add optional Discord invite-to-server-ID lookup support if Discord server IDs are not known.

Twitch Stream Hero

  • Support additional configured parent domains for alternate hostnames.
  • Support stream-only and stream-with-chat layouts.
  • Respect Twitch minimum player size requirements.
  • If live-only mode is enabled, check live status or gracefully hide/fallback when offline.
  • Show a clear admin warning when the Twitch embed fails due to missing or incorrect parent domain.
  • Add admin helper text explaining that Twitch embeds require the site domain to be allowed as a parent domain.

YouTube Live Hero

  • Support YouTube live video URLs, raw video IDs, and optional channel-based live lookup.
  • For static live heroes, extract and use the provided live video ID.
  • For automatic channel live detection, require YouTube API configuration.
  • Cache live lookup results to avoid excessive API calls.
  • Support optional live-only mode.
  • Support optional YouTube live chat only when a valid live video ID exists.
  • Support autoplay and muted settings.
  • If live-only mode is enabled and no active stream is found, skip the hero or show fallback content.
  • Show fallback/error states for private, removed, age-restricted, embedding-disabled, unavailable, or not-yet-live videos.
  • Add admin helper text explaining that YouTube Live requires either a live video link or API-based channel lookup.

YouTube Video Hero

  • Show fallback/error states for private, removed, age-restricted, unavailable, or embedding-disabled videos.
  • Detect embedding-disabled videos before save when a YouTube API key or another reliable server-side signal is available.

External Embedded Content Hero

  • Support generic external iframe embeds only for sites that explicitly allow embedding.
  • Detect or gracefully handle sites that block embedding through X-Frame-Options or CSP frame-ancestors.
  • Show an admin warning when an external site refuses to be embedded.

Hero Embed Admin UX

  • Show “why unavailable” information in the admin UI when a hero cannot render.

Homepage Hero UX Improvements

  • Review all homepage builder forms for non-technical usability.
  • Add tooltips and inline explanations where appropriate.

Update Page UX Improvements

  • Add async in-place checks for the older /admin and /admin/settings update buttons, matching /admin/updates.
  • Continue simplifying advanced update terminology without hiding recovery-critical detail.

UI Text and Button Language

  • Review all button labels, field labels, headings, helper text, warnings, empty states, and confirmation dialogs across Lumi.
  • Replace technical/internal wording with clearer user-facing wording where possible.
  • Keep AI-related wording precise enough for admins to understand model, provider, context, retrieval, embeddings, feedback, corrections, and OKF behavior.
  • Review the update pages and simplify labels such as Check plugin, Apply safe target, and Disable for recovery.
  • Prefer clear action labels such as Check for updates, Update plugin, Use recommended version, Disable temporarily, and Start recovery mode.
  • Add short helper text below advanced or risky update actions explaining what will happen.
  • Replace implementation-focused wording with task-focused wording wherever practical.
  • Avoid exposing Git, branch, commit, target, repository, cache, migration, or rollback terms unless the user needs them.
  • When technical terms are unavoidable, add short tooltips or inline explanations.
  • Standardize common action wording across all pages: save, update, check, review, restore, disable, enable, archive, delete, retry, import, export, cancel, and confirm.
  • Ensure destructive or system-changing actions have clear confirmation text.
  • Ensure error messages explain both what went wrong and what the admin can try next.
  • Review plugin management, core settings, update pages, homepage management, OKF management, feedback review, and AI configuration for inconsistent wording.
  • Split highly technical pages into simple and advanced sections where practical.
  • Hide rarely needed expert controls behind expandable advanced sections.
  • Add examples for fields that expect URLs, model names, provider names, paths, selectors, or structured values.
  • Ensure labels and helper text are suitable for non-technical admins without removing important admin-level specificity.
  • Review localization/translation keys if present so simplified wording remains consistent across languages.

Custom Commands

  • Wrap function run(ctx){ ... } around each custom command, preventing the requirement of it being defined, but leaving support for it being defined if it is.
  • Incorporate more custom command modes:
    • Random Reply
      • Has an optional RNG number that can be enabled and refernced from within the messages, and can also be used to define message selection criteria (eg. rng must = <20|>10)
      • Has an optional weight system that returns a message randomly based on a weight as an int 1-999

Done

2026-06-25

  • 2026-06-25: Continued Lumi AI runtime CUDA-preference work locally: Windows NVIDIA-compatible installs now prefer the managed CUDA llama.cpp runtime over Vulkan, the runtime manifest supports CUDA dependency archives, runtime downloads validate/reuse complete partial archives, install metadata records the backend variant/dependencies, and /plugins/lumi_ai shows the total runtime download size. No repo push yet.
  • 2026-06-25: Fixed Lumi AI runtime reinstall lock handling locally: redownloading/reinstalling the managed runtime now stops main and gate runtimes just before file replacement, pauses gate auto-recovery during install, replaces runtime files through a retryable backup/restore path, reports locked runtime files clearly, and shows install-stage download status. No repo push yet.
  • 2026-06-25: Fixed Lumi AI simple OKF lookup routing locally: short factual identity-style prompts now deterministically route to main LLM with light OKF retrieval instead of failing through the gate runtime, OKF file search ignores common lookup stopwords and handles compact/camel-case names, no-context prompts use a smaller compact scaffold, OKF retrieval diagnostics record query/candidate/fallback details, and a community people OKF seed file plus verifier coverage were added. No repo push yet.
  • 2026-06-25: Fixed broken timed-confirmation buttons locally: added core LumiConfirm.destructiveToken/destructiveFetch helpers for JSON/fetch actions that need backend confirmation tokens, moved the Lumi AI tool settings reset button onto that flow, and changed the Lumi AI eval-case delete button to the shared timed confirmation modal instead of the older custom confirm prompt. No repo push yet.

2026-06-21

  • 2026-06-21: Fixed Lumi AI WebUI final delivery locally: WebUI no longer inherits a fixed platform character cap, constrained sources compact at safe text boundaries instead of raw tail truncation, and delivery diagnostics record whether compaction occurred. No repo push yet.
  • 2026-06-21: Tightened feedback-to-Codex default exports locally: output is now task-centric strict JSON with short source references, route-only internal locations, deduplicated task sections, and full raw metadata retained only in the separate debug export. No repo push yet.
  • 2026-06-21: Reworked Community and System-generated OKF file listings locally into responsive searchable/filterable tables using existing Lumi UI patterns while preserving file actions and permission behavior. No repo push yet.
  • 2026-06-21: Added confirmed similar-feedback submission locally: matching reports are shown before submission, users can explicitly confirm that a report is distinct or adds context, and the server validates and records that confirmation before creating the report. No repo push yet.

2026-06-20

  • 2026-06-20: Split OKF Management locally into General OKF, Community OKF, and System-generated OKF tabs; kept community files editable, kept generated core/plugin OKF read-only, and added generated file preview links backed by the existing file knowledge loader. No repo push yet.
  • 2026-06-20: Expanded generated system OKF route documentation locally: generated core/plugin files now include route purpose, detected request inputs, response format, access signals, side effects, and static-analysis limitations; plugin routes now use mounted full paths. No repo push yet.
  • 2026-06-20: Fixed generated OKF route docs overloading Lumi AI prompts locally: OKF context now keeps only the top high-signal chunks, drops generic route-list chunks when specific route chunks match, and enforces a hard context character budget before inference. No repo push yet.
  • 2026-06-20: Added a first Lumi AI controller-routing pass locally: introduced a validated controller decision schema, internal modes fast|normal|expanded|unlimited, OKF retrieval depths, source profile metadata, controller metrics/diagnostics, controller-aware output budgets, and safe fallback so low-confidence/failed gate decisions escalate to at least normal processing instead of tiny simple-answer budgets. No repo push yet.
  • 2026-06-20: Continued Lumi AI controller-routing locally: exposed source-profile final-output limits in Lumi AI admin settings, kept internal processing budgets code-owned/dynamically selected, added a compact controller stage event for assistant jobs, and surfaced controller mode/reason in recent job diagnostics without showing token-budget columns. No repo push yet.
  • 2026-06-20: Hardened Lumi AI controller diagnostics locally: controller normalization now clamps invalid source profiles and bad enum values, delivery metrics include controller details plus truncation/final-delivered lengths, and settings metrics visibly mark truncated replies. No repo push yet.
  • 2026-06-20: Corrected Lumi AI controller budget UX locally: removed user-facing token budget controls, raised code-owned dynamic controller mode budgets so OKF route explanations are not starved, removed token-budget columns from diagnostics, and lifted the global Feedback button above the assistant chat panel when visible. No repo push yet.
  • 2026-06-20: Added grouped Lumi AI work history locally as an enhancement to the existing Metrics table: request-scoped prompt/controller/gate/OKF/prompt-build/model/delivery/error/fallback events are grouped by work item inside #metrics > div.table-wrap > table, with full-row expandable summaries and nested lifecycle sub-tables, processed/final/delivered token estimates, filters, count/age retention, safer route-like prompt classification, and fallback recording for empty model responses. No repo push yet.

2026-06-19

  • 2026-06-19: Added admin feedback-to-Codex export locally on experimental-okf: per-feedback Export to job, selected/all eligible global export, sanitized JSON taskfile modal with copy/download, optional Lumi AI compression using a configurable token/context limit, and the internal-feedback-to-codex-taskfile trigger phrase. No repo push yet.
  • 2026-06-19: Fixed feedback-to-Codex export UX locally: export clicks now open a modal reliably, the result surface is copy-focused, AI compression controls render only when Lumi AI is actually available, and token/context limit appears only when AI compression is enabled. No repo push yet.
  • 2026-06-19: Refined feedback-to-Codex export locally: default output is now a compact strict-JSON Codex taskfile with normalized severity/priority, actionable areas to inspect, concrete requirements/criteria/validation, privacy redaction, and closed/duplicate/rejected feedback kept debug-only; full verbose export remains selectable as debug mode. No repo push yet.
  • 2026-06-19: Fixed feedback submission without screenshots by making the screenshot normalizer accept null/no-file submissions and store empty screenshot columns instead of throwing. No repo push yet.
  • 2026-06-19: Applied exported feedback task 51386173-03bc-4674-82ca-e5cdcb6088ed locally: OKF entry creation moved into a modal opened by a top-right OKF admin header button, while editing remains inline and server-side permissions/routes are unchanged. No repo push yet.
  • 2026-06-19: Improved feedback target capture locally: detected target now stores a semicolon-separated semantic UI path such as /admin/feedback;Feedback queue;Feedback entry metadata instead of raw clicked-container text, and exports prefer that path. No repo push yet.
  • 2026-06-19: Updated feedback-to-Codex export context locally: compact taskfiles and AI compression now include sanitized submitter comments, admin replies, and private admin work-note context without actor identity or raw private data. No repo push yet.
  • 2026-06-19: Applied exported feedback task locally: taskfile-export.json is ignored/local-only, feedback modal backdrop clicks and Escape no longer close the form, non-submitted feedback drafts persist in session storage and restore from the floating button or context menu, current-session screenshot attachments survive close/reopen, and Reset clears the draft from the right side of the modal action row. No repo push yet.
  • 2026-06-19: Added conservative feedback-to-Codex grouping locally: default compact exports now merge likely related actionable feedback by shared root-cause signals, route/target similarity, and error patterns, with grouped source references, affected targets, support counts, privacy-safe distinct reporter counts, and debug export left unchanged. No repo push yet.
  • 2026-06-19: Added first file-backed OKF retrieval locally: documented knowledge/core, knowledge/plugins, knowledge/community, and knowledge/corrections; added Markdown/frontmatter parsing, heading chunks, source metadata, user/mod/admin visibility checks, corrections/community/plugins/core priority, Lumi AI context integration, and verifier coverage. No repo push yet.
  • 2026-06-19: Hardened file-backed OKF retrieval locally: added access-aware placeholder resolution for visible frontmatter values, generic missing-reference markers for hidden/unavailable references, mtime/size-based changed-file reuse, deleted-file cache cleanup, and verifier coverage for placeholder privacy plus update/delete reindexing. No repo push yet.
  • 2026-06-19: Added generated core/plugin OKF locally: generator creates reproducible knowledge/core/lumi-core.md and per-plugin knowledge/plugins/*.md files from package metadata, README, core routes, plugin manifests, plugin routes, and static command trigger hints; generated files are skipped when marked editable or non-generated. No repo push yet.
  • 2026-06-19: Added admin-editable community OKF files locally: /plugins/okf/admin now lists, creates, edits, previews, and renames knowledge/community Markdown files with frontmatter fields and refuses saves to generated or non-editable files. No repo push yet.
  • 2026-06-19: Added admin feedback-to-correction OKF creation locally: /admin/feedback can create sanitized, searchable correction Markdown files under knowledge/corrections, records source feedback metadata, links the generated path back to the feedback item, and verifier coverage confirms correction file search priority. No repo push yet.
  • 2026-06-19: Added OKF admin category/tag suggestions locally: create/edit entry forms and community file forms now use existing category/tag datalist suggestions from all manageable OKF entries plus community files to reduce duplicated taxonomy wording. No repo push yet.
  • 2026-06-19: Refined OKF admin editing locally: selected entries now open in a full-screen modal with session-backed draft preservation and explicit close/reset controls, and the Community OKF category suggestion input no longer shows a misleading dropdown arrow. No repo push yet.
  • 2026-06-19: Added OKF update preservation notes/tests locally: knowledge/README.md documents preserved local OKF paths, and the OKF verifier asserts repo-based updates preserve knowledge/community and knowledge/corrections. No repo push yet.
  • 2026-06-19: Added global placeholder auto-suggest locally: placeholder-compatible fields opt into scoped JSON placeholder sources, suggestions trigger from {{ through the first whitespace-delimited token, current-level suggestions can be inserted by keyboard or click, invalid completed placeholders get a faint red backlight when the cursor leaves them, and OKF admin Markdown fields now use OKF placeholder suggestions. No repo push yet.
  • 2026-06-19: Refined global placeholder auto-suggest locally: inline suggestions now show up to 9 current-level options plus a distinct Expand action that opens a searchable placeholder tree; live search greys out non-matching tree entries and collapses branches with no matches; selecting a tree leaf inserts the full placeholder and closes the modal. No repo push yet.
  • 2026-06-19: Refined placeholder tree display locally: the Expand modal now renders recursive collapsible placeholder levels instead of repeating full placeholder strings, with structural {{, ., and }} tokens muted so branch/field names are easier to scan. No repo push yet.
  • 2026-06-19: Fixed placeholder suggestion source locally: auto-suggest now exposes only authored/custom frontmatter keys, not generic metadata like scope, status, editable, or generated on every OKF entry; manual placeholder resolution remains permissive for explicit metadata references. No repo push yet.
  • 2026-06-19: Improved placeholder level selection locally: choosing an inline branch suggestion ending in . keeps the suggestion menu open and refreshes to the next level, so admins can click through levels smoothly without deleting/retyping punctuation. No repo push yet.
  • 2026-06-19: Corrected placeholder direction locally: removed the Community OKF per-file custom placeholder editor, kept OKF placeholder suggestions system-generated from visible file metadata, and added Throne Wishlist destination message placeholders as a generated double-brace source with legacy single-brace rendering preserved. No repo push yet.
  • 2026-06-19: Added secure placeholder registry locally: src/services/placeholders.js now owns server-side placeholder definitions, trusted field policies, shared access checks, catalog/preview APIs, save-time validation, and runtime rendering; custom command static responses and Throne Wishlist message templates use field policies, Throne registers namespaced {{plugin.throne_wishlist.*}} placeholders with legacy aliases, raw payload_json is withheld from user-visible output, the frontend catalog fetches by data-placeholder-field, and docs/placeholder-system.md documents the architecture/security rules. No repo push yet.
  • 2026-06-20: Extended placeholders locally for OKF and platform integrations: OKF Markdown fields now use the global server catalog with output-audience-specific policies, SQLite-backed OKF entries validate placeholders on save and resolve them on display, file-backed OKF frontmatter values register as {{okf.file.*}} placeholders with legacy aliases, and safe platform placeholders were added for Discord guild stats plus locally available Twitch/YouTube channel/runtime values. No repo push yet.
  • 2026-06-19: Added OKF placeholder migration locally: OKF startup runs a one-time conversion for single-brace dotted OKF placeholders in knowledge/*.md, changing examples like {community.currency.primary_name} into {{community.currency.primary_name}} without touching already-double placeholders or unrelated plugin token systems. No repo push yet.

2026-06-18

  • 2026-06-18: Fixed urgent UI tail items locally on experimental-okf: mobile sidebar now fits the viewport and scrolls internally, moderation notes can be permanently deleted by admins, both theme preview pop-out buttons open the preview, unauthenticated pages use the Lumi context menu with Feedback disabled, and the global savebar now submits URL-encoded settings data so normal settings routes actually save. No repo push yet.
  • 2026-06-18: Updated OKF aliases/related questions to newline-only parsing and display so commas remain valid inside questions. No repo push yet.
  • 2026-06-18: Continued experimental-okf locally: wired OKF into Lumi AI through the generic context provider hook, made AI context providers user/message-aware, and verified OKF AI context only includes published/approved entries and fields visible to the requester. No repo push yet.
  • 2026-06-18: Continued experimental-okf locally: added shared core live user lookup, migrated OKF/Lumi AI/Moderation/Economy user-selection fields to it, fixed the moderation target search field, added OKF restore-from-version, and added OKF role-preview cards. No repo push yet.
  • 2026-06-18: Started experimental-okf with a standalone OKF plugin: role-gated SQLite entries, sanitized Markdown browsing, admin/editor management, per-user OKF grants, workflow actions, version snapshots, and first verification coverage. No repo push yet.
  • 2026-06-18: Emergency patched /admin/navigation so the Unassigned items pool stays sticky while editing sections on desktop, and aligned Save navigation / Reset to default actions in a shared horizontal Lumi button group.
  • 2026-06-18: Removed feedback conversion actions from the experimental feedback system, added Finalize & Close/Reopen/Delete admin actions, made delete hard-remove feedback records/comments/notes/history/screenshots, kept admin feedback rows collapsed by default, and replaced browser tab capture screenshots with upload/clipboard-paste attachments.
  • 2026-06-18: Fixed experimental feedback review buttons to use the stable save endpoint for Finalize & Close/Reopen and added a reusable Lumi button-group utility, including the .field.button-group specificity case, so review buttons align horizontally.
  • 2026-06-18: Moved feedback screenshot guidance above Description, centered feedback screenshot/form action rows, and moved feedback modal sizing overrides into the later-loaded Lumi component layer so generic .modal styles no longer win.
  • 2026-06-18: Added feedback “also affects me” records, user-facing similar-feedback suggestions before submit, admin plugin/area/date filters, sensitive-data cleanup controls, and keyboard navigation for the custom context menu; dropped external issue creation from the feedback roadmap and left OKF conversion deferred.
  • 2026-06-18: Added protected general feedback attachments, protected attachment downloads, admin attachment cleanup/removal, viewer-safe public feedback details, and public context comments on existing feedback.
  • 2026-06-18: Added opt-in sanitized page structure diagnostics for feedback, excluding sensitive form values and capping stored snapshot text server-side.
  • 2026-06-18: Updated the experimental feedback context menu locally so all actions remain visible with disabled unavailable states, Back/Forward/Copy/Cut/Paste availability is context-aware, image/text copy and input-only cut/paste rules are enforced where browsers allow, and one-second viewport-clamped tooltips explain each action.
  • 2026-06-18: Added a core feedback system first pass on experimental-feedback-system: SQLite feedback entries/comments/status history/view state, logged-in /feedback, admin /admin/feedback, persistent feedback modal, site-wide custom context menu with element-targeted feedback, per-user notification badges, admin replies/work notes/status changes, and AI Improvement Center wrong_tool_usage confirmed present.

2026-06-17

  • 2026-06-17: Added Economy cleanup for fallback-name artifact users such as SammyCat-2, merging them into matching real platform users and making Economy stats tolerate missing/mid-migration tables; bumped Economy Framework to v0.2.9.
  • 2026-06-17: Fixed update metadata for renamed Economy plugins so legacy installed rows are folded into canonical economy-* plugin update rows instead of appearing as separate installs; bumped core to v0.1.8.
  • 2026-06-17: Renamed all remaining Economy internals from the old misspelled IDs/paths/tables to economy-*, added startup migration for legacy plugin rows, settings, command usage IDs, tables, uploads, asset paths, old URLs, and bumped core/plugin patch versions.
  • 2026-06-17: Fixed user-facing Economy spelling, restored /stats/{username} Compare toggling, linked Top commands run leaderboard entries to /commands, and bumped core/plugin patch versions.
  • 2026-06-17: Fixed custom command Edit buttons and /commands Copy Link / expand buttons with delegated handlers, clipboard fallback, and v0.1.5 patch bump.
  • 2026-06-17: Fixed repo-based core updates deleting data/update-cache/repo during apply, added a verification guard, and bumped core package version to v0.1.4.
  • 2026-06-17: Bumped core package version to v0.1.3.
  • 2026-06-17: Completed homepage hero embed pass for Discord widgets, YouTube video playback options, external embed fallback/sandbox controls, admin validation, platform-specific fields, and Test preview behavior.
  • 2026-06-17: Fixed core update snapshots for large ZIP-origin installs by replacing the full-install ZIP backup with a filesystem snapshot directory, avoiding the 2 GiB ZIP limit for large preserved files such as local AI models.
  • 2026-06-17: Completed /admin/updates UX pass: viewport-fixed dismissible notifications, auto-dismiss for non-critical results, async core/plugin check actions without page refresh or scroll jumps, in-place update-card data refresh, loading states, and collapsed advanced Manual ZIP fallback below repo update containers.
  • 2026-06-17: Completed homepage hero reliability pass: server-side hero validation before save, admin-visible validation errors, home-page fallback message for broken legacy heroes, automatic YouTube/Twitch/Discord embed derivation, correct Twitch parent host at render time, and image/embed conflict handling.
  • 2026-06-17: Completed homepage hero builder UX pass: friendlier labels, contextual help text, normal URL paste support, automatic embed filling, per-row readiness messages, and test preview support.
  • 2026-06-17: Fixed homepage links to support local Lumi paths such as /commands, and made unavailable live-only heroes fall through to lower-priority heroes instead of blocking the homepage.
  • 2026-06-17: Completed update-page wording cleanup for common actions such as check, update, restore previous version, disable temporarily, and ZIP rollback wording.
  • 2026-06-17: Added permanent repo-update architecture for ZIP-origin installs using data/update-cache/repo, non-live-git metadata checks, snapshot-copy apply, update-state recording, and preservation of user-owned paths.
  • 2026-06-17: Separated Lumi AI tool_info.json tools from normal plugin update rows and rendered tools under the lumi_ai plugin row.