bd sync: 2026-01-14 14:57:06

This commit is contained in:
2026-01-14 14:57:06 -08:00
parent 228bed6546
commit 56fd802102

View File

@@ -15,6 +15,7 @@
{"id":"nixos-configs-505","title":"Document discovered-work pattern in workflow guide","description":"Add section to beads_workflow.md explaining the discovered-work pattern:\n\n1. File one bead for initial idea\n2. Research may reveal work should split\n3. Create new beads for each discovered subtask\n4. Link with 'discovered-from' dependency type\n5. Close original bead as 'split into subtasks'\n\nInclude concrete example showing the flow.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-12T18:33:12.757818-08:00","created_by":"johno","updated_at":"2026-01-12T18:39:20.523878-08:00","closed_at":"2026-01-12T18:39:20.523878-08:00","close_reason":"Documented in beads_workflow.md Design Decisions section - 'One Bead Per Feature' and 'discovered-work pattern'","dependencies":[{"issue_id":"nixos-configs-505","depends_on_id":"nixos-configs-45r","type":"blocks","created_at":"2026-01-12T18:33:18.801265-08:00","created_by":"johno"},{"issue_id":"nixos-configs-505","depends_on_id":"nixos-configs-8gr","type":"blocks","created_at":"2026-01-12T18:33:18.845276-08:00","created_by":"johno"}]}
{"id":"nixos-configs-71w","title":"Create k3s-node role and apply to john-endesktop as worker","description":"Create a reusable k3s-node NixOS role/module. Apply it to john-endesktop configured as a worker node joining the existing cluster.","notes":"## Research Notes (2026-01-10)\n\n### Current State\n- No k3s service configuration exists in codebase\n- john-endesktop is currently NFS server providing storage to external k3s cluster\n- kubectl home role exists at `home/roles/kubectl/`\n- origin/k3s branch has prior work using SOPS (not wanted)\n\n### Implementation Requirements\n1. Create `roles/k3s-node/default.nix` with options:\n - `enable` - Enable k3s\n - `role` - \"server\" or \"agent\" (default: agent)\n - `serverAddr` - URL to join (default for agent: https://10.0.0.222:6443)\n - `tokenFile` - Path to token (default: /etc/k3s/token)\n - `extraFlags` - Additional k3s flags\n - `gracefulNodeShutdown` - Enable graceful shutdown\n\n2. Add firewall rules:\n - TCP: 6443 (API), 2379-2380 (etcd HA)\n - UDP: 8472 (flannel VXLAN)\n\n3. Import in `roles/default.nix`\n\n4. Enable on john-endesktop as agent\n\n### Token Storage\nUse Bitwarden + bootstrap script (consistent with kubectl role):\n```bash\nsudo mkdir -p /etc/k3s\nrbw get k3s-cluster-token | sudo tee /etc/k3s/token \u003e /dev/null\nsudo chmod 600 /etc/k3s/token\n```\n\n### Key Files\n- `roles/bluetooth/default.nix` - Simple role pattern\n- `roles/nvidia/default.nix` - Complex role pattern\n- `machines/john-endesktop/configuration.nix` - Host to update\n\n### Research Doc\n`thoughts/shared/research/2026-01-10-k3s-node-role-requirements.md`","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T19:13:01.944871413-08:00","created_by":"johno","updated_at":"2026-01-10T20:09:38.740416079-08:00","closed_at":"2026-01-10T20:09:38.740416079-08:00","close_reason":"Implemented k3s-node role and enabled on john-endesktop as agent. Node joined cluster successfully."}
{"id":"nixos-configs-7hd","title":"Add Claude skill for parallel bead processing workflow","description":"## Summary\nAdd a Claude skill to the home development role that orchestrates parallel bead processing using subagents.\n\n## Workflow\n\n### Phase 1: Selection\n1. Run `bd ready` to get list of all ready beads\n2. Prompt user to select which beads they want to work on (multi-select)\n\n### Phase 2: Parallel Implementation (subagents)\nFor each selected bead, spin up a subagent responsible for:\n1. Creating a branch/worktree for the bead (e.g., `git worktree add`)\n2. Working on the bead until its acceptance criteria are met\n3. Committing and pushing the changes to the branch\n4. Opening a PR to merge those changes\n - PR description must reference the bead ID\n - If the bead references an external issue number (e.g., GitHub issue), include that in the PR description as well\n\n### Phase 3: Parallel Review (subagents)\nSpin up another set of subagents to:\n1. Read each PR and its changes\n2. Leave review comments on the PR\n\n### Phase 4: Cleanup \u0026 Summary\n1. Clean up the worktrees\n2. Provide links and summaries to each PR\n3. Include failure status if any subagent was unable to make progress\n\n## Acceptance Criteria\n- [ ] Skill is added to home development role configuration\n- [ ] Skill prompts user with multi-select for bead selection\n- [ ] Subagents create isolated worktrees for each bead\n- [ ] Subagents work until acceptance criteria met or report blockers\n- [ ] Changes are committed and pushed\n- [ ] PRs are opened automatically\n- [ ] PR descriptions reference the bead ID\n- [ ] PR descriptions include linked external issue numbers from the bead\n- [ ] Review subagents provide meaningful feedback\n- [ ] Worktrees are cleaned up after completion\n- [ ] Final summary includes PR links, status, and any failures\n\n## Location\n`home/roles/development/` or appropriate skill location for Claude skills\n\n## Notes\n- Consider error handling for subagent failures\n- Consider parallelism limits to avoid overwhelming resources\n- Should integrate with existing beads workflow (`bd` commands)","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-10T10:47:06.688785671-08:00","created_by":"johno","updated_at":"2026-01-12T20:50:16.809506837-08:00","closed_at":"2026-01-12T20:50:16.809506837-08:00","close_reason":"Already implemented"}
{"id":"nixos-configs-7zf","title":"Add semver tags to gitea-actions repo","description":"The gitea-actions repo uses branch references (e.g., nix-setup@main) which Renovate cannot track. Add semantic versioning tags to enable dependency tracking.\n\nTasks:\n- Set up tagging scheme (e.g., v1.0.0 for nix-setup)\n- Create initial tags for existing actions\n- Update documentation to recommend tag references\n- Consider GitHub Actions-style major version tags (e.g., @v1 pointing to latest v1.x.x)\n\nBlocked by: nixos-configs-w0v (Renovate setup - want Renovate in place to test)","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-14T14:53:33.869010512-08:00","created_by":"johno","updated_at":"2026-01-14T14:53:33.869010512-08:00","dependencies":[{"issue_id":"nixos-configs-7zf","depends_on_id":"nixos-configs-w0v","type":"blocks","created_at":"2026-01-14T14:55:01.513506998-08:00","created_by":"johno"}]}
{"id":"nixos-configs-85h","title":"Iterate parallel beads skill","notes":"Gitea issue #12: https://git.johnogle.info/johno/nixos-configs/issues/12\n\nAfter opening a PR, instead of closing the bead we should mark it with 'in review' status. The PR should be included in the bead notes.\n\nAlso want an additional skill to reconcile beads with PRs - if a PR is merged then the bead should be closed.\n\nPR: https://git.johnogle.info/johno/nixos-configs/pulls/14","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-10T12:27:39.251088165-08:00","created_by":"johno","updated_at":"2026-01-13T09:15:11.536120865-08:00","closed_at":"2026-01-13T09:15:11.536120865-08:00","close_reason":"PR merged"}
{"id":"nixos-configs-8gr","title":"Add plan-awareness to beads:implement","description":"beads:implement should behave differently based on plan presence and bead type.\n\nDesired behavior:\n- type=bug, no plan: Proceed (simple bugs don't need plans)\n- type=feature/task, no plan: Warn and ask whether to proceed or create plan first\n- type=feature/task, has plan: Proceed normally\n\nThis guides users toward the right workflow without being rigid.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-12T18:33:11.8486-08:00","created_by":"johno","updated_at":"2026-01-12T18:39:09.8961-08:00","closed_at":"2026-01-12T18:39:09.8961-08:00","close_reason":"Implemented in this session"}
{"id":"nixos-configs-9eq","title":"Improve parallel_beads to enforce worktree/branch workflow","description":"## Problem\n\nThe parallel_beads skill documents creating worktrees, but the implementation subagents worked directly on main branch instead of in isolated worktrees.\n\n## What Happened\n- Subagents implemented changes directly in the working directory on main\n- Had to manually create branch and PR after the fact\n- Risk of accidentally committing to main\n\n## Proposed Fix\n\nUpdate parallel_beads skill to:\n1. **Require worktree creation first** before implementation starts\n2. Add explicit checks that we're not on main branch\n3. Consider making worktree creation part of the subagent launch, not optional\n\n## Related Skills\n- `home/roles/development/skills/parallel_beads.md`\n- `home/roles/development/skills/beads_implement.md`","notes":"Plan created: thoughts/beads-nixos-configs-9eq/plan.md","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-13T07:29:59.616023732-08:00","created_by":"johno","updated_at":"2026-01-14T14:27:42.279333967-08:00","closed_at":"2026-01-14T14:27:42.279333967-08:00","close_reason":"PR #29 merged"}
@@ -56,7 +57,7 @@
{"id":"nixos-configs-und","title":"Evaluate Custom Packages","description":"# Investigation: Custom Packages\n\n## Questions to Answer\n- Are packages well-structured?\n- Is overlay usage optimal?\n- Are packages up-to-date with nixpkgs conventions?\n\n## Key Files\n- `packages/default.nix` - Custom package overlay\n- `packages/*/default.nix` - Individual package definitions\n\n## Approach\n1. Use `/humanlayer:research_codebase_nt` to analyze package structure\n2. Check overlay patterns and composition\n3. Use `/humanlayer:create_plan_nt` to plan improvements if needed","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T10:08:25.566312823-08:00","created_by":"johno","updated_at":"2026-01-10T10:11:22.107817076-08:00","closed_at":"2026-01-10T10:11:22.107817076-08:00","close_reason":"# Custom Packages Evaluation Complete\n\n## Overview\nThe nixos-configs repository contains 5 custom packages, all managed through a single `packages/default.nix` file that exposes them via `pkgs.custom.*` overlay.\n\n## Package-by-Package Analysis\n\n### 1. claude-code (Well-Structured)\n- **Purpose**: Fetches Claude Code CLI directly from Google Cloud Storage, bypassing npm registry (needed for corporate network restrictions)\n- **Structure**: Excellent - uses `stdenv.mkDerivation` with proper multi-platform support (4 platforms)\n- **Update mechanism**: Has automated `update.sh` script that fetches version/hashes from Homebrew cask - very well designed\n- **Documentation**: Includes comprehensive README.md\n- **Usage**: Exposed via overlay to `pkgs.unstable.claude-code` for Darwin machines\n- **Note**: Also has an unused `npm.nix` with placeholder hash - appears to be abandoned attempt\n\n### 2. vulkan-hdr-layer (Well-Structured)\n- **Purpose**: Vulkan layer for HDR support\n- **Structure**: Proper `stdenv.mkDerivation` with meson build system\n- **Issue**: Uses commit hash version `63d2eec` (unstable version) - consider using tagged releases\n- **Note**: Not currently used anywhere in the configuration (orphaned package?)\n\n### 3. tea-rbw (Simple Wrapper)\n- **Purpose**: Wrapper around `tea` (Gitea CLI) that integrates with rbw (Bitwarden CLI) for authentication\n- **Structure**: Simple `writeShellScriptBin` - appropriate for this use case\n- **Usage**: Used in `home/roles/development/default.nix`\n\n### 4. app-launcher-server (Simple Wrapper)\n- **Purpose**: HTTP server for launching allowlisted applications (Firefox, Kodi)\n- **Structure**: Python script with `writeShellScriptBin` wrapper - clean design\n- **Usage**: Used in `roles/kodi/default.nix` for media center control\n\n### 5. perles (Well-Structured)\n- **Purpose**: TUI for Beads issue tracking system\n- **Structure**: Proper `buildGoModule` with GitHub fetch\n- **Issue**: Uses `rev = \"main\"` instead of pinned commit - can cause reproducibility issues\n- **Usage**: Used in `home/roles/development/default.nix`\n\n## Overlay Integration\nPackages are exposed via overlay in flake.nix:\n```nix\ncustom = prev.callPackage ./packages {};\n```\nThis is a clean, standard pattern.\n\n## Observations\n\n### Strengths\n1. Single entry point (`packages/default.nix`) for all custom packages\n2. Proper use of `callPackage` idiom\n3. Good variety of build patterns (stdenv, buildGoModule, writeShellScriptBin)\n4. Excellent automated update script for claude-code\n5. Proper meta attributes on most packages\n\n### Issues/Recommendations\n1. **vulkan-hdr-layer appears unused** - consider removing if not needed\n2. **perles uses `rev = \"main\"`** - should pin to specific commit for reproducibility\n3. **npm.nix is unused** - leftover file in claude-code directory\n4. **Missing maintainers** - all packages have empty maintainers list\n5. **vulkan-hdr-layer uses unstable version** - uses commit hash, not tagged release\n\n## Nixpkgs Convention Compliance\n- Package naming follows conventions\n- Meta attributes present\n- Uses appropriate build helpers\n- Overlay pattern is idiomatic\n- Could benefit from adding tests for some packages"}
{"id":"nixos-configs-v2v","title":"Pin perles package to specific commit","description":"From Custom Packages evaluation: perles in packages/perles/default.nix uses rev = 'main' instead of a pinned commit. This breaks reproducibility. Should pin to a specific commit hash.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T10:31:27.624760234-08:00","created_by":"johno","updated_at":"2026-01-12T20:42:40.886662599-08:00","closed_at":"2026-01-12T20:42:40.886662599-08:00","close_reason":"perles package was removed entirely"}
{"id":"nixos-configs-vru","title":"Add skill for responding to Gitea PR review comments","description":"## Problem\n\nWhen responding to PR review comments on Gitea/Forgejo, the REST API (`/api/v1/...`) does not support replying directly to review comment threads. Using `tea comment` or the API creates new top-level comments instead of inline thread replies.\n\n## Discovery\n\nThe web UI uses a different endpoint that supports replies:\n\n```\nPOST /pulls/{id}/files/reviews/comments\nContent-Type: multipart/form-data\n```\n\nKey form fields:\n- `reply`: Review ID to reply to (e.g., `2`)\n- `content`: The reply message\n- `path`: File path (e.g., `home/roles/development/default.nix`)\n- `line`: Line number\n- `side`: `proposed` or `original`\n- `single_review`: `true`\n- `origin`: `timeline`\n- `_csrf`: CSRF token (required)\n\nAuthentication requires session cookies, not API token.\n\n## Proposed Solution\n\nCreate a Claude skill that can:\n1. Fetch PR review comments via the REST API\n2. Authenticate via browser session or find alternative auth method\n3. Post inline replies to review comment threads using the web endpoint\n\n### Options to explore:\n1. **Session extraction**: Get cookies from browser or `tea` config\n2. **Headless browser**: Use playwright/puppeteer to automate web UI\n3. **CSRF flow**: Login via API, get CSRF token, then use web endpoint\n4. **tea enhancement**: Check if `tea` CLI has undocumented reply support\n\n## API Reference\n\nGet reviews:\n```bash\ncurl -H \"Authorization: token $TOKEN\" \\\n \"https://git.johnogle.info/api/v1/repos/{owner}/{repo}/pulls/{id}/reviews\"\n```\n\nGet review comments:\n```bash\ncurl -H \"Authorization: token $TOKEN\" \\\n \"https://git.johnogle.info/api/v1/repos/{owner}/{repo}/pulls/{id}/reviews/{review_id}/comments\"\n```\n\n## Acceptance Criteria\n\n- [ ] Skill can read PR review comments given a PR number\n- [ ] Skill can post inline replies to specific review comment threads\n- [ ] Works with Gitea/Forgejo instances (git.johnogle.info)\n- [ ] Handles authentication securely","notes":"Plan: thoughts/beads-nixos-configs-vru/plan.md\nPR: https://git.johnogle.info/johno/nixos-configs/pulls/26","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-10T11:29:18.493043744-08:00","created_by":"johno","updated_at":"2026-01-13T09:15:11.532836665-08:00","closed_at":"2026-01-13T09:15:11.532836665-08:00","close_reason":"PR merged"}
{"id":"nixos-configs-w0v","title":"Add Renovate for dependency tracking","description":"Set up Renovate bot to automatically track and update dependencies in Gitea Actions workflows.\n\n## Motivation\n- actions/checkout@v4 and other actions may become outdated\n- Manual tracking is error-prone\n- Renovate can auto-create PRs for updates\n\n## Scope\n- gitea-actions repo (composite actions use DeterminateSystems/nix-installer-action, actions/cache)\n- nixos-configs CI workflow\n- Potentially other repos with Gitea Actions\n\n## Tasks\n- Set up Renovate bot on Gitea instance (or use Mend Renovate if available)\n- Create renovate.json configuration\n- Configure update grouping strategy\n- Test PR creation for dependency updates","notes":"Track action version updates (e.g., actions/checkout, DeterminateSystems/nix-installer-action).\n\nApplies to:\n- gitea-actions repo (composite actions)\n- nixos-configs CI workflow\n- Other repos using Gitea Actions\n\nConsider:\n- Renovate bot setup on Gitea\n- renovate.json configuration\n- Grouping strategies for action updates","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-13T16:25:39.216159651-08:00","created_by":"johno","updated_at":"2026-01-13T16:25:48.028129064-08:00"}
{"id":"nixos-configs-w0v","title":"Add Renovate for dependency tracking","description":"Set up Renovate bot to automatically track and update dependencies in Gitea Actions workflows.\n\n## Motivation\n- actions/checkout@v4 and other actions may become outdated\n- Manual tracking is error-prone\n- Renovate can auto-create PRs for updates\n\n## Scope\n- gitea-actions repo (composite actions use DeterminateSystems/nix-installer-action, actions/cache)\n- nixos-configs CI workflow\n- Potentially other repos with Gitea Actions\n\n## Tasks\n- Set up Renovate bot on Gitea instance (or use Mend Renovate if available)\n- Create renovate.json configuration\n- Configure update grouping strategy\n- Test PR creation for dependency updates","notes":"Plan: thoughts/beads-nixos-configs-w0v/plan.md","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-13T16:25:39.216159651-08:00","created_by":"johno","updated_at":"2026-01-14T14:56:30.465943357-08:00"}
{"id":"nixos-configs-wb1","title":"Fix tmux 'missing or unsuitable terminal: xterm-ghostty' on SSH","description":"When SSH'ing to john-endesktop and running 'tmux attach', tmux fails with 'missing or unsuitable terminal: xterm-ghostty'. This happens because the remote machine doesn't have the terminfo for ghostty installed.\n\nPreferred solution: Install ghostty terminfo as part of the NixOS configuration so all machines have it available, even those not running ghostty directly.","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-13T14:06:13.003367074-08:00","created_by":"johno","updated_at":"2026-01-13T14:09:38.6337072-08:00","closed_at":"2026-01-13T14:09:38.6337072-08:00","close_reason":"Added ghostty.terminfo to roles/common.nix"}
{"id":"nixos-configs-wgw","title":"PR description should include validation steps completed","description":"For parallel beads workflow, the PR description should include what validation steps have been completed.\n\nSource: Gitea issue #13\nhttps://git.johnogle.info/johno/nixos-configs/issues/13","status":"open","priority":2,"issue_type":"feature","created_at":"2026-01-14T14:30:18.732068919-08:00","created_by":"johno","updated_at":"2026-01-14T14:30:18.732068919-08:00"}
{"id":"nixos-configs-wgw","title":"PR description should include validation steps completed","description":"For parallel beads workflow, the PR description should include what validation steps have been completed.\n\nSource: Gitea issue #13\nhttps://git.johnogle.info/johno/nixos-configs/issues/13","notes":"Plan: thoughts/beads-nixos-configs-wgw/plan.md","status":"open","priority":2,"issue_type":"feature","created_at":"2026-01-14T14:30:18.732068919-08:00","created_by":"johno","updated_at":"2026-01-14T14:56:35.37814774-08:00"}
{"id":"nixos-configs-yrc","title":"Gitea integration Phase 2: Bidirectional sync","description":"Add push support to Gitea integration.\n\nDeliverables:\n- CreateIssue/UpdateIssue methods in client.go\n- Conflict detection and resolution\n- bd sync --gitea integration\n- Incremental sync via updated_at filtering\n\nParent: nixos-configs-cph","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-12T20:31:53.714748854-08:00","created_by":"johno","updated_at":"2026-01-12T20:41:43.804389915-08:00","closed_at":"2026-01-12T20:41:43.804389915-08:00","close_reason":"Deprioritized - revisit after more workflow experimentation","dependencies":[{"issue_id":"nixos-configs-yrc","depends_on_id":"nixos-configs-g47","type":"blocks","created_at":"2026-01-12T20:32:05.872628288-08:00","created_by":"johno"}]}