* fix(docker): install docker-ce-cli and compose plugin in image
* fix(docker): point DOCKER_HOST to resolvable dind service alias
* test(docker): cover docker-ce-cli install and dind DOCKER_HOST fix
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(permissions): deny gh api DELETE and repo transfer
* feat(permissions): ask on force push and tag delete
* test(permissions): cover hardened bash deny/ask rules
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* test(pipeline): remove adr and project-map test files
* refactor(pipeline): remove DOCS phase from pipeline-status
* test(pipeline): update tests for 6-phase pipeline
* docs(handoff): add handoff and ADR for remove-docs-phase
* docs(handoff): set PR number
* fix(pipeline): parse PR body via json.loads in check_implement
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(create-pr): enforce Watch out and Pending headings
* test(create-pr): cover Watch out and Pending headings
* docs(handoff): add handoff and ADR for PR #207
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(create-readme): resolve file_path against context.worktree
* test(loader): support fs imports and extended TS stripping
* test(create-readme): add regression tests for local overwrite
* docs(repo-readme): note file_path resolves against worktree
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* feat(draw-image): add SVG template render engine
* feat(draw-image): add opencode plugin and tool tests
* test(draw-image): add vitest unit integration e2e suite
* chore(draw-image): wire CI dependabot docs and ADR
* docs(handoff): set PR number
* docs(handoff): fix PR number placeholder in frontmatter
* fix(ci): use tempfile and trailing newline in draw-image tests
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(docker): increase opencode memory and cpu limits
* fix(docker): add tini init for zombie reaping
* fix(docker): add healthcheck for hang auto-restart
* test(docker): assert opencode limits, init and healthcheck
* docs(handoff): add handoff and ADR for opencode limits fix
* docs(handoff): set PR number
* docs(project-map): update docker-compose and test descriptions for PR#132
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(docker): add system ripgrep via apt for keyword search fallback
* fix(ci): install ripgrep and npm deps for keyword search in CI
* fix(memory-search): warn when ripgrep not resolvable instead of silent skip
* fix(memory-doctor): check rg status, arch mismatch, and require errors
* test(memory): add keyword search and doctor unit tests
* test(memory): unskip e2e keyword tests without RUN_LIVE
* docs(handoff): add handoff and ADR for keyword search fix
* test(memory): remove unused var in keyword search test
* docs(handoff): set PR number to 124
* docs(project-map): update after structural changes (PR#124)
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* chore(memory): remove plugin block from opencode.json
* chore(memory): remove setup-memory.sh and memory-setup.ts
* chore(memory): remove opencode-memory from Dockerfile
* docs(memory): update AGENTS.md and SKILL.md for new tools
* test(memory): drop tests for removed setup-memory.sh and memory-setup.ts
* docs(handoff): add handoff and ADR-045 for plugin/rust removal
* docs(handoff): set PR number
* docs(project-map): update after plugin/rust removal
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* test(memory): E2E coverage for 4 scenarios
* docs(handoff): set PR number
* style(memory): ruff format e2e test
* docs(project-map): add test_memory_tools_e2e.py after PR#102
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* refactor(memory): rename package second-brain to memory
* refactor(memory): use OpenAI env naming and fix trailing slash
* feat(memory): add chunking with env-configurable size and overlap
* feat(memory): dedup search results by source in top-K
* test(memory): add chunking, batching, dedup, live tests
* docs(memory): update README and project map after rename
* docs(handoff): add handoff and ADR-032 for memory refactor
* docs(handoff): set PR number
* fix(ci): reduce index.py complexity to rank A
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(tools): drop hardcoded --repo in post-review/post-docs-review
* fix(skills): sync run-pipeline templates to use review tools
* fix(agents): add tool failure handling to reviewer/docs-reviewer
* docs(adr): supersede ADR-019 with hardcoded repo removal note
* docs(handoff): scaffold handoff and ADR for PR
* docs(handoff): set PR number
* fix(ci): reformat post-review/post-docs-review test asserts for ruff format
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(pipeline-status): handle git insteadOf userinfo in parse_remote_url
* test(pipeline-status): add tests for URL with userinfo
* docs(handoff): set PR number 55 in handoff + ADR-023
---------
Co-authored-by: opencode-agent <agent@slaid098.dev>
* fix(docker): expose port 4096 on 0.0.0.0 for NPM proxy
* test(docker): add docker-compose port exposure test
* docs(handoff): set PR number for docker port expose
---------
Co-authored-by: opencode-agent <agent@slaid098.dev>
* feat(tools): add post-review and post-docs-review tools
* refactor(agents): use post-review/post-docs-review tools in reviewer and docs-reviewer
* feat(permissions): add post_review and post_docs_review to agent.tools map
* test(tools): add tests for post-review and post-docs-review tools
* docs(handoff): add handoff ADR and project-map for review posting tools
* docs(handoff): set PR number
* docs: fix PR#45→PR#46 refs in project map
---------
Co-authored-by: opencode-agent <agent@slaid098.dev>
* fix(config): rename CONTEX7_API_KEY to CONTEXT7_API_KEY
* fix(permissions): update stale config/scripts paths to .opencode/scripts
* test(config): add tests for typo fix and updated paths
* docs(handoff): add handoff and ADR-018 for hotfix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@slaid098.dev>
* refactor(pipeline): add subagent_type and template to NEXT actions
NEXT_ACTIONS now explicitly specifies subagent_type + template per phase (except MERGE which calls merge_pr tool). ISSUE/IMPLEMENT -> general/A, DOCS -> docs-reviewer/B, REVIEW -> reviewer/C, MEMORY -> memory-syncer/E. Existing tests updated to new format, 25 new tests added.
* refactor(docs): slim AGENTS.md and run-pipeline skill
AGENTS.md 71 -> 31 lines: remove Commits/Pull Requests sections (formats in tools), shorten Development Workflow/Pipeline to 1-2 lines. run-pipeline SKILL.md 164 -> 155 lines: remove Phase 0 Bootstrap (duplicated phases, now in pipeline-status NEXT_ACTIONS). Keep protocol, templates, restrictions.
* chore(skills): remove commit skill (format in tool validator)
commit/SKILL.md deleted (format validated by commit.ts tool, PR#38). References updated: configure-opencode SKILL.md (2 places), add-skill SKILL.md (1 place + tree structure). project-map README: remove commit/SKILL.md from tree, add configure-opencode.
* docs(handoff): add ADR-017 and handoff for orchestration switch
PR number in handoff frontmatter is <PR-NUMBER> placeholder, will be set after gh pr create.
* docs(handoff): set PR number
Set PR number 42 in handoff frontmatter, rename handoff/ADR files from pr-41 to pr-42 (pipeline-status matches pr-{pr_number}-*.md in diff).
* docs: update project map + handoff + ADR
---------
Co-authored-by: opencode-agent <agent@slaid098.dev>