Compare commits

...

2 Commits

Author SHA1 Message Date
11b490d1e8 chore: apply generic updates 2026-10-04 13:56:23 -04:00
43b5d07a27 revert(nixos): undo bad system update
Restore the pre-update Pi packaging and Rofi option from PR 124 after the associated deployment exposed a performance regression.

Refs: 1b4dc7762
2026-10-04 13:50:10 -04:00
7 changed files with 176 additions and 104 deletions

View File

@@ -73,7 +73,7 @@
steamPath = "/pikachu/data/steamcmd";
installPath = "/pikachu/data/servers/valheim/main";
statePath = "/pikachu/media/games/servers/valheim/main";
serverName = "butter-chicken";
serverName = "main";
reverseProxy = {
enable = true;
route = {

View File

@@ -5,13 +5,10 @@
...
}:
# Steam game launcher and runtime integration.
let
cfg = config.modules.desktop.apps.steam; # NOLINT(let_order)
in
{
options.modules.desktop.apps.steam.enable = lib.mkEnableOption "Steam game launcher";
config = lib.mkIf cfg.enable {
config = lib.mkIf config.modules.desktop.apps.steam.enable {
programs.gamemode.enable = true;
programs.steam = {

View File

@@ -34,7 +34,7 @@ in
# Application launch is the only mode, kept minimal so the prompt opens
# as fast as rofi can read the desktop entries.
# Icons are off: resolving one per entry is the bulk of drun's startup.
settings = {
extraConfig = {
modi = "drun";
show-icons = false;
};

View File

@@ -8,7 +8,7 @@
# home-manager, which ships the package and manages global settings.
# The login credential is left unmanaged, so it survives rebuilds.
let
user = config.user.name; # NOLINT(let_order)
user = config.user.name;
piDir = "${config.users.users.${user}.home}/.pi/agent";
in
{
@@ -20,78 +20,9 @@ in
home-manager.users.${user} = {
programs.pi-coding-agent = {
enable = true;
package = pkgs.buildNpmPackage {
pname = "pi-coding-agent";
version = "0.85.1";
package = pkgs.pi-coding-agent.overrideAttrs {
src = ../../../../../third_party/pi;
npmDepsHash = "sha256-jzlsZIQzfl1FCZZ5//dHFWwMfBZQ4nRD6KB4HHifPqE=";
npmWorkspace = "packages/coding-agent";
npmRebuildFlags = [ "--ignore-scripts" ];
dontNpmPrune = true;
preConfigure = ''
mkdir -p packages/ai/src/providers/data
tar --extract --gzip \
--file=${
pkgs.fetchurl {
url = "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.85.1.tgz";
hash = "sha256-r30RmGF5RFzm/oizfVfeIvgjwP/TplyuMcVVt/XpklM=";
}
} \
--directory=packages/ai/src/providers/data \
--strip-components=4 \
package/dist/providers/data
'';
buildPhase = ''
runHook preBuild
npm run build:offline
runHook postBuild
'';
preInstall = ''
npm prune --omit=dev --no-save
'';
postInstall = ''
local nm="$out/lib/node_modules/pi-monorepo/node_modules"
for ws in @earendil-works/chord:packages/chord \
@earendil-works/pi-ai:packages/ai \
@earendil-works/pi-agent-core:packages/agent \
@earendil-works/pi-client:packages/client \
@earendil-works/pi-protocol:packages/protocol \
@earendil-works/pi-telemetry:packages/telemetry \
@earendil-works/pi-tui:packages/tui; do
IFS=: read -r pkg src <<< "$ws"
rm "$nm/$pkg"
cp -r "$src" "$nm/$pkg"
done
find "$nm" -type l -lname '*/packages/*' -delete
find "$nm/.bin" -xtype l -delete
'';
nativeBuildInputs = [ pkgs.makeBinaryWrapper ];
postFixup = ''
wrapProgram "$out/bin/pi" --prefix PATH : ${
lib.makeBinPath [
pkgs.ripgrep
pkgs.fd
]
} \
--set-default PI_SKIP_VERSION_CHECK 1 \
--set-default PI_TELEMETRY 0
'';
doInstallCheck = true;
nativeInstallCheckInputs = [
pkgs.writableTmpDirAsHomeHook
pkgs.versionCheckHook
];
versionCheckKeepEnvironment = [ "HOME" ];
versionCheckProgram = "${placeholder "out"}/bin/pi";
versionCheckProgramArg = "--version";
patches = [ ];
};
settings = {

View File

@@ -13,12 +13,12 @@
"state": {
"type": "markdown",
"state": {
"file": "00 INBOX/valheim progression.md",
"file": "TODO.md",
"mode": "source",
"source": true
},
"icon": "lucide-file",
"title": "valheim progression"
"title": "TODO"
}
}
]
@@ -91,7 +91,7 @@
"state": {
"type": "localgraph",
"state": {
"file": "00 INBOX/valheim progression.md",
"file": "TODO.md",
"options": {
"collapse-filter": true,
"search": "",
@@ -233,14 +233,16 @@
},
"active": "22a4c1f201a1b00e",
"lastOpenFiles": [
"00 INBOX/valheim progression.md",
"TODO.md",
"technical-writing.md",
"rust-module-prototype.md",
"00 INBOX/ai/statix-architecture.md",
"00 INBOX/ai/nix-statix-deadnix-rules.md",
"00 INBOX/let order name resolution.md~",
"00 INBOX/nix name resolution.md",
"00 INBOX/let order name resolution.md",
"00 INBOX/nix name resolution.md~",
"00 INBOX/valheim progression.md",
"TODO.md",
"00 INBOX/ai/deadnix-architecture.md",
"TODO.md~",
"00 INBOX/ai/xatu-rule-implementation-order.md",
@@ -260,7 +262,6 @@
"00 INBOX/ai/ariadne-pipeline-stage-boundary.md",
"00 INBOX/ai/ariadne-project-goals.md",
"02 notes/steamcmd server setup.md",
"00 INBOX/how to setup a steamcmd server.md",
"00 INBOX/ai/clew-ast-exploration.md~",
"03 wrk/machoke.md~",
"03 wrk/falinks.md~",

View File

@@ -5,22 +5,28 @@ date-created: 2026-09-23 07:13
# Valheim Progression
## Notation & Terms
| Notation | Meaning |
| -------- | ---------------------------------------------------------------- |
| A <- B | A can be OBTAINED from/through B |
| A => B | A DISCOVERS/UNLOCKS B in-game |
| A -> B | A is REQUIRED to make/do B |
| ![B] A | Completion objective of B category |
| A @ B | A is FOUND/LOCATED at/in B |
| ^ A#B | A is an alternative method for B |
| ? A | Open question about A |
| x A | A is prohibited/illegal method |
| A + B | A AND B |
| A \| B | A OR B |
| \* A | A is available from the START / has no progression prerequisites |
| A[n] | A with game-defined LEVEL/TIER n |
| Notation | Meaning |
| --------- | ------------------------------------------------------------------ |
| A <- B | A can be OBTAINED from/through B |
| A <- B{x} | A can be purchased from B for x coins |
| A => B | A DISCOVERS/UNLOCKS B in-game |
| A -> B | A is REQUIRED to make/do B |
| A ~> B | A is an UPGRADE for B |
| ![B] A | Completion objective of B category |
| A @ B | A is FOUND/LOCATED at/in B |
| ^ A#B | A is an alternative method for B |
| ? A | Open question about A |
| x A | A is prohibited/illegal method |
| A + B | A AND B |
| A \| B | A OR B |
| \* A | A is available from the START / has no progression prerequisites |
| A[n] | A at QUALITY/LEVEL n |
| A$n | A with CAPABILITY tier n (higher tiers satisfy lower requirements) |
| | |
- [farm]: a deliberately constructed setup that repeatedly produces a resource or creature drop more efficiently/reliably than ordinary gathering, though it may require consumable inputs or periodic maintenance.
- [build]: furniture, whether functional or decorative only.
- [craft]: craft the item
## Notes
@@ -40,13 +46,13 @@ Copper Ore{1} + Coal{2} @ Smelter -> Copper
Copper Ore <- Mine Copper Deposit
Copper Deposit + Pickaxe[0] -> Mine Copper Deposit
Copper Deposit + Pickaxe$0 -> Mine Copper Deposit
Copper Deposit @ Black Forest
* Black Forest
Antler Pickaxe -> Pickaxe[0]
Antler Pickaxe -> Pickaxe$0
Wood + Hard Antler + Workbench[1] => Antler Pickaxe
@@ -96,7 +102,7 @@ Tin Ore{1} + Coal{2} @ Smelter -> Tin
Tin Ore <- Mine Tin Deposit
Tin Deposit + Pickaxe[0] -> Mine Tin Deposit
Tin Deposit + Pickaxe$0 -> Mine Tin Deposit
Tin Deposit @ Black Forest
@@ -104,9 +110,9 @@ Stone + Coal + Wood + Copper + Workbench[1] + Hammer => Forge[1]
Stone{4} + Coal{4} + Wood{10} + Copper{6} @ Workbench[1] -> Forge[1]
Chain @ Sunken Crypt
Chain @ Sunken Crypts
Swamp Key -> Sunken Crypt
Swamp Key -> Sunken Crypts
Swamp Key <- Kill Elder
@@ -118,8 +124,144 @@ Ancient Seed <- Greydwarf Nest
Elder Forsaken Altar @ Black Forest
Sunken Crypt @ Swamp
Sunken Crypts @ Swamp
* Swamp
Greydwarf Nest @ Black Forest
![build] Hearth
Stone + Stonecutter[1] + Hammer => Hearth
Stone{15} @ Stonecutter[1] -> Hearth
Wood + Iron + Stone + Workbench[1] + Hammer => Stonecutter[1]
Wood{10} + Iron{2} + Stone{4} @ Workbench[1] -> Stonecutter[1]
Scrap Iron{1} + Coal{2} @ Smelter -> Iron
Scrap Iron <- Sunken Crypts
Scrap Iron <- Mine Muddy Scrap Pile
Muddy Scrap Pile + Pickaxe$0 -> Mine Muddy Scrap Pile
Muddy Scrap Pile @ Sunken Crypts
![build] Iron Cooking Station
Iron + Chain + Forge[1] + Hammer => Iron Cooking Station
Iron{3} + Chain{3} @ Forge[1] -> Iron Cooking Station
![build] Obliterator
Iron + Copper + Thunder Stone + Forge[1] + Hammer => Obliterator
Iron{8} + Copper{4} + Thunder Stone{1} @ Forge[1] -> Obliterator
Thunder Stone <- Haldor{50}
Haldor @ Black Forest
Coins <- Troll
Troll @ Black Forest
Coins @ Burial Chambers
Coins @ Troll Cave
Troll Cave @ Black Forest
Coins @ Sunken Crypts
![craft] Iron Greaves
Iron + Deer Hide + Forge[2] => Iron Greaves
Iron{20} + Deer Hide{2} @ Forge[2] -> Iron Greaves
![craft] Iron Scale Mail
Iron + Deer Hide + Forge[2] => Iron Scale Mail
Iron{20} + Deer Hide{2} @ Forge[2] -> Iron Scale Mail
![build] Forge Tool Rack
Forge Tool Rack ~> Forge
Iron + Wood + Workbench[1] + Hammer => Forge Tool Rack
Iron{15} + Wood{10} @ Workbench[1] -> Forge Tool Rack
![build] Cauldron
Tin + Forge[1] + Hammer => Cauldron
Tin{10} @ Forge[1] -> Cauldron
![build] Mysterious Rock
Rock + Coal + Hammer => Mysterious Rock
Rock{1} + Coal{1} -> Mysterious Rock
Rock @ Black Forest
Rock @ Meadows
Rock @ Swamp
![build] Chopping Block
Chopping Block ~> Workbench
Wood + Flint + Workbench[1] + Hammer => Chopping Block
Wood{10} + Flint{10} @ Workbench[1] -> Chopping Block
![build] Tanning Rack
Tanning Rack ~> Workbench
Wood + Flint + Leather Scraps + Deer Hide + Workbench[1] + Hammer => Tanning Rack
Wood{10} + Flint{15} + Leather Scraps{20} + Deer Hide{5} @ Workbench[1] -> Tanning Rack
* Flint
Leather Scraps <- Boar
Boar @ Meadows
Deer Hide <- Deer
![build] Adze
Adze ~> Workbench
Finewood + Bronze + Forge[1] + Hammer => Adze
Finewood{10} + Bronze{3} @ Forge[1] -> Adze
Finewood <- Chop Birch
Birch + Axe[2] -> Chop Birch
Birch @ Meadows
Bronze Axe -> Axe[2]
Finewood <- Chop Oak
Oak + Axe[2] -> Chop Oak
Oak @ Meadows
Wood + Bronze + Leather Scraps + Forge[1] => Bronze Axe
Wood{4} + Bronze{8} + Leather Scraps{2} @ Forge[1] -> Bronze Axe

View File

@@ -24,6 +24,7 @@
- Rust project creator
- random number generator utility
- reading material helper
- valheim progression DSL + graph
# migration