* fix(draw-image): use pid-based tmp svg and cleanup in finally
* test(draw-image): decouple e2e.optional from leftover tmp svg
* test(draw-image): add cleanup unit test for tmp svg lifecycle
* docs(draw-image): add handoff and ADR for tmp svg race fix
* docs(handoff): set PR number
* docs(project-map): update after structural changes
---------
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(telegram): add CLI project with Bot API client
* feat(telegram): add telegram-send plugin-tool
* test(telegram): add unit tests for markdown, config, api
* chore(env): add TELEGRAM_CHAT_ID to .env.example
* docs(handoff): add handoff and ADR for telegram-send
* docs(handoff): set PR number 174
* docs: update project map for telegram-send tool
---------
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>
* feat(readme): new bilingual standard v2 with features table
* docs(handoff): rename handoff and ADR to PR number convention
* docs(review): fix ADR-051 section name and add PR#116 refs
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(docker): install ripgrep and python deps for memory tools
* docs(handoff): set PR number 107
* docs(project-map): update after dockerfile memory deps changes
* fix(docker): install deps in non-shadow paths /opt/memory and global npm
* docs(handoff): align with /opt/memory and global npm fix
---------
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(docker): use node:22-trixie-slim instead of non-existent noble-slim
* docs(adr): update ADR-030 for trixie-slim base image
* docs(handoff): update handoff for trixie-slim and add watch out note
* docs(handoff): set PR number
* docs(handoff): add handoff for PR#73
* fix(ci): drop dangling ADR-031 ref in pr-73 handoff
* docs(adr): add ADR-031 for PR#73 trixie-slim base image
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* fix(docker): switch base image to node:22-noble-slim
* docs(adr): add ADR-030 for base image switch
* docs(handoff): add handoff for base image switch
* docs(handoff): set PR number
* docs(handoff): replace PR-NUMBER placeholder with 71
* docs(project-map): update Dockerfile description after base image switch
---------
Co-authored-by: opencode-agent <agent@opencode.local>
* 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>
* 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>