279 Commits
Author SHA1 Message Date
Gabriel Fontes 1cec5bbd6c chore(flake): update inputs
Update direct inputs:
- firefox-addons a5ad6b67 -> 25227969 (84 commits; uBlock Origin 1.71.0 -> 1.73.0)
- nixos-hardware 2e790b0a -> 0471accf (15 commits; Raspberry Pi and P14s fixes)
- home-manager 06258193 -> 03f4cd46 (203 commits; module fixes, additions, and migrations)
- lanzaboote 6650fb7c -> 69cf334f (34 commits; firmware key option, docs, and dependency updates)
- nix-minecraft 794884da -> 25b4dfcd (54 commits; server locks and NeoForge fixes)
- nixos-mailserver c37fd9c4 -> e668474d (23 commits; Postfix CA workaround and maintenance)
- sops-nix 420f8d2e -> a8627b21 (17 commits; dependency and initrd test fixes)
- system-manager 48d47346 -> 64748b62 (3 commits; unstable/stable branch support)
- nixpkgs 567a49d1 -> 56c02bc0 (104 direct system/home package changes)

Keep the legacy RuneScape client working with OpenSSL 1.1 from a pinned
nixos-26.05 input, and preserve the removed Materia theme locally without
its obsolete Murrine runtime dependency. Adapt removed package references and
renamed NixOS/Home Manager options exposed by the update.

- rebase the llama.cpp cache-scan patch onto 10408
- adapt the fish-helix compatibility patch to Fish 4.8
- update Hyprbars for the Hyprland 0.56 plugin API
- use the Python distribution name for Lyrics metadata checks
- disable broken qutebrowser GBM video path (QtWebEngine 6.11.1)

Assisted-by: pi (gpt-5.6-sol)
2026-08-27 09:45:57 -03:00
Gabriel Fontes 3f579c338d refactor(projects/runelite-query): replace mcp with http api
Rename the plugin and expose its read-only RuneLite snapshots through versioned GET endpoints with on-demand OpenAPI discovery. Preserve typed state, filtering, event cursors, bounds, and loopback protections while removing JSON-RPC, tool discovery, prompts, Wiki proxying, and all compatibility paths.

Replace the Pi MCP adapter and registry with a contextual RuneLite Query skill, and cover every endpoint using mocked RuneLite response shapes plus an ephemeral HTTP server.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-08-25 18:16:18 -03:00
Gabriel Fontes 940fcc823f refactor(projects/gtkhal): rename khora to gtkhal
Assisted-by: pi (gpt-5.6-sol)
2026-08-16 11:11:17 -03:00
Gabriel Fontes 1d21154a47 feat(projects/khora): scaffold graphical vdir calendar
Add a read-only GTK/libadwaita agenda backed by khal, with calendar
filters, Nix packaging, desktop metadata, and model tests.

Assisted-by: pi (gpt-5.6-sol)
2026-08-15 12:23:27 -03:00
Gabriel Fontes a9a0110a36 fix(overleaf-sync): push after commit editor closes
Assisted-by: pi (gpt-5.6-sol)
2026-08-15 11:57:12 -03:00
Gabriel Fontes e8f2fe11b0 feat(pkgs/overleaf-sync): edit push commit messages
Open Git’s commit editor with the staged diff included for review.

Assisted-by: pi (gpt-5.6-sol)
2026-08-15 08:36:16 -03:00
Gabriel Fontes 8709fe0b7a feat(jagex-auth): accept pasted authentication responses
Allow authorization to consume either a raw ID token or the complete Jagex successful-login URL from stdin when no desktop URL handler is available.

Assisted-by: pi (gpt-5.6-sol)
2026-08-11 18:21:29 -03:00
Gabriel Fontes 15a19e5db0 refactor(jagex-auth): adopt rs hub authentication flow
Replace the legacy chained OAuth flow with the official launcher beta's single ID-token exchange and game session API. Register the rshub callback and permit its narrowly scoped qutebrowser handoff.

