|
451 | 451 | {"id":"bd-6uqj","title":"Fix Vercel ignoreCommand exit codes (build vs skip)","description":"Vercel ignoreCommand semantics are reversed: per Vercel docs, exit 0 = ignore build, exit 1 = continue build. apps/web/scripts/vercel-ignore-build.sh currently exits 0 on relevant changes and 1 on no changes, causing builds to be skipped when they should run and vice versa. Also update docs/snippet and track bun.lock (not bun.lockb).","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-29T06:10:26.570042Z","updated_at":"2025-12-29T06:15:54.338711Z","closed_at":"2025-12-29T06:15:54.338711Z","close_reason":"Corrected Vercel ignoreCommand semantics (exit 0 skip, exit 1 build), added fail-open behavior when git range is missing, and updated trigger lockfile to bun.lock.","source_repo":".","compaction_level":0,"original_size":0} |
452 | 452 | {"id":"bd-6utp","title":"state_phase_complete/fail should error when jq missing","description":"scripts/lib/state.sh: state_phase_complete() and state_phase_fail() are silent no-ops when jq is unavailable (they return success without updating state). This is inconsistent with state_phase_start/step_update (which require jq) and can lead to misleading success + broken resume metadata if jq is missing/broken.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-29T08:31:16.232856Z","updated_at":"2025-12-29T08:34:00.608209Z","closed_at":"2025-12-29T08:34:00.608209Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
453 | 453 | {"id":"bd-6w9u","title":"Create dedicated /glossary page","description":"# Task: Create Dedicated Glossary Page\n\n## Parent Epic\n[EPIC] Jargon System & Documentation Polish (agentic_coding_flywheel_setup-7i45)\n\n## Description\nCreate a comprehensive, searchable glossary page where users can look up technical terms. This provides a deeper reference than tooltips and helps users who want to understand the concepts more fully.\n\n## Implementation Details\nLocation: apps/web/app/glossary/page.tsx\n\n\\`\\`\\`tsx\n// Key features:\n// 1. Alphabetical listing of all terms\n// 2. Search/filter functionality\n// 3. Categorization (Shell, Networking, Tools, etc.)\n// 4. Detailed explanations (more than tooltip)\n// 5. Links to relevant wizard steps or lessons\n\ninterface GlossaryEntry {\n term: string;\n short: string; // Tooltip version\n long: string; // Full explanation\n category: 'shell' | 'networking' | 'tools' | 'concepts';\n relatedTerms?: string[];\n learnMore?: string; // Link to lesson\n}\n\\`\\`\\`\n\nPage should include:\n- Search box at top\n- Category filters\n- Clean, scannable layout\n- Mobile-friendly (single column)\n- Links from jargon tooltips to glossary entries\n\n## Acceptance Criteria\n- [ ] All terms from Jargon component included\n- [ ] Search filters results in real-time\n- [ ] Categories help organize terms\n- [ ] Long explanations are thorough but accessible\n- [ ] Links to related wizard steps where applicable\n- [ ] Mobile-responsive design\n\n## UI/UX Notes\n- This is a reference page, not a learning page\n- Users might land here from Google searches\n- Consider SEO implications (good meta descriptions)\n- Use same visual style as rest of site","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-22T18:45:10.252228Z","updated_at":"2025-12-22T19:43:47.598957Z","closed_at":"2025-12-22T19:43:47.598957Z","close_reason":"Completed (new /glossary page with live search + category filters; added Jargon tooltip links to glossary anchors)","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-6w9u","depends_on_id":"bd-367d","type":"blocks","created_at":"2025-12-22T18:57:43.702732Z","created_by":"jemanuel","metadata":"{}","thread_id":""}]} |
454 | | -{"id":"bd-6wfdn","title":"Add rescue and handoff test matrix with detailed logs","description":"## What\nCreate comprehensive unit, smoke, and browser/e2e coverage for the first-run rescue epic.\n\n## Why\nThe rescue flow is only useful if future changes cannot silently break beginner recovery, redaction, or copy/paste command safety.\n\n## Coverage Requirements\n- Runbook generation from normal wizard choices and missing/malformed wizard state.\n- Rescue advisor output for healthy, failed, interrupted, and unknown states.\n- Local progress evidence in support bundles with redaction and opt-out.\n- Copy/paste command snippets fit the repo policy: `main` branch, no `master`, no destructive cleanup, no non-Bun package-manager commands.\n\n## Risks\nBrowser tests can become brittle if they assert decorative UI details. Keep assertions focused on generated artifact content, command safety, and recovery states.\n\n## Logging\nTests should emit artifact paths, fixture state summaries, and the exact rescue recommendation selected for each scenario.\n\n## Acceptance Criteria\n- `shellcheck` covers Bash surfaces.\n- `cd apps/web && bun run type-check && bun run lint` covers web changes when touched.\n- Playwright/e2e coverage is added for the runbook UI if web files change.","status":"open","priority":2,"issue_type":"task","created_at":"2026-05-08T13:51:03.539177474Z","created_by":"ubuntu","updated_at":"2026-05-08T14:03:13.881248360Z","source_repo":".","compaction_level":0,"original_size":0,"labels":["e2e","idea-wizard","next-wave","onboarding","rescue","tests","unit-tests","wizard"],"dependencies":[{"issue_id":"bd-6wfdn","depends_on_id":"bd-89y7h","type":"blocks","created_at":"2026-05-08T13:53:17.612598030Z","created_by":"ubuntu","metadata":"{}","thread_id":""},{"issue_id":"bd-6wfdn","depends_on_id":"bd-a3eoy","type":"blocks","created_at":"2026-05-08T13:53:23.146204011Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]} |
| 454 | +{"id":"bd-6wfdn","title":"Add rescue and handoff test matrix with detailed logs","description":"## What\nCreate comprehensive unit, smoke, and browser/e2e coverage for the first-run rescue epic.\n\n## Why\nThe rescue flow is only useful if future changes cannot silently break beginner recovery, redaction, or copy/paste command safety.\n\n## Coverage Requirements\n- Runbook generation from normal wizard choices and missing/malformed wizard state.\n- Rescue advisor output for healthy, failed, interrupted, and unknown states.\n- Local progress evidence in support bundles with redaction and opt-out.\n- Copy/paste command snippets fit the repo policy: `main` branch, no `master`, no destructive cleanup, no non-Bun package-manager commands.\n\n## Risks\nBrowser tests can become brittle if they assert decorative UI details. Keep assertions focused on generated artifact content, command safety, and recovery states.\n\n## Logging\nTests should emit artifact paths, fixture state summaries, and the exact rescue recommendation selected for each scenario.\n\n## Acceptance Criteria\n- `shellcheck` covers Bash surfaces.\n- `cd apps/web && bun run type-check && bun run lint` covers web changes when touched.\n- Playwright/e2e coverage is added for the runbook UI if web files change.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-08T13:51:03.539177474Z","created_by":"ubuntu","updated_at":"2026-05-08T16:08:27.232275044Z","closed_at":"2026-05-08T16:08:27.232035286Z","close_reason":"Added handoff safety matrix coverage and rejected legacy master refs in generated installer commands.","source_repo":".","compaction_level":0,"original_size":0,"labels":["e2e","idea-wizard","next-wave","onboarding","rescue","tests","unit-tests","wizard"],"dependencies":[{"issue_id":"bd-6wfdn","depends_on_id":"bd-89y7h","type":"blocks","created_at":"2026-05-08T13:53:17.612598030Z","created_by":"ubuntu","metadata":"{}","thread_id":""},{"issue_id":"bd-6wfdn","depends_on_id":"bd-a3eoy","type":"blocks","created_at":"2026-05-08T13:53:23.146204011Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]} |
455 | 455 | {"id":"bd-6y4w","title":"TASK: Implement prompt_ssh_key() function in user.sh","description":"## Parent Feature\nagentic_coding_flywheel_setup-fslp (Installer SSH Key Integration)\n\n## Summary\nCreate the \\`prompt_ssh_key()\\` function that interactively prompts users to paste their\nSSH public key and installs it to /root/.ssh/authorized_keys.\n\n## Implementation Details\n\n### File Location\n\\`scripts/lib/user.sh\\` - add after existing functions\n\n### Function Specification\n\n\\`\\`\\`bash\n# Prompt user for SSH public key and install it\n# Called when running as root with no existing key\n# Returns 0 on success or skip, 1 on invalid key\nprompt_ssh_key() {\n # 1. Check if we already have a valid key\n if [[ -f /root/.ssh/authorized_keys ]]; then\n if grep -q \"^ssh-\" /root/.ssh/authorized_keys 2>/dev/null; then\n log_detail \"SSH key already present, skipping prompt\"\n return 0\n fi\n fi\n\n # 2. Check if stdin is a terminal (interactive mode)\n if [[ ! -t 0 ]]; then\n log_warn \"Non-interactive mode detected, skipping SSH key prompt\"\n log_detail \"You can add your key later with: ssh-copy-id\"\n return 0\n fi\n\n # 3. Display prompt UI\n echo \"\"\n echo \"╔══════════════════════════════════════════════════════════════╗\"\n echo \"║ SSH Key Setup ║\"\n echo \"╠══════════════════════════════════════════════════════════════╣\"\n echo \"║ Let's set up SSH key authentication so you won't need ║\"\n echo \"║ to enter a password every time you connect. ║\"\n echo \"╚══════════════════════════════════════════════════════════════╝\"\n echo \"\"\n echo \"Your public key should start with:\"\n echo \" ssh-ed25519 AAAAC3NzaC1...\" OR ssh-rsa AAAAB3NzaC1...\"\n echo \"\"\n echo \"You saved this earlier when you ran ssh-keygen on your computer.\"\n echo \"(Press Enter to skip - you'll need password for future logins)\"\n echo \"\"\n \n # 4. Read the key\n read -r -p \"Paste your public key: \" pubkey\n\n # 5. Handle skip\n if [[ -z \"\\$pubkey\" ]]; then\n log_warn \"SSH key setup skipped\"\n log_detail \"You can add your key later by running:\"\n log_detail \" echo 'your-key-here' >> ~/.ssh/authorized_keys\"\n return 0\n fi\n\n # 6. Validate key format\n if [[ ! \"\\$pubkey\" =~ ^ssh-(ed25519|rsa|ecdsa|dss)[[:space:]] ]]; then\n log_error \"Invalid SSH key format\"\n log_detail \"Expected format: ssh-ed25519 AAAA... or ssh-rsa AAAA...\"\n log_detail \"Make sure you copied the PUBLIC key (the .pub file)\"\n return 1\n fi\n\n # 7. Install the key\n mkdir -p /root/.ssh\n chmod 700 /root/.ssh\n echo \"\\$pubkey\" >> /root/.ssh/authorized_keys\n chmod 600 /root/.ssh/authorized_keys\n \n log_success \"SSH key installed successfully\"\n log_detail \"You can now connect with: ssh -i ~/.ssh/your_key root@this_ip\"\n \n return 0\n}\n\\`\\`\\`\n\n### Edge Cases to Handle\n\n1. **Existing key**: Skip prompt if authorized_keys already has valid keys\n2. **Non-interactive**: Skip if stdin is not a terminal (curl|bash mode)\n3. **Empty input**: Treat as skip, show warning\n4. **Invalid format**: Show helpful error, don't install\n5. **Permission issues**: Create .ssh dir if missing, set proper perms\n\n### Testing Scenarios\n\n1. Fresh VPS, password-only → should prompt\n2. VPS with existing key → should skip\n3. Paste valid ed25519 key → should install\n4. Paste valid rsa key → should install\n5. Paste invalid text → should error\n6. Press Enter (skip) → should warn and continue\n7. Run via curl|bash → should skip gracefully\n\n## Acceptance Criteria\n\n- [ ] Function exists in user.sh\n- [ ] Validates key format before installing\n- [ ] Handles all edge cases gracefully\n- [ ] Creates .ssh directory if missing\n- [ ] Sets correct permissions (700 for dir, 600 for file)\n- [ ] Works when run multiple times (idempotent)\n- [ ] Clear success/error messages\n\n## Files Modified\n\n- scripts/lib/user.sh (add function)","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-22T00:19:06.013332Z","updated_at":"2025-12-22T00:31:59.551752Z","closed_at":"2025-12-22T00:31:59.551752Z","close_reason":"Function already implemented in scripts/lib/user.sh lines 193-257. Handles existing key check, interactive mode detection, key validation, and proper permissions.","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-6y4w","depends_on_id":"bd-fslp","type":"blocks","created_at":"2025-12-22T00:19:25.962058Z","created_by":"daemon","metadata":"{}","thread_id":""}]} |
456 | 456 | {"id":"bd-6zob","title":"Web workflow page: avoid bare bv command","description":"apps/web/app/workflow/page.tsx currently shows bare 'bv' in UI. AGENTS.md warns bare bv launches blocking TUI; update examples to bv --robot-triage (or otherwise align with robot-only guidance).","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-29T04:16:13.747800Z","updated_at":"2025-12-29T04:24:55.209569Z","closed_at":"2025-12-29T04:24:55.209569Z","close_reason":"Completed","source_repo":".","compaction_level":0,"original_size":0} |
457 | 457 | {"id":"bd-70t7w","title":"EPIC: Fix and complete repo_updater (ru) ACFS integration","description":"Fix and complete the existing repo_updater integration in ACFS. ru is ALREADY partially integrated but has issues.\n\nBACKGROUND:\n- Repo: https://github.com/Dicklesworthstone/repo_updater\n- Binary: ru (single Bash script, 22.7K LOC)\n- Tech: Pure Bash 4.0+, requires git, gh, tmux\n- Install: curl -fsSL .../install.sh | bash\n- Version: 1.2.1 (67 GitHub stars)\n- License: MIT + OpenAI/Anthropic Rider\n\nCURRENT INTEGRATION STATE:\n✅ Listed in acfs.manifest.yaml as stack.ru (phase 9, required)\n✅ Onboarding lesson exists at acfs/onboard/lessons/09_ru.md\n✅ Dependencies declared (cli.modern, stack.ntm)\n✅ Web metadata configured (display_name, tagline, icon, color, features)\n✅ Install check (command -v ru) and verify (ru --version)\n\nKNOWN ISSUES:\n❌ CRITICAL: Manifest specifies verified_installer args: [\"--easy-mode\"] but install.sh does NOT accept --easy-mode flag. Install.sh only accepts environment variables (DEST, RU_SYSTEM, RU_VERSION, etc.)\n❌ Webapp tool page/learning content may be incomplete or stale\n❌ Update logic in scripts/lib/update.sh needs verification\n❌ No E2E installation test specific to ru\n\nFIX PLAN:\n1. Fix the --easy-mode flag mismatch (either remove from manifest or add to install.sh)\n2. Verify webapp content is current and comprehensive\n3. Verify update.sh handles ru correctly\n4. Add E2E installation test\n5. Verify checksums.yaml has correct entry","status":"closed","priority":2,"issue_type":"epic","created_at":"2026-03-12T02:38:55.362277089Z","created_by":"ubuntu","updated_at":"2026-03-12T18:53:23.609575Z","closed_at":"2026-03-12T18:53:23.609575Z","close_reason":"done","closed_by_session":"SandyCitadel","source_repo":".","compaction_level":0,"original_size":0,"dependencies":[{"issue_id":"bd-70t7w","depends_on_id":"bd-s9a3t","type":"blocks","created_at":"2026-03-12T02:39:19.896962854Z","created_by":"ubuntu","metadata":"{}","thread_id":""}]} |
|
0 commit comments