Compare commits
2
Commits
9c3b7c3735
...
e887fcd435
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e887fcd435 | ||
|
|
98a9be3615 |
No files matched your search
@@ -11,12 +11,10 @@ and maintenance entry points. Global instructions remain applicable.
|
|||||||
environment, or access live company systems with write authority. Test writes need
|
environment, or access live company systems with write authority. Test writes need
|
||||||
task-specific authority. Moving credentials or synchronizing company content
|
task-specific authority. Moving credentials or synchronizing company content
|
||||||
requires agreement; ordinary repository work does not authorize either.
|
requires agreement; ordinary repository work does not authorize either.
|
||||||
- Follow the user's testing policy: automated tests only when explicitly requested
|
- Do not write or run tests or perform extensive validation unless explicitly
|
||||||
or covered by an established repository policy. A test file alone does not establish
|
requested. For routine changes, use a focused review or small manual check.
|
||||||
a general policy. Use the smallest relevant review, build, or manual check.
|
- Run `just validate` only when explicitly requested. Read its short result first;
|
||||||
- Use `just validate` for a completed configuration batch, or name affected hosts
|
inspect saved logs only for failures or a concrete unresolved concern.
|
||||||
for iteration. Read the short result first; inspect saved logs only for failures
|
|
||||||
or a concrete unresolved concern. Documentation-only edits need no system build.
|
|
||||||
- Replace superseded state in `docs/current-work.md`; keep durable rationale in
|
- Replace superseded state in `docs/current-work.md`; keep durable rationale in
|
||||||
`docs/design.md` and operational detail beside its owner. Use Git for chronology.
|
`docs/design.md` and operational detail beside its owner. Use Git for chronology.
|
||||||
Remove temporary state when it no longer serves a purpose.
|
Remove temporary state when it no longer serves a purpose.
|
||||||
@@ -55,9 +55,9 @@ directory. Failure stops the command; snapshots are removed on exit. It neither
|
|||||||
updates inputs nor creates result links or activates systems. The implementation is
|
updates inputs nor creates result links or activates systems. The implementation is
|
||||||
`scripts/validate.py`; `just` and Python are installed on both workstations.
|
`scripts/validate.py`; `just` and Python are installed on both workstations.
|
||||||
|
|
||||||
Use targeted hosts during iteration and full validation for a completed batch.
|
Run targeted host builds or full validation only when explicitly requested. Routine
|
||||||
Documentation-only changes need review and `git diff --check`, not system builds.
|
changes need a focused review or small manual check. Build, activation and
|
||||||
Build, activation and interactive behavior are separate evidence.
|
interactive behavior are separate evidence.
|
||||||
|
|
||||||
User-owned activation:
|
User-owned activation:
|
||||||
|
|
||||||
@@ -76,8 +76,8 @@ provisioning is documented with workbench. Never put plaintext secrets in Nix.
|
|||||||
- **Orientation:** Super+Shift+N names the focused workspace; submit an empty name
|
- **Orientation:** Super+Shift+N names the focused workspace; submit an empty name
|
||||||
to clear it. Named empty workspaces persist until cleared. Noctalia shows labels;
|
to clear it. Named empty workspaces persist until cleared. Noctalia shows labels;
|
||||||
terminal titles include the working directory and command.
|
terminal titles include the working directory and command.
|
||||||
- **Icons/vault:** check Oil from Walker and Nautilus device/symbolic icons. Walker's
|
- **Icons/vault:** check Oil from Walker and Nautilus device/symbolic icons. Check
|
||||||
`?` vault provider should request unlocking on use, never during desktop startup.
|
Walker's `?` vault provider; upstream Elephant may query `rbw` during startup.
|
||||||
- **Calendar:** in Noctalia Settings → Services → Calendar, set the Radicale
|
- **Calendar:** in Noctalia Settings → Services → Calendar, set the Radicale
|
||||||
password through the existing Personal account (GNOME Keyring). Add an ICS account
|
password through the existing Personal account (GNOME Keyring). Add an ICS account
|
||||||
named Work using Outlook's published URL. Keep this URL in writable Noctalia
|
named Work using Outlook's published URL. Keep this URL in writable Noctalia
|
||||||
|
|||||||
+17
-16
@@ -10,6 +10,7 @@ Complete independent agreed work and obvious fixes autonomously. Leave consequen
|
|||||||
unknowns pending and collect recommendations/alternatives into one substantial review
|
unknowns pending and collect recommendations/alternatives into one substantial review
|
||||||
batch. Ask earlier only to prevent broad rework/blockage. The old 2–4-question quota
|
batch. Ask earlier only to prevent broad rework/blockage. The old 2–4-question quota
|
||||||
is superseded. Keep effort focused; no speculative systems or peripheral research.
|
is superseded. Keep effort focused; no speculative systems or peripheral research.
|
||||||
|
Do not write or run tests or perform extensive validation unless explicitly requested.
|
||||||
Do not activate, push, decrypt for discovery or access company systems with write
|
Do not activate, push, decrypt for discovery or access company systems with write
|
||||||
authority. No subagents unless explicitly authorized by current instructions.
|
authority. No subagents unless explicitly authorized by current instructions.
|
||||||
|
|
||||||
@@ -31,7 +32,7 @@ The unedited `~/sync/notes/setup-todo.md` remains an idea inbox, not authorizati
|
|||||||
Noctalia labels; shell titles include directory/command. Garden shell initialization
|
Noctalia labels; shell titles include directory/command. Garden shell initialization
|
||||||
now belongs to company integration instead of every host's generic shell.
|
now belongs to company integration instead of every host's generic shell.
|
||||||
- Kanagawa declares Adwaita/hicolor icon fallback; modest Limine branding/layout.
|
- Kanagawa declares Adwaita/hicolor icon fallback; modest Limine branding/layout.
|
||||||
A pinned Elephant patch defers its startup `rbw list` to the explicit vault query.
|
Walker uses upstream Elephant without a local vault patch. It may query `rbw` at startup.
|
||||||
- GitHub devenv 2.3.2 installed with native Zsh hook and upstream reload defaults.
|
- GitHub devenv 2.3.2 installed with native Zsh hook and upstream reload defaults.
|
||||||
CLI dependencies keep upstream pins/cache; workbench tools use this repository's
|
CLI dependencies keep upstream pins/cache; workbench tools use this repository's
|
||||||
exact nixpkgs pin. Company tools are also installed through the work profile. Product and
|
exact nixpkgs pin. Company tools are also installed through the work profile. Product and
|
||||||
@@ -53,6 +54,8 @@ The unedited `~/sync/notes/setup-todo.md` remains an idea inbox, not authorizati
|
|||||||
Validation prepares upstream devenv's import-from-derivation dependencies before
|
Validation prepares upstream devenv's import-from-derivation dependencies before
|
||||||
read-only flake checking, accepts the repository's declared official cache, and
|
read-only flake checking, accepts the repository's declared official cache, and
|
||||||
reports interruption concisely. Full builds still include the tools-only shell.
|
reports interruption concisely. Full builds still include the tools-only shell.
|
||||||
|
The devenv cache is now in persistent NixOS Nix settings; the flake cache hint
|
||||||
|
was removed.
|
||||||
|
|
||||||
## Decisions/provisioning still needed
|
## Decisions/provisioning still needed
|
||||||
|
|
||||||
@@ -87,8 +90,8 @@ Final full validation passed before the final review deletions:
|
|||||||
`/tmp/nixos-validate-t7zv1zux` (session 88912,
|
`/tmp/nixos-validate-t7zv1zux` (session 88912,
|
||||||
completed exit 0). Formatting, devenv preparation, flake check, all three host
|
completed exit 0). Formatting, devenv preparation, flake check, all three host
|
||||||
builds (Orion, Polaris, Zenith), and the tools-only workbench build passed.
|
builds (Orion, Polaris, Zenith), and the tools-only workbench build passed.
|
||||||
This includes the final notes startup ordering, serialized vault-query patch,
|
This includes the final notes startup ordering, FUSE wrapper paths, native Zsh retry
|
||||||
FUSE wrapper paths, native Zsh retry function and SecretSpec package collision fix.
|
function and SecretSpec package collision fix. The vault patch was removed afterward.
|
||||||
No systems were activated.
|
No systems were activated.
|
||||||
|
|
||||||
Native devenv tools-only startup also passed in an isolated temporary home:
|
Native devenv tools-only startup also passed in an isolated temporary home:
|
||||||
@@ -101,9 +104,9 @@ Evidence: `/tmp/foundation-editor-check/{startup,notes}.log`. No real notebook o
|
|||||||
credentials loaded. Built Kanagawa index declares `Inherits=Adwaita,hicolor`.
|
credentials loaded. Built Kanagawa index declares `Inherits=Adwaita,hicolor`.
|
||||||
Python source syntax and local documentation links checked; no automated tests added.
|
Python source syntax and local documentation links checked; no automated tests added.
|
||||||
|
|
||||||
The final review only removed the unaccepted Kubernetes login wrapper and the
|
The earlier final review removed the unaccepted Kubernetes login wrapper and the
|
||||||
machine-wide devenv cache setting; the flake-scoped cache remains. Full builds were
|
machine-wide devenv cache setting; the flake-scoped cache remains. Full builds were
|
||||||
not repeated for those deletions.
|
not repeated for those deletions. The later Walker patch removal has not been built.
|
||||||
|
|
||||||
Builds do not establish interactive acceptance. The user checkpoint remains; do not
|
Builds do not establish interactive acceptance. The user checkpoint remains; do not
|
||||||
repeat full builds for documentation-only handoff edits.
|
repeat full builds for documentation-only handoff edits.
|
||||||
@@ -112,18 +115,16 @@ repeat full builds for documentation-only handoff edits.
|
|||||||
|
|
||||||
The final diff was reviewed for correctness, integration and Ponytail complexity.
|
The final diff was reviewed for correctness, integration and Ponytail complexity.
|
||||||
Desktop/capability moves and repository wiring had no material findings. The review
|
Desktop/capability moves and repository wiring had no material findings. The review
|
||||||
removed the speculative Kubernetes login interpreter and kept the devenv cache at
|
removed the speculative Kubernetes login interpreter. The devenv cache was later
|
||||||
flake scope instead of granting it machine-wide trust. The remaining Python has a
|
moved from flake scope to machine-wide Nix settings at the user's request. The
|
||||||
concrete role: in-memory concurrent secret loading with completeness checks, one-time
|
remaining Python has a concrete role: in-memory concurrent secret loading with
|
||||||
encrypted credential reshaping, dynamic OBS rclone configuration, or pre-existing
|
completeness checks, one-time encrypted credential reshaping, dynamic OBS rclone
|
||||||
dictation/transcription behavior.
|
configuration, or pre-existing dictation/transcription behavior.
|
||||||
|
|
||||||
The user checkpoint is still required before this pass is complete. No implementation
|
The user checkpoint is still required before this pass is complete. The implementation
|
||||||
commit was made in this turn.
|
was committed as `5748b34` after the initial foundation commit `f164d8b`. Later
|
||||||
|
cleanup removed the Walker patch, Handy test and AI capability README.
|
||||||
Initial local commit `f164d8b` predates this implementation. Four documentation files
|
No activation was recorded during that pass. External workbench analysis/content
|
||||||
were already modified during the design pass; those changes belong to this effort.
|
|
||||||
No remote changes or activation have occurred. External workbench analysis/content
|
|
||||||
changes are unrelated and must not be committed here. Previous external loader
|
changes are unrelated and must not be committed here. Previous external loader
|
||||||
copies remain at `/tmp/workbench-environment-before-6k4dwzuo`; only root/workbench environment documentation and ignore entries were updated.
|
copies remain at `/tmp/workbench-environment-before-6k4dwzuo`; only root/workbench environment documentation and ignore entries were updated.
|
||||||
Backups: `/tmp/foundation-workbench-docs-bvrs1hu9`. Old external loaders remain
|
Backups: `/tmp/foundation-workbench-docs-bvrs1hu9`. Old external loaders remain
|
||||||
|
|||||||
+10
-10
@@ -52,8 +52,8 @@ Use store-qualified executables or `runtimeInputs` in packaged scripts; make run
|
|||||||
paths and failures explicit. Do not duplicate package lists, generated settings or
|
paths and failures explicit. Do not duplicate package lists, generated settings or
|
||||||
binding references in documentation.
|
binding references in documentation.
|
||||||
|
|
||||||
These clarify the agreed model; they are not a one-package-per-file rule, a new
|
These clarify the agreed model; they are not a one-package-per-file rule or a
|
||||||
testing policy, or a requirement for additional abstractions.
|
requirement for additional abstractions.
|
||||||
|
|
||||||
## Daily environment
|
## Daily environment
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ Notes stay in `~/sync/notes`, mostly meeting material; no new taxonomy. HTTP and
|
|||||||
database targets remain independently selected and visibly named. Dadbod working
|
database targets remain independently selected and visibly named. Dadbod working
|
||||||
queries and connection state stay outside Git; see the editor's `database.lua`.
|
queries and connection state stay outside Git; see the editor's `database.lua`.
|
||||||
|
|
||||||
Kanagawa remains the theme with Adwaita fallback icons. rbw unlocks on requested
|
Kanagawa remains the theme with Adwaita fallback icons. Walker uses upstream Elephant
|
||||||
vault access, preserving its lock policy. Outlook PWA owns work email/calendar
|
without a local vault patch; it may query rbw during startup. Outlook PWA owns work
|
||||||
editing. Mailspring owns personal mail; Thunderbird remains a backup. Noctalia
|
email/calendar editing. Mailspring owns personal mail; Thunderbird remains a backup. Noctalia
|
||||||
provides the combined read-only Radicale/Outlook agenda. The user accepts published
|
provides the combined read-only Radicale/Outlook agenda. The user accepts published
|
||||||
ICS link access and supplies the URL privately through runtime settings. Personal
|
ICS link access and supplies the URL privately through runtime settings. Personal
|
||||||
calendar editing stays on the phone; keep khal/todoman.
|
calendar editing stays on the phone; keep khal/todoman.
|
||||||
@@ -118,11 +118,11 @@ validation feedback to repeated reminders. This applies the useful principle of
|
|||||||
progressive disclosure from [OpenAI's harness engineering article](https://openai.com/index/harness-engineering/)
|
progressive disclosure from [OpenAI's harness engineering article](https://openai.com/index/harness-engineering/)
|
||||||
without introducing speculative skills, orchestration or evaluation infrastructure.
|
without introducing speculative skills, orchestration or evaluation infrastructure.
|
||||||
|
|
||||||
`just validate` includes working-tree changes and new nonignored files without staging,
|
`just validate` is available on explicit request. It includes working-tree changes
|
||||||
formats, evaluates and builds. Concise results and saved logs minimize agent overhead.
|
and new nonignored files without staging, formats, evaluates and builds. Targeted
|
||||||
Targeted host builds support iteration; a full run also builds workbench tools.
|
host builds are supported; a full run also builds workbench tools. Builds do not
|
||||||
Builds do not prove activation or interactive behavior. Preserve the user's testing
|
prove activation or interactive behavior. Do not write or run tests or perform
|
||||||
policy; this pass does not create a new automated testing policy.
|
extensive validation unless explicitly requested.
|
||||||
|
|
||||||
Keep native update and activation commands. `nix flake update` is normal; selective
|
Keep native update and activation commands. `nix flake update` is normal; selective
|
||||||
updates (often `llm-agents`) are appropriate while nixpkgs breakage awaits repair.
|
updates (often `llm-agents`) are appropriate while nixpkgs breakage awaits repair.
|
||||||
|
|||||||
Generated
+40
-40
@@ -20,16 +20,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788011267,
|
"lastModified": 1790001035,
|
||||||
"narHash": "sha256-mEq2kU+ljompTToZ44Afvm7d/rHJ5iMBl0tjZuyShJs=",
|
"narHash": "sha256-1/SLBjSYBzDdDhvLQ83wrzBakyS/xNGgtxHGNuveOEQ=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "bun2nix",
|
"repo": "bun2nix",
|
||||||
"rev": "5765b0614591f75ee8ba5596e81ae85c167d1071",
|
"rev": "07a5bfc8ac36c5370199343fa620b69f63186e33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"ref": "fix-structured-attrs-hook",
|
"ref": "llm-agents",
|
||||||
"repo": "bun2nix",
|
"repo": "bun2nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -98,11 +98,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1789773873,
|
"lastModified": 1789991752,
|
||||||
"narHash": "sha256-lFR8A3JzpXn4Az9quklprOje/+Njyh9+bP+CE1TCIxI=",
|
"narHash": "sha256-SiH+H00IutELZBg7BBNo6r5DU6E+DG7DjrbeX5+QLa0=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv",
|
"repo": "devenv",
|
||||||
"rev": "2ba2f9ed32596289874c58981a4d3e56cadd639d",
|
"rev": "1c57b5dea0d400af97053fdd1a536fca17378f73",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -118,11 +118,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781152676,
|
"lastModified": 1789770686,
|
||||||
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
|
"narHash": "sha256-uZkBR7yHdIKUFB5SZdfgh1qkGfI3XmYmI/lTiquxbck=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
|
"rev": "725ea35e410ad83be4931d1bff7e090eacaf3563",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -281,11 +281,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788651960,
|
"lastModified": 1790080548,
|
||||||
"narHash": "sha256-v9wJd32eZ2bvhBzVOd7TIjLQd011P7nwOhjKtWlci5I=",
|
"narHash": "sha256-u4sa7RCbwvk8cZmAGs35F7o0h4IqDc3wsrrnjQvMumk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2c0350c759688177331b8f5242311fae8877bdb3",
|
"rev": "cbcbfa2778e0c5653ef349df3ebae8288efac3c0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -318,11 +318,11 @@
|
|||||||
"treefmt-nix": "treefmt-nix_2"
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1789804571,
|
"lastModified": 1790311386,
|
||||||
"narHash": "sha256-qYKCHhnLrEQ5XOH/5vwc57FSpPNCWC/4+AcWjJa7vPE=",
|
"narHash": "sha256-bOexMr1RcAS6PFcMnEfwe5apsEoaLmSUUxlqUftd2uU=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "llm-agents.nix",
|
"repo": "llm-agents.nix",
|
||||||
"rev": "c2351168cdce1d7ab47961266b999a449f23bfad",
|
"rev": "1446b3cb242c8cd24619b58054112cc2d870e591",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -378,11 +378,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788680125,
|
"lastModified": 1789892076,
|
||||||
"narHash": "sha256-amGSoDobwmp4CFvCn841ws2iuitus+HUJdD/gKgsrJA=",
|
"narHash": "sha256-Dkg4VKPmDPqTwaiw2WH5br73tXoL1qrOO0xJnR4TlcA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "116ad1c2adb642405ef8916f6a94c8626f971344",
|
"rev": "9ad722673ab3b3f91f02135e53775825b240b869",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -398,11 +398,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788744583,
|
"lastModified": 1788981141,
|
||||||
"narHash": "sha256-oNMrijfyaoRjjWhxHNFSBYyEB4u/zb/AxoKewC56LvE=",
|
"narHash": "sha256-7xWS16u13YGlRNKWaAPzRbEyh4OLOXJe31k7h4AnXNU=",
|
||||||
"owner": "BirdeeHub",
|
"owner": "BirdeeHub",
|
||||||
"repo": "nix-wrapper-modules",
|
"repo": "nix-wrapper-modules",
|
||||||
"rev": "e88c449105c6aafa460196d3cbd16718655aee0f",
|
"rev": "1db3c116a6aa61823f8d8f3c47c306846428fc54",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -444,11 +444,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788860136,
|
"lastModified": 1789978172,
|
||||||
"narHash": "sha256-MhPMOFV4pVkygWEbQ8t1De/uQ9cWF1u++tRe2L5tG48=",
|
"narHash": "sha256-FIRXajv1pPZ+l6On6ekkmcQ6le0Zi0ncRUoR3nB0vKA=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "62173785b9a18c78b4a15aca2623d02bceb9d077",
|
"rev": "9ebcb7766700d7e006d9505247bd7ce0426f4232",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -463,11 +463,11 @@
|
|||||||
"nixpkgs-src": "nixpkgs-src"
|
"nixpkgs-src": "nixpkgs-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1789506231,
|
"lastModified": 1787753358,
|
||||||
"narHash": "sha256-vNkJbtmqyBfFhn/HnzQo4ROuoyYWuy/allqTfJb4kMY=",
|
"narHash": "sha256-Tl77VbWyAKrOfRNQhL6JbQtb/MLzbYa/1RG1gWWfICk=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "devenv-nixpkgs",
|
"repo": "devenv-nixpkgs",
|
||||||
"rev": "c2f38fe7f9e04d9aadd354d380f2bd40531d9737",
|
"rev": "256551e45f6303e142ab4a98be1bf243feb77dc0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -495,11 +495,11 @@
|
|||||||
"nixpkgs-src": {
|
"nixpkgs-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1789370336,
|
"lastModified": 1787394516,
|
||||||
"narHash": "sha256-6RSEDHIWQtesQKWSu5qRai8L2h4KgCgMEfJHstW99G4=",
|
"narHash": "sha256-pRGOQSClnXNI2iLUG6DYpsGvYcuw0drOutVZFTJNw90=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c7def046b9a883d46974757852106483d741586f",
|
"rev": "c8f90650c15282fa8656a041bfbbd2403997a9a7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -511,11 +511,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1789632929,
|
"lastModified": 1790238896,
|
||||||
"narHash": "sha256-RjR8AyvGlWuw16XRj7C1YDEw4E27ciuyPeB2nDMzgTU=",
|
"narHash": "sha256-ym4BG18Pu2awiJIehla1Lo9xiB2QYRcCzW3SB74gEBY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a32edd7654519351e48e80372a928df336394670",
|
"rev": "34ca302a9572963c02e385c056be37c85ff51b77",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -545,11 +545,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788886125,
|
"lastModified": 1790104132,
|
||||||
"narHash": "sha256-5rgQFUGr8GXYyyuy8ynrN39WfZzSiO/wqGWjELBOkEY=",
|
"narHash": "sha256-yvcudrhnWvWSFS2ujWxAJ7CVdgdiZs2BDGbgn38p1l0=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia",
|
"repo": "noctalia",
|
||||||
"rev": "d6607b4eafbb92f6d494ebed3e296d4b741c0b58",
|
"rev": "61aa22730c434500fd3f2048eba47658b1f20aad",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -603,11 +603,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788337237,
|
"lastModified": 1789890976,
|
||||||
"narHash": "sha256-gkSH8VUtCo6hnysNmb9DbTuDepH2t5pv+QWjP75xKAk=",
|
"narHash": "sha256-GKwH3zpy7tartuJMG0Rv/xUsdetG1QLmTVv8UKgJLmA=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "fbf759290e0cb0a98dfc813a4eb7d53ad1dacb57",
|
"rev": "7214124c20c1542c90deb54af50e2f53ae02711f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
{
|
{
|
||||||
description = "NixOS Configuration";
|
description = "NixOS Configuration";
|
||||||
|
|
||||||
nixConfig = {
|
|
||||||
extra-substituters = [ "https://devenv.cachix.org" ];
|
|
||||||
extra-trusted-public-keys = [ "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
devenv.url = "github:cachix/devenv";
|
devenv.url = "github:cachix/devenv";
|
||||||
disko = {
|
disko = {
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
# AI tools
|
|
||||||
|
|
||||||
Nix installs the tools, assets, skills and system Codex defaults. Codex owns its
|
|
||||||
writable user configuration; credentials, session history and other runtime state
|
|
||||||
remain outside this repository. `instructions/codex.md` owns global agent guidance.
|
|
||||||
|
|
||||||
Herdr is optional experimentation. Reload its managed configuration with
|
|
||||||
Ctrl+Alt+Shift+R (or Ctrl+B then Shift+R); its configuration owns the binding reference.
|
|
||||||
Home Manager may preserve an earlier regular configuration file with `.bak`.
|
|
||||||
|
|
||||||
Ollama supplies `nomic-embed-text` for grounded-docs. The latter runs on localhost
|
|
||||||
port 6280 with persistent Podman volumes. Removing another tool must not delete
|
|
||||||
these models or volumes. No mandatory agent persistence or orchestration workflow
|
|
||||||
is defined here.
|
|
||||||
@@ -28,6 +28,8 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
features.plugins = true;
|
features.plugins = true;
|
||||||
|
# The Nix package lacks the codex-package.json layout the daemon requires.
|
||||||
|
features.daemon_auto_start = false;
|
||||||
hooks = ai.codexHooks;
|
hooks = ai.codexHooks;
|
||||||
mcp_servers = ai.servers // {
|
mcp_servers = ai.servers // {
|
||||||
context7 = ai.servers.context7 // {
|
context7 = ai.servers.context7 // {
|
||||||
@@ -98,7 +100,7 @@ in
|
|||||||
pkgs.nodejs
|
pkgs.nodejs
|
||||||
pkgs.python3
|
pkgs.python3
|
||||||
inputs.llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.codex
|
inputs.llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.codex
|
||||||
pkgs.llm-agents.chatgpt
|
inputs.llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.chatgpt
|
||||||
pkgs.llm-agents.pi
|
pkgs.llm-agents.pi
|
||||||
pkgs.llm-agents.claude-code
|
pkgs.llm-agents.claude-code
|
||||||
pkgs.llm-agents.herdr
|
pkgs.llm-agents.herdr
|
||||||
|
|||||||
@@ -14,9 +14,8 @@
|
|||||||
|
|
||||||
# Validation
|
# Validation
|
||||||
|
|
||||||
- Write or run automated tests only when explicitly requested or covered by the repository's established testing policy. Do not invent a testing policy or introduce tests into a repository without tests unless explicitly requested.
|
- Do not write or run tests or perform extensive validation unless explicitly requested.
|
||||||
- Validate changes with the smallest relevant build, manual behaviour check, or review of code and output.
|
- For routine changes, use a focused review or small manual check. Report only checks performed.
|
||||||
- Broaden or repeat validation only for changes, failures or unresolved concerns. Report only checks performed.
|
|
||||||
|
|
||||||
# Writing
|
# Writing
|
||||||
|
|
||||||
|
|||||||
@@ -8,4 +8,13 @@
|
|||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.audio =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.reaper
|
||||||
|
pkgs.bitwig-studio
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
"""Synthetic key-state checks; never reads a keyboard or records audio."""
|
|
||||||
|
|
||||||
from unittest.mock import Mock, patch
|
|
||||||
|
|
||||||
import push_to_talk as ptt
|
|
||||||
|
|
||||||
down = [ptt.key.KEY_LEFTMETA, ptt.key.KEY_D]
|
|
||||||
|
|
||||||
|
|
||||||
def check(states, expected, error=None):
|
|
||||||
device = Mock()
|
|
||||||
device.active_keys.side_effect = states
|
|
||||||
device.read_loop.return_value = iter([object(), object()])
|
|
||||||
if error:
|
|
||||||
device.read_loop.side_effect = error
|
|
||||||
with (
|
|
||||||
patch.object(ptt, "list_devices", return_value=["keyboard"]),
|
|
||||||
patch.object(ptt, "InputDevice", return_value=device),
|
|
||||||
patch.object(ptt.signal, "signal"),
|
|
||||||
patch.object(ptt.subprocess, "run") as run,
|
|
||||||
):
|
|
||||||
try:
|
|
||||||
ptt.main("handy")
|
|
||||||
except (OSError, KeyboardInterrupt):
|
|
||||||
assert error is not None
|
|
||||||
assert [call.args[0][1] for call in run.call_args_list] == expected
|
|
||||||
device.close.assert_called_once()
|
|
||||||
|
|
||||||
|
|
||||||
check([[]], []) # Released before the listener starts: do not record.
|
|
||||||
check([down, []], ["--toggle-transcription", "--toggle-transcription"])
|
|
||||||
check([down, down, down, [ptt.key.KEY_D]], ["--toggle-transcription"] * 2)
|
|
||||||
check([down, down], ["--toggle-transcription", "--cancel"], OSError("unplugged"))
|
|
||||||
check([down, down], ["--toggle-transcription", "--cancel"], KeyboardInterrupt())
|
|
||||||
assert ptt.held([ptt.key.KEY_RIGHTMETA, ptt.key.KEY_D])
|
|
||||||
assert not ptt.held([ptt.key.KEY_LEFTMETA])
|
|
||||||
print("Push-to-talk release, repeat, disconnect and cancellation checks passed")
|
|
||||||
@@ -14,6 +14,10 @@ in
|
|||||||
settings = {
|
settings = {
|
||||||
trusted-users = [ "@wheel" ];
|
trusted-users = [ "@wheel" ];
|
||||||
use-xdg-base-directories = true;
|
use-xdg-base-directories = true;
|
||||||
|
extra-substituters = [ "https://devenv.cachix.org" ];
|
||||||
|
extra-trusted-public-keys = [
|
||||||
|
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||||
|
];
|
||||||
|
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
|
|||||||
@@ -23,16 +23,6 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
elephantPackages = inputs.walker.inputs.elephant.packages.${pkgs.stdenv.hostPlatform.system};
|
|
||||||
# Upstream initializes rbw at startup. Drop this patch when it supports lazy vault access.
|
|
||||||
providers = elephantPackages.elephant-providers.overrideAttrs (old: {
|
|
||||||
patches = (old.patches or [ ]) ++ [ ./demand-driven-vault.patch ];
|
|
||||||
});
|
|
||||||
elephant = elephantPackages.elephant-with-providers.overrideAttrs (old: {
|
|
||||||
installPhase =
|
|
||||||
builtins.replaceStrings [ "${elephantPackages.elephant-providers}" ] [ "${providers}" ]
|
|
||||||
old.installPhase;
|
|
||||||
});
|
|
||||||
walkerDefaults = builtins.fromTOML (builtins.readFile "${inputs.walker}/resources/config.toml");
|
walkerDefaults = builtins.fromTOML (builtins.readFile "${inputs.walker}/resources/config.toml");
|
||||||
|
|
||||||
launcher = pkgs.writeShellApplication {
|
launcher = pkgs.writeShellApplication {
|
||||||
@@ -46,8 +36,6 @@
|
|||||||
{
|
{
|
||||||
imports = [ inputs.walker.homeManagerModules.default ];
|
imports = [ inputs.walker.homeManagerModules.default ];
|
||||||
|
|
||||||
programs.elephant.package = elephant;
|
|
||||||
|
|
||||||
desktop.commands.launcher = [ (lib.getExe launcher) ];
|
desktop.commands.launcher = [ (lib.getExe launcher) ];
|
||||||
programs.walker = {
|
programs.walker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
--- a/internal/providers/bitwarden/setup.go
|
|
||||||
+++ b/internal/providers/bitwarden/setup.go
|
|
||||||
@@ -34,7 +34,7 @@
|
|
||||||
func Setup() {
|
|
||||||
LoadConfig()
|
|
||||||
|
|
||||||
- initItems()
|
|
||||||
+ // Vault access is initiated by an explicit query, never daemon startup.
|
|
||||||
}
|
|
||||||
|
|
||||||
func LoadConfig() {
|
|
||||||
--- a/internal/providers/bitwarden/query.go
|
|
||||||
+++ b/internal/providers/bitwarden/query.go
|
|
||||||
@@ -7,6 +7,7 @@
|
|
||||||
"net"
|
|
||||||
"os/exec"
|
|
||||||
"strings"
|
|
||||||
+ "sync"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/abenz1267/elephant/v2/pkg/common"
|
|
||||||
@@ -20,7 +21,24 @@
|
|
||||||
Folder string `json:"folder"`
|
|
||||||
}
|
|
||||||
|
|
||||||
+var itemsMu sync.Mutex
|
|
||||||
+
|
|
||||||
func initItems() {
|
|
||||||
+ itemsMu.Lock()
|
|
||||||
+ defer itemsMu.Unlock()
|
|
||||||
+ initItemsLocked()
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+func items() []RbwItem {
|
|
||||||
+ itemsMu.Lock()
|
|
||||||
+ defer itemsMu.Unlock()
|
|
||||||
+ if cachedItems == nil {
|
|
||||||
+ initItemsLocked()
|
|
||||||
+ }
|
|
||||||
+ return cachedItems
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+func initItemsLocked() {
|
|
||||||
cachedItems = nil
|
|
||||||
cmd := exec.Command("rbw", "list", "--raw")
|
|
||||||
output, err := cmd.CombinedOutput()
|
|
||||||
@@ -40,7 +58,7 @@
|
|
||||||
|
|
||||||
entries := []*pb.QueryResponse_Item{}
|
|
||||||
|
|
||||||
- for k, v := range cachedItems {
|
|
||||||
+ for k, v := range items() {
|
|
||||||
var subtexts []string
|
|
||||||
actions := []string{ActionCopyPassword, ActionCopyTotp, ActionSyncVault}
|
|
||||||
if config.AutoTypeSupport {
|
|
||||||
@@ -13,6 +13,7 @@
|
|||||||
kubelogin-oidc
|
kubelogin-oidc
|
||||||
jq
|
jq
|
||||||
just
|
just
|
||||||
|
python3Packages.python-openstackclient
|
||||||
python314
|
python314
|
||||||
rclone
|
rclone
|
||||||
sops
|
sops
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ in
|
|||||||
flake.modules.homeManager.workstation-base = {
|
flake.modules.homeManager.workstation-base = {
|
||||||
imports = [
|
imports = [
|
||||||
homeModules.passwords
|
homeModules.passwords
|
||||||
|
homeModules.audio
|
||||||
homeModules.clipboard
|
homeModules.clipboard
|
||||||
homeModules.handy
|
homeModules.handy
|
||||||
homeModules.desktop-commands
|
homeModules.desktop-commands
|
||||||
|
|||||||
Reference in new issue
Block a user