Assisted-by: pi (gpt-5.6-sol)
2026-08-11 18:16:59 -03:00
Gabriel Fontes 1bfb3c687d fix(jagex-auth): use wrapped package name 2026-08-07 02:22:19 -03:00
Gabriel Fontes db627e50b2 refactor(pkgs): register project packages consistently
Expose website and runelite-mcp through the shared package registry, keeping flake outputs generic and host consumers on the overlaid package set.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-31 11:44:50 -03:00
Gabriel Fontes d48beac801 refactor(projects/runelite-mcp): colocate nix package
Move the package expression and Gradle dependency lock alongside the project source, and update the package set to call it there.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-31 11:44:50 -03:00
Gabriel Fontes 42bae188a6 chore(pkgs/overleaf-sync): clarify Git ignore behavior
Assisted-by: pi (gpt-5.6-sol)
2026-07-31 11:44:50 -03:00
Gabriel Fontes ac4e999374 chore(pkgs/overleaf-sync): document synchronization behavior
Assisted-by: pi (gpt-5.6-sol)
2026-07-31 11:44:50 -03:00
Gabriel Fontes 69bb96d825 fix(pkgs/overleaf-sync): preserve unchanged local symlinks
Assisted-by: pi (gpt-5.6-sol)
2026-07-31 11:44:50 -03:00
Gabriel Fontes 0983fcb3be feat(pkgs/overleaf-sync): package overleaf project synchronization
Assisted-by: pi (gpt-5.6-sol)
2026-07-31 11:44:50 -03:00
Gabriel Fontes 8211222898 feat(projects/runelite-mcp): add bounded event history
Add generation-aware cursor polling for typed state, skill, carried-item, movement, and privacy-safe interaction changes. Bound retained records and wire output, reset player history across lifecycle boundaries, and verify live XP/item correlation through Pi.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-24 19:41:04 -03:00
Gabriel Fontes 9ea7fa4689 feat(runelite-mcp): package and install plugin
Build the RuneLite MCP jar reproducibly from projects/runelite-mcp and install it into RuneLite's developer-mode sideload directory through Home Manager.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-24 15:02:58 -03:00
Gabriel Fontes 29fe276f0d refactor(home/pi): drop legacy suggestion format
Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-17 17:26:53 -03:00
Gabriel Fontes 51863d3a47 fix(home/pi): apply suggested edits atomically
Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-17 17:21:19 -03:00
Gabriel Fontes 13cb7350a4 refactor(pkgs/runescape): simplify packaging commands 2026-07-16 10:18:52 -03:00
Gabriel Fontes 871ed6f107 chore: add disclaimer 2026-07-16 09:57:52 -03:00
Gabriel Fontes 8d43bf6cc2 chore: remove chromium flow 2026-07-16 09:55:29 -03:00
Gabriel Fontes 9bb90362a7 feat(home/runescape): add Alt1 toolkit
Package Arroquw's Alt1 Electron fork from source, configure its protocol and persistence, and add Hyprland rules for XWayland overlays. Patch the capture IPC so settings diagnostics and applets can use the detected RuneScape client.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-15 23:35:50 -03:00
Gabriel Fontes b8702b9069 refactor(jagex-auth): package desktop entry
Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-14 15:17:02 -03:00
Gabriel Fontes afb155fa89 feat(home/runescape): package rs3
Package the official Linux client and launch it with credentials generated by jagex-auth.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-14 11:42:37 -03:00
Gabriel Fontes 0549a4255b refactor(home/runescape): centralize credential wrappers
Expose a reusable jagex-auth wrapLaunch helper and apply it to all RuneScape clients in the Home Manager feature.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-14 11:40:04 -03:00
Gabriel Fontes a37004c48e refactor(wallpapers): move collection under pkgs
Import the collection through pkgs/default.nix while preserving the combined Hydra derivation and per-wallpaper attributes.

Assisted-by: pi (openai-codex/gpt-5.6-sol)
2026-07-13 10:26:24 -03:00
Gabriel Fontes d378014351 chore(pkgs,waybar): remove minicava
Drop the minicava package (pkgs/minicava + the pkgs/default.nix entry) and its
unused custom/minicava waybar module. No longer used. Verified pkgs and the
atlas host still evaluate.

