Mimir: Web Search feature & impoving the CPU budget usage (#202)

* game-launcher: add launcher toggles, keyboard nav, auto-refresh

* game-launcher: update README with runner toggle settings

* fix: remove duplicate translation keys after upstream merge

* fix(game-launcher): add ~/.local/share/Steam to steam roots for NixOS support

* chore(game-launcher): bump version to 1.1.1

* feat(mimir): AI companion plugin with LLM chat panel

Mimir is an AI companion for Noctalia — an LLM-powered chat interface
with model selection, conversation history, and a bar widget.

- Service-based architecture: service (brain) handles HTTP API calls,
  panel (chat) renders the UI, widget (status) shows bar indicator
- OpenAI-compatible chat completions with dynamic model discovery
- Floating side panel (center_right) with message history and
  simple markdown rendering (code blocks)
- Model selection dropdown populated from API /models endpoint
- Bar widget with brain icon to toggle chat panel
- i18n via translations/en.json
- Auto-detection of OpenCode Go API key from auth.json
- Full-height floating panel layout matching oficial notes plugin

.gitignore: add editor files, OS junk, auth secrets, compiled binary

* mimir: rename author leo->Alexander, strip scrollBottom, update README with plans

- plugin.toml: author leo -> Alexander, widget panel-toggle id -> alexander/mimir
- widget.luau: togglePanel id -> alexander/mimir:chat
- panel.luau: remove scrollBottom/dynamic key (unstable), remove setUpdateInterval
- README.md: add future plans (commands, file search, etc.)
- thumbnail.webp: removed (replaced by mimir-thumbnail.webp)

* added thumbnail

* added thumbnail.webp

* mimir: bump 0.1.0 → 0.3.0, update README with tools + copy + editable approval

* mimir: copy-to-clipboard toggle, editable command approval, unicode bold rendering

* mimir: fix review findings — conditional auth, dedupe user msg, apply max_history

* mimir: fix manifest validation — use select setting type, add README Plugin section

* mimir: multi-tool queue support, plain approve/deny, better tool-use prompt

* mimir: add full markdown rendering — headings, lists, quotes, hr, bold/italic

* mimir: bump 0.3.2 — fix Lua pattern quantifiers, multi-tool queue, markdown rendering

* mimir: fix security review findings

* mimir: clarify selectable message text

* mimir: add command history display

* mimir: add web search

* mimir: align README with template

* mimir: fix CPU budget error with many messages

---------

Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
This commit is contained in:
Ahmed Emad
2026-08-01 21:36:12 -04:00
committed by GitHub
co-authored by Ahmed5Emad
parent a25493bcb1
commit dbec4a7190
7 changed files with 569 additions and 197 deletions
+10 -3
View File
@@ -1,12 +1,12 @@
id = "alexander/mimir"
name = "Mimir"
version = "0.4.0"
version = "0.5.0"
plugin_api = 16
author = "Alexander"
license = "MIT"
icon = "brain"
description = "An AI companion for Noctalia that brings LLM-powered chat directly into your desktop."
dependencies = []
dependencies = ["curl", "python3"]
tags = ["ai", "utility", "productivity", "development"]
[[widget]]
@@ -66,7 +66,14 @@ key = "tool_blocklist"
type = "string"
label_key = "settings.tool_blocklist.label"
description_key = "settings.tool_blocklist.description"
default = "sudo,su,passwd,rm,mv,shred,truncate,tee,install,chown,chmod,mount,umount,dd,mkfs,fsck,reboot,shutdown,poweroff,init,halt,curl,wget,nc,ncat,socat,env,find,xargs,sh,bash,zsh,fish,python,python3,perl,ruby,node,lua,luau,eval,source,busybox,make,cmake,just,task"
default = "sudo,su,passwd,rm,mv,shred,truncate,tee,install,chown,chmod,mount,umount,dd,mkfs,fsck,reboot,shutdown,poweroff,init,halt,curl,wget,aria2c,nc,ncat,socat,telnet,ftp,ftps,lftp,ssh,scp,sftp,sshpass,autossh,expect,rsync,rclone,openssl,git,svn,smbclient,s3cmd,aws,gcloud,az,gsutil,env,find,xargs,sh,bash,zsh,fish,python,python3,perl,ruby,node,lua,luau,eval,source,busybox,make,cmake,just,task"
[[setting]]
key = "web_search_enabled"
type = "bool"
label_key = "settings.web_search_enabled.label"
description_key = "settings.web_search_enabled.description"
default = true
[[setting]]
key = "show_commands"