Commit Graph
277 Commits
Author SHA1 Message Date
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
Gabriel Fontes 038313d37a fix(alcyone/roundcube): mv instead of ln plugin dir
To avoid breaking relative imports
2025-12-17 19:52:24 -03:00
Gabriel Fontes 511ed4c077 feat(alcyone/roundcube): add tasklist 2025-12-17 19:52:24 -03:00