opencode-agent
2ce34a86a2
chore(env): add TELEGRAM_CHAT_ID to .env.example
2026-07-31 17:33:56 +00:00
opencode-agent
7299846e5d
test(telegram): add unit tests for markdown, config, api
2026-07-31 17:33:54 +00:00
opencode-agent
bc77b1d86f
feat(telegram): add telegram-send plugin-tool
2026-07-31 17:33:50 +00:00
opencode-agent
3aef215663
feat(telegram): add CLI project with Bot API client
2026-07-31 17:33:47 +00:00
Sergey
43b60d6101
feat(feature-spec): add SDD-style Q&A skill for feature planning ( #172 )
...
* feat(feature-spec): add SDD-style Q&A skill for feature planning
* docs(pr-172): add handoff, ADR-072, update project-map
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 19:58:12 +03:00
Sergey
c491b5fad1
fix(issue): align headings with create-issue validation and add SDD sections ( #169 )
...
* fix(issue): align headings with create-issue validation and add SDD sections
* docs(issue): add handoff, ADR, and fix CI for SDD validation
* docs(pr-169): fix handoff sections
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 19:42:14 +03:00
Sergey
6977a9130a
fix(memory): cleanup bloat and make memory-syncer self-maintaining ( #167 )
...
* fix(memory-syncer): enforce dedup, strict distillation, 100KB compaction, frontmatter fix
* docs(handoff): add handoff and ADR-070 for memory cleanup and self-maintaining
* docs(handoff): set PR number 167
* docs(handoff): fix Pending/Watch out sections + remove stale ADR comment
* fix(memory-syncer): encoding artifact and trailing newlines
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 19:01:26 +03:00
Sergey
27db3851b6
fix(agents): resolve prompt contradictions and path mismatches ( #163 )
...
* fix(agents): allow echo and fix paths in docs-reviewer
* fix(agents): allow echo and load memory skill in memory-syncer
* fix(agents): fix skills path and load code-standards in reviewer
* fix(pipeline): remove checkout master from template E
* fix(scripts): update scaffold path in pipeline-status error
* docs(handoff): add handoff and ADR for prompt contradictions fix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 18:47:32 +03:00
Sergey
746bb7438e
fix(draw-image): use density 72 for 1024x1024 PNG output ( #161 )
...
* fix(draw-image): use density 72 for 1024x1024 PNG output
* test(draw-image): assert real PNG dimensions via IHDR decode
* chore(assets): regenerate cover.png at 1024x1024
* docs(handoff): add handoff and ADR for density fix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 23:31:02 +03:00
Sergey
d2cef94ac9
feat(create-readme): add cover image reference to template and validation ( #158 )
...
* feat(create-readme): add cover image reference to template and validation
* feat(repo-readme): extend skill with cover generation + add command
* chore(assets): add opencode brand logo and cover.png
* docs(handoff): scaffold cover-pipeline PR notes
* docs(handoff): set PR number
* docs(project-map): update after cover pipeline structural changes
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 23:15:12 +03:00
Sergey
556a5b57eb
fix(create-readme): validate EN switcher anchor symmetrically ( #155 )
...
* fix(create-readme): validate EN switcher anchor symmetrically
* docs(handoff): add handoff and ADR for switcher validation
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 19:57:46 +03:00
Sergey
7330f05055
feat(create-readme): block manual License section and align repo README tagline ( #153 )
...
* feat(create-readme): flag manual License section as ERROR
* fix(readme): wrap tagline delimiters and remove License section
* docs(repo-readme): document License check in SKILL.md
* docs(handoff): add handoff and ADR for license-block PR
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 18:06:15 +03:00
Sergey
6c80eb8458
feat(create-readme): add bilingual tagline and repo_name validation ( #151 )
...
* feat(create-readme): add bilingual tagline and repo_name validation
* docs(repo-readme): bilingual tagline + repo_name validation rules
* docs(handoff): add handoff and ADR-064 for bilingual tagline
* docs(handoff): set PR number
* docs(project-map): update after PR#151 bilingual tagline changes
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 04:50:50 +03:00
Sergey
4bb504a604
fix(create-readme): allow empty quick_start with steps-only Quick Start ( #149 )
...
* fix(create-readme): allow empty quick_start with steps-only Quick Start
* docs(handoff): add handoff + ADR for empty-quick-start
* docs(handoff): set PR number
* docs(project-map): update create-readme.ts role for PR#149
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 04:06:52 +03:00
Sergey
8308de0981
feat(create-readme): add clickable steps to Quick Start ( #146 )
...
* feat(create-readme): add clickable steps and conditional bash block
* docs(repo-readme): document clickable steps params and example
* docs(handoff): add handoff and ADR for clickable-steps
* docs(handoff): set PR number
* docs(project-map): update create-readme params after PR#146
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 03:07:09 +03:00
Sergey
0d16b028fa
fix(draw-image): optional badge/subtitle + self-healing docker entrypoint ( #144 )
...
* fix(draw-image): conditional slot bg + optional subtitle in buildSvg
* test(draw-image): optional badge/subtitle unit+integration+e2e
* feat(docker): self-healing entrypoint shim + .dockerignore
* test(draw-image): pytest assert --subtitle omitted when absent
* docs(handoff): optional badge/subtitle + docker entrypoint handoff+ADR
* docs(handoff): set PR number 144
* docs(project-map): fix PR refs 143 to 144
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 01:23:25 +03:00
Sergey
56b67d2d5c
feat(draw-image): SVG template renderer for on-brand covers ( #134 )
...
* 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>
2026-07-29 23:42:50 +03:00
Sergey
e72d435b82
fix(docker): increase opencode limits and add tini reaper + healthcheck ( #132 )
...
* 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>
2026-07-29 21:19:01 +03:00
Sergey
2a6d6eee2a
feat(create-readme): optional git clone, development block, remove telegram ( #130 )
...
* feat(create-readme): add include_clone, development_en/ru, remove telegram
* docs(readme): update SKILL.md template and params for optional clone and development
* docs(readme): add ADR-058, handoff, project map
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 20:50:52 +03:00
Sergey
c3efae6a30
fix(agents): enforce bug-discovery protocol across all subagent layers ( #128 )
...
* fix(agents): strengthen bug-discovery protocol in AGENTS.md to MANDATORY
* fix(skills): add bug-discovery triggers to run-pipeline templates A-E
* fix(agents): add bug-discovery section to subagent bodies
* fix(skill): strengthen bug-discovery description for semantic matching
* docs(handoff): scaffold handoff and ADR for bug-discovery protocol
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 18:29:41 +03:00
Sergey
1bd089936e
fix(readme): replace GB flag with US flag for English section ( #126 )
...
* fix(readme): replace GB flag with US flag for English section
* fix(create-readme): validate US English flag header in validateReadme
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 18:09:10 +03:00
Sergey
7249f1fcb5
fix(memory): keyword search out-of-box + doctor gaps + tests ( #124 )
...
* 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>
2026-07-29 17:20:59 +03:00
Sergey
d724e29f96
fix(pipeline-status): use statusCheckRollup instead of actions/runs CI filter ( #122 )
...
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 05:29:10 +03:00
Sergey
c9533050b8
refactor(agents): extract bug-discovery skill, AGENTS.md to English, EN descriptions ( #120 )
...
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 05:14:28 +03:00
Sergey
4e926a43a7
fix(readme): russian heading, simplified support, access_url, env username ( #118 )
...
* fix(readme): russian heading, simplified support, access_url, env username
* fix(ci): wrap long assert to satisfy ruff E501 in test_permissions.py
* docs(project-map): add PR#118 tags (create-readme, repo-readme, .env.example)
* fix(ci): format test_permissions.py for ruff format check
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 04:56:35 +03:00
Sergey
464fa6ec83
feat(readme): new bilingual standard v2 with features table ( #116 )
...
* 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>
2026-07-29 03:22:28 +03:00
Sergey
fc03889c6f
fix(tests): rename misleading test names after create_issue enablement ( #114 )
...
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 01:40:03 +03:00
Sergey
f1b8ff94bf
feat(agents): enable create_issue and behavioral rules ( #113 )
...
* feat(agents): enable create_issue for subagents
* docs(agents): add bug discovery protocol and linear execution rule
* docs(handoff): add handoff and ADR
* docs(handoff): set PR number
* docs(project-map): update after structural changes
* fix(agents): revert create_issue for read-only subagents
* fix(agents): re-enable create_issue and update tests
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 01:25:30 +03:00
Sergey
7ea12b982d
feat(skills): add repo-readme skill and create-readme tool ( #112 )
...
* feat(tools): add create-readme tool
* feat(skills): add repo-readme skill
* docs(handoff): add handoff and ADR
* docs(handoff): set PR number
* docs(project-map): update after structural changes
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 01:04:51 +03:00
opencode-agent
d8940de4f6
docs(agents): restore Orchestrator Model section and slim tool policy
2026-07-27 01:07:27 +00:00
opencode-agent
c1f3b4d519
fix(docker): system git config for credential helper and user identity
2026-07-27 00:34:38 +00:00
opencode-agent
caebe64883
fix(docker): set NODE_PATH for global @vscode/ripgrep resolution
2026-07-27 00:32:51 +00:00
opencode-agent
97e2df99e6
Merge branch 'main' of https://github.com/slaid098/opencode-config
2026-07-27 00:32:35 +00:00
opencode-agent
5b12e287bf
fix(docker): copy README.md for hatchling build in /opt/memory
2026-07-27 03:29:33 +03:00
opencode-agent
4251cc4cdd
fix(docker): copy README.md for hatchling build in /opt/memory
2026-07-27 00:27:15 +00:00
Sergey
9ebb6d2864
fix(docker): install ripgrep and python deps for memory tools ( #107 )
...
* 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>
2026-07-27 02:59:17 +03:00
Sergey
7d730baa4c
chore(config): remove deprecated ai provider and add memory readme section ( #106 )
...
* chore(config): remove deprecated ai provider and add memory readme section
* docs(handoff): set PR number 106
* docs(project-map): update after structural changes
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 02:23:33 +03:00
Sergey
4cf149cb02
docs(memory): reindex + update SKILL.md ( #104 )
...
* feat(memory): add OPENAI_EMBEDDING_BATCH_DELAY support
* docs(memory): update SKILL.md for progressive enhancement and auto-setup
* docs(memory): update AGENTS.md tool usage policy
* docs(memory): fix stale snake_case tool references in skills, agents, tools
* docs(handoff): add handoff + ADR for reindex-skill-update
* docs(handoff): set PR number
* refactor(memory): extract _embed_in_batches to satisfy xenon rank A
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 02:08:35 +03:00
Sergey
9d654a2201
chore(memory): remove plugin + setup-memory.sh + Rust artifacts ( #103 )
...
* 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>
2026-07-27 01:47:26 +03:00
Sergey
9d1373a51b
test(memory): E2E coverage for 4 scenarios ( #102 )
...
* 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>
2026-07-27 01:32:53 +03:00
Sergey
45bbdc50f3
feat(memory): 5 TS tools with auto-setup and fallback ( #101 )
...
* feat(memory): memory-save tool with auto-setup
* feat(memory): memory-search with keyword and semantic fallback
* feat(memory): memory-list and memory-access tools
* feat(memory): memory-doctor diagnostic tool
* docs(handoff): add handoff and ADR for ts memory tools
* docs(handoff): set PR number
* docs(handoff): finalize pr-101 frontmatter and pending
* docs(project-map): add 5 memory TS tools after PR#101
* refactor(memory): extract shared helpers to _memory-shared.ts
* refactor(memory): split oversized execute functions
* fix(memory): handle git checkout and catch blocks
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 01:12:51 +03:00
Sergey
a6491df5a6
refactor(memory): lazy-init embedder + reindex logging ( #100 )
...
* refactor(memory): lazy-init embedder env reads
* feat(memory): reindex log to .rag/reindex.log
* refactor(memory): search handles None embedder
* test(memory): cover None embedder in search and index
* docs(handoff): add handoff and ADR for lazy-init embedder
* docs(handoff): set PR number
* docs(handoff): rename to pr-100 prefix for pipeline detection
* refactor(memory): split run_search to satisfy xenon rank A
* fix(memory): cast search result fields to satisfy mypy
* style(memory): ruff format search.py
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-27 00:30:16 +03:00
Sergey
e6c378410f
docs(readme): rewrite to minimal bilingual without memory setup ( #93 )
...
* docs(readme): rewrite to minimal bilingual without memory setup
* docs(handoff): add handoff + ADR for README minimal rewrite
* docs(handoff): set PR number
* fix(docs): translate Structure descriptions to Russian in README
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 23:41:41 +03:00
Sergey
0983327605
docs(agents): merge 3 pipeline sections into 1 and fix gh pr comment scope wording ( #91 )
...
* docs(agents): merge 3 pipeline sections into 1 and fix gh pr comment scope wording
* docs(handoff): add handoff + ADR for AGENTS.md consolidation
* docs(handoff): set PR number 91
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 23:12:04 +03:00
Sergey
eb5697e28f
docs(readme): bilingual cleanup with minimalism and fix stale command ( #89 )
...
* docs(readme): rewrite with bilingual structure and minimalism
* docs(handoff): add handoff + ADR for README cleanup
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 23:05:29 +03:00
Sergey
4cb50a4824
docs(readme): add memory setup instructions with troubleshooting ( #86 )
...
* docs(readme): add memory setup instructions with troubleshooting
* docs(handoff): add handoff + ADR-038 for PR #86
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 20:25:21 +03:00
Sergey
3aa5330003
fix(memory): setup step 5 check index.json + align docs to real state ( #85 )
...
* fix(memory): check index.json not .rag dir in setup step 5
* docs(readme): align to real state after memory PRs
* chore(env): remove dead vars from env example
* docs(handoff): add handoff + ADR-037 for memory setup step5 fix
* docs(handoff): set PR number
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 20:12:15 +03:00
Sergey
25cf10baa6
feat(memory): incremental index with SHA256 + atomic + versioning + flock ( #83 )
...
* feat(memory): add SHA256 incremental index with atomic writes, versioning, flock
* feat(memory): parse Retry-After header and add batch progress logging
* test(memory): add incremental, atomic, versioning, retry, batch tests
* docs(memory): update .env.example with OpenRouter defaults
* docs(handoff): add handoff and ADR-036 for incremental index
* docs(handoff): set PR number
* docs(project-map): update index.py and embedder.py descriptions for PR#83
* fix(ci): skip index rewrite on no-op + versioning first-run
* fix(ci): ruff format index.py
---------
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 19:19:55 +03:00
Sergey
4b377f3e4d
fix(docs): commit tool staging truth + allow git restore --staged ( #80 )
...
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 18:02:27 +03:00
Sergey
d641f7a65b
fix(docs): align tool names to kebab-case in active documentation ( #78 )
...
Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 17:48:55 +03:00