Assisted-by: pi (opus-4.8)
2026-07-04 17:01:56 -03:00
Gabriel Fontes bb1ff3b61b chore(taygeta): remove librechat stack
Remove LibreChat, its nginx vhost, local MongoDB persistence, and the Codex OpenAI proxy package/module it depended on. Also drop the now-unused taygeta sops entries.

Assisted-by: pi (gpt-5.5)
2026-06-29 18:25:23 -03:00
Gabriel Fontes 86f57d10e3 fix(codex-openai-proxy): drop bare reasoning refs for stateless multi-turn
With store=false nothing is persisted server-side, so input items can't
be referenced by id. On multi-turn/tool-call rounds (e.g. MCP) LibreChat
replays prior reasoning items (rs_...) by id without their
encrypted_content, and the backend 404s ("Items are not persisted when
`store` is set to false ... remove this item from your input"). Strip
bare reasoning references from `input`, keeping any that still carry
encrypted_content.

Assisted-by: pi (claude-opus-4-8)
2026-06-29 03:38:33 -03:00
Gabriel Fontes 6b59dfc639 feat(codex-openai-proxy): request CoT reasoning summaries
Fold LibreChat's flat `reasoning_effort`/`reasoning_summary` params into
the nested `reasoning` object the Responses API expects (the backend
400s on the flat keys), and always request a `summary: "auto"` so a
human-readable chain-of-thought streams back. Omitting `effort` when
LibreChat sends none lets the backend pick the model default, so the
UI's "auto" effort works too.

Assisted-by: pi (claude-opus-4-8)
2026-06-29 00:35:21 -03:00
Gabriel Fontes 4949b15971 fix(codex-openai-proxy): strip unsupported user param
LibreChat injects a `user` field into the request body, but the Codex
backend 400s with "Unsupported parameter: user". Drop it in
shape_responses_body alongside the sampling params gpt-5 reasoning
models already reject.

Assisted-by: pi (claude-opus-4-8)
2026-06-29 00:03:11 -03:00
Gabriel Fontes 503751805e feat(codex-openai-proxy): add Responses API proxy for ChatGPT Codex sub
Bridges LibreChat's native Responses API custom endpoint to the ChatGPT Codex
backend at chatgpt.com/backend-api/codex/responses. It exchanges a refresh token
(CODEX_REFRESH_TOKEN) for access tokens on demand, derives the chatgpt-account-id
from the id_token claims, injects the headers the backend gates on (originator,
OpenAI-Beta, session), and reshapes the body (store:false, streaming, inline
reasoning). Nothing is persisted to disk.

Serves GET /v1/models, POST /v1/responses (streaming passthrough, or reassembled
into a single response object for non-streaming callers), and GET /health.

Ships a services.codex-openai-proxy NixOS module (host, port, environmentFile).

The ChatGPT account only accepts a subset of model ids (gpt-5.5, gpt-5.4,
gpt-5.4-mini); others such as gpt-5, the -codex variants, and gpt-5.5-mini 400.
Probe with /v1/responses if OpenAI rotates the allowed set.

Assisted-by: pi (claude-opus-4-8)
2026-06-28 17:23:08 -03:00
Gabriel Fontes a182db7ece feat(home/pi): add llm suggested-edit language server
Add a lightweight LSP that surfaces LLM-authored suggestions as Helix diagnostics and code actions, plus Pi tools to publish and clear suggestions.

Assisted-by: pi (openai-codex/gpt-5.5)
2026-06-25 12:11:57 -03:00
Gabriel Fontes 7df26c6ba5 chore(flake): bump lock
• Updated input 'disko':
    'github:nix-community/disko/32f4236bfc141ae930b5ba2fb604f561fed5219d?narHash=sha256-gC9Cp5ibBmGD5awCA9z7xy6MW6iJufhazTYJOiGlCUI%3D' (2026-04-19)
  → 'github:nix-community/disko/ff8702b4de27f72b4c78573dfb89ec74e36abdf1?narHash=sha256-RxWs5ND31KzTG7wvMM%2BPMfUjyNpmIEr999lqNARaM5o%3D' (2026-06-11)
• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/8a444a5c02840666c9c2f92042bfbb7a10c68200?dir=pkgs/firefox-addons&narHash=sha256-bQ9oIcNyHsiagt7yptfe7OmfUDEyuXFUb7ajkrWNzSo%3D' (2026-04-30)
  → 'gitlab:rycee/nur-expressions/a5ad6b67a2f1ff6bd9f676ff2eee53c2f5187f88?dir=pkgs/firefox-addons&narHash=sha256-CBYbKi6gcjHvlxYYoTduennOprxQtUMQfMlRmcg8ONc%3D' (2026-06-22)
• Updated input 'hardware':
    'github:nixos/nixos-hardware/2096f3f411ce46e88a79ae4eafcfc9df8ed41c61?narHash=sha256-ZOQyNqSvJ8UdrrqU1p7vaFcdL53idK%2BLOM8oRWEWh6o%3D' (2026-04-23)
  → 'github:nixos/nixos-hardware/2564d804144a6588660bb5d2646bb05322cacf82?narHash=sha256-rFG35UXPBG29B9ZI0QY2G7dttahfZAVRxQXaeyixz3U%3D' (2026-06-22)
• Added input 'hardware/nixpkgs':
    follows 'nixpkgs'
• Updated input 'home-manager':
    'github:nix-community/home-manager/d456f483f157d4b706416005da226234b9c116ff?narHash=sha256-YqlTCRRhGvNjcJejPeMuHrYQ/TVhOO2MV/nEGMWb8nk%3D' (2026-06-18)
  → 'github:nix-community/home-manager/351959fcdbe5cadec1c3434d7abd14dff31af2d5?narHash=sha256-S%2B/v%2BBWz9c8IbGhRM8L4UUVC5j2oZuAHj1b5XlkBjyw%3D' (2026-06-22)
• Updated input 'lanzaboote':
    'github:nix-community/lanzaboote/079c608988c2747db3902c9de033572cd50e8656?narHash=sha256-c0r3xXp2%2BxFJwkryS%2BnhyQwoACbFzSt4C1TVs3QMh8E%3D' (2026-04-27)
  → 'github:nix-community/lanzaboote/6650fb7c6b48177c8200e21ffac99a4adc72b08d?narHash=sha256-APwmLI4UuSTim0JO/kZ6FXDPiZVp3zIj0uGDF2UZ5kU%3D' (2026-06-22)
• Updated input 'lanzaboote/crane':
    'github:ipetkov/crane/ad8b31ad0ba8448bd958d7a5d50d811dc5d271c0?narHash=sha256-VWTeqWeb8Sel/QiWyaPvCa9luAbcGawR%2BRw09FJoHz0%3D' (2026-04-26)
  → 'github:ipetkov/crane/469fd08d0bcf6926321fa973c6777fbc87785dd7?narHash=sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk%3D' (2026-06-18)
• Updated input 'lanzaboote/pre-commit':
    'github:cachix/pre-commit-hooks.nix/3cfd774b0a530725a077e17354fbdb87ea1c4aad?narHash=sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8%3D' (2026-04-21)
  → 'github:cachix/pre-commit-hooks.nix/3bbec39bc90eadfa031e6f3b77272f3f60803e39?narHash=sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco%2B3u0%3D' (2026-06-17)
• Updated input 'lanzaboote/rust-overlay':
    'github:oxalica/rust-overlay/aaec8c50baeaf2f2ba653e8aae71778a2bbbac94?narHash=sha256-ERiu3cbxvnTDxiDcimRA7af7xp6x1y0sRyLGm28Qzz8%3D' (2026-04-26)
  → 'github:oxalica/rust-overlay/8534567325bd8a8d2928e6afd81e0a87d19efd3c?narHash=sha256-9mWUnReOUXfKjZuJAL/bAFH3LUyECTRtXgSNVjRw3UY%3D' (2026-06-21)
• Updated input 'nixos-mailserver':
    'gitlab:simple-nixos-mailserver/nixos-mailserver/e33fbde199eaad513ef5d0746db19d5878150232?narHash=sha256-Fj7S91TuZm6%2BDG/v6SFme/p%2BsWrYMQICGX6yQ5KD43Q%3D' (2026-04-27)
  → 'gitlab:simple-nixos-mailserver/nixos-mailserver/c37fd9c40877450716692b6478e6dda330dfc46a?narHash=sha256-e46EhlHo0jupcYCLE4QJRitd3%2By%2BRgIQYNcfcCdLbKg%3D' (2026-06-19)
• Updated input 'nixos-mailserver/git-hooks':
    'github:cachix/git-hooks.nix/580633fa3fe5fc0379905986543fd7495481913d?narHash=sha256-8Psjt%2BTWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4%3D' (2026-04-07)
  → 'github:cachix/git-hooks.nix/61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a?narHash=sha256-kTwur1wV%2B01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs%3D' (2026-05-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/549bd84d6279f9852cae6225e372cc67fb91a4c1?narHash=sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9%2BhrDTkDU%3D' (2026-05-05)
  → 'github:nixos/nixpkgs/567a49d1913ce81ac6e9582e3553dd90a955875f?narHash=sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H%2BCNW1Ck8B%2B8%3D' (2026-06-16)
• Updated input 'sops-nix':
    'github:mic92/sops-nix/8eaee5c45428b28b8c47a83e4c09dccec5f279b5?narHash=sha256-bc%2BZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E%3D' (2026-04-28)
  → 'github:mic92/sops-nix/420f8d2e9882911f65cfac15cc706f639ba96cca?narHash=sha256-NFHmA7H47adqiyp%2B0iEOyZOQhmigDqA/NBAlf4imB6U%3D' (2026-06-20)
2026-06-24 10:27:11 -03:00
Gabriel Fontes 36de83a583 fix(pkgs/jagex-auth): remove chromium and wlclip deps
These are option
2026-06-24 10:27:11 -03:00
Gabriel Fontes b927eafa61 feat(pkgs/jagex-auth): add a script to handle jagex oauth
Assisted-by: pi (gpt-5.5)
2026-06-22 00:00:36 -03:00
Gabriel Fontes e2de1428a3 fix(roundcube-plugins): try and fix libkolab include problem 2026-05-19 12:21:07 -03:00
Gabriel Fontes c2149ad475 fix(roundcube-plugins/kolab): try and put vendor in each plugin dir instead of merging with roundcube's 2026-05-19 11:39:26 -03:00
Gabriel Fontes 0a48f64d17 chore: cleanup vim plugins 2026-04-30 15:12:31 -03:00
Gabriel Fontes ddcb97ffb6 chore: bump lock 2026-04-30 15:12:31 -03:00
Gabriel Fontes 3205d97928 chore(flake): bump lock 2026-04-07 17:21:14 -03:00
Gabriel Fontes 780c3787ce chore: bump flake 2025-12-20 12:11:32 -03:00
Gabriel Fontes 218ffdf1d8 fix(roundcube/kolab-plugins): actually fix hash 2025-12-20 11:58:09 -03:00
Gabriel Fontes ed40828ca9 fix(roundcube/kolab-plugins): fix hash (?) 2025-12-20 11:18:25 -03:00
Gabriel Fontes a97fc72cb0 feat(roundcube/kolab): darkmode fixes 2025-12-19 10:37:32 -03:00
Gabriel Fontes a621aaf8e8 fix(roundcube/kolab): try to fix issue saving priority 2025-12-18 16:47:28 -03:00
Gabriel Fontes 32b2b31f15 feat(roundcube): unify kolab plugins into single package 2025-12-18 16:18:48 -03:00
Gabriel Fontes d0baa4055d fix(roundcube-plugins/tasklist): fix wrong path in patch 2025-12-18 07:56:42 -03:00
Gabriel Fontes 2520e09a57 feat(roundcube-plugins/tasklist): make 1-4 interpreted as flagged
For better compat
2025-12-18 07:55:17 -03:00