Commit graph

112 commits

Author SHA1 Message Date
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
Sergey
7c1fa4985e
feat(memory): wire CLI into plugin via setup-memory.sh wrapper (#77)
* feat(memory): wire setup-memory.sh to Python CLI + JS wrapper

* test(memory): add wrapper generation, idempotency, backup tests

* docs(memory): update project map for setup-memory wrapper integration

* docs(handoff): add handoff and ADR-033 for plugin wiring

* docs(handoff): set PR number

* docs(handoff): fix Pending em-dash typo in PR#77 handoff

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 17:06:45 +03:00
Sergey
80a4be1d21
refactor(memory): rename to memory, OpenAI env, chunking, batching, dedup (#75)
* 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>
2026-07-26 16:13:05 +03:00
Sergey
92d21a142c
fix(docker): use node:22-trixie-slim instead of non-existent node:22-noble-slim (#73)
* 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>
2026-07-26 04:43:03 +03:00
Sergey
ac56596aed
fix(docker): switch base image to node:22-noble-slim for rag-cli GLIBC compat (#71)
* 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>
2026-07-26 04:20:53 +03:00
Sergey
063044450f
feat(agents): increase step limit to 150 (#69)
* feat(agents): increase step limit to 150

* test(agents): update step limit assertions to 150

* docs(adr): add ADR-029 agent step limit 100 to 150

* docs(project-map): update tree with PR#68 changes

* docs(handoff): add PR 69 handoff for agent steps 150

* docs(project-map): fix PR tags to PR#69 (actual PR number)

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 01:19:17 +03:00
Sergey
f06d36140b
feat(pipeline): add check_project_map to DOCS phase (#67)
* feat(pipeline): add check_project_map to DOCS phase

* test(pipeline): add check_project_map unit tests + update check_docs tests

* docs(adr): add ADR-028 project map contract

* docs(project-map): mention check_project_map guard in Update Protocol

* docs(handoff): add PR handoff for check_project_map

* docs(handoff): set PR number 67

* docs(review): fix PR#66 to PR#67 typo in project map and handoff

* fix(ci): ruff lint errors in pipeline-status and project map test

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-26 00:07:13 +03:00
Sergey
15fc7d014d
refactor(tools): add repo parameter + shared module + tunnel tests (#65)
* refactor(tools): extract shared module for gh spawnSync logic

* feat(tools): add repo parameter to 5 GitHub tools

* test(tools): add tunnel tool tests

* test(tools): add repo parameter test cases for 5 tools

* docs(handoff): scaffold handoff and ADR for PR

* docs(handoff): set PR number

* docs(project-map): update after PR#65 structural changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-25 19:19:19 +03:00
Sergey
a2666183f8
fix(agents+skills): enforce tool-usage policy across prompts and skills (#63)
* fix(agents): add tool usage policy to AGENTS.md

* fix(skills): replace raw bash with tools in 6 skills

* feat(skills): restore tunnel skill

* docs(handoff): scaffold handoff and ADR for PR

* docs(handoff): set PR number

* docs(project-map): add tunnel skill + tool usage policy note (PR#63)

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-25 18:46:16 +03:00
Sergey
f96acaaa75
fix(tools): drop hardcoded --repo in post-review/post-docs-review (#61)
* 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>
2026-07-25 03:55:50 +03:00
Sergey
89a4d947fd
fix(docker): install opencode-memory plugin in Dockerfile (#57)
* fix(docker): install @mathew-cf/opencode-memory plugin in Dockerfile

* test(docker): add Dockerfile npm install test

* docs(handoff): set PR number 57 in handoff + ADR-024

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 22:07:18 +03:00
Sergey
e413a6c132
fix(pipeline-status): parse_remote_url breaks with git insteadOf userinfo (#55)
* 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>
2026-07-24 21:47:39 +03:00
Sergey
02f0863a24
fix(memory): persist git insteadOf helper for GITHUB_TOKEN in setup-memory.sh (#53)
* fix(memory): add git insteadOf helper for GITHUB_TOKEN in setup-memory.sh

* test(memory): add tests for git insteadOf helper

* docs(handoff): add handoff + ADR-022 for git insteadOf helper

* docs(handoff): set PR number 53 in handoff + ADR-022

* style: ruff format test_setup_memory.py

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 21:28:06 +03:00
Sergey
655a98d077
fix(docker): expose port 4096 on 0.0.0.0 for NPM proxy (#51)
* 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>
2026-07-24 20:27:37 +03:00
Sergey
2473360530
fix(agents): remove invalid doom_loop frontmatter field + simplify reviewer setup (#49)
* fix(agents): remove invalid top-level doom_loop field from frontmatter

* fix(reviewer): simplify setup step 5 and add investigation budget

* test(agents): add frontmatter validation tests

* docs(handoff): add handoff and ADR-020 for doom_loop frontmatter fix

* docs(handoff): set PR number

* docs: update project map

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 19:24:36 +03:00
Sergey
1acac5229f
feat(tools): deterministic review posting tools (post-review, post-docs-review) (#46)
* 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>
2026-07-24 18:26:48 +03:00
Sergey
f06c9f2422
fix(config): rename CONTEX7 typo + update stale config/scripts paths (#44)
* 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>
2026-07-24 17:50:33 +03:00
Sergey
67174b4879
refactor(pipeline): make pipeline-status sole orchestrator + slim docs (#42)
* 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>
2026-07-24 15:40:20 +03:00
Sergey
f9a9e0f854
feat(permissions): deny direct git/gh calls + role-based tool access (#40)
* feat(permissions): deny direct git/gh calls and add role-based tool access

* feat(permissions): update docs-reviewer to use commit tool

* test(permissions): add tests for deny rules and tool access

* docs(handoff): add handoff and ADR for permissions lock

* docs: update project map + handoff + ADR

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 04:34:20 +03:00
Sergey
1db2c800d4
feat(tools): add commit, create-pr, create-issue tools (#38)
* feat(tools): add commit tool with validation

* feat(tools): add create-pr tool with validation

* feat(tools): add create-issue tool with validation

* test(tools): add tests for validation tools

* docs(handoff): add handoff and ADR for validation tools

* docs(handoff): set PR number

* docs: update project map + fix ADR-015 typo

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 04:17:44 +03:00
Sergey
2b9ee23b49
feat(memory): add memory-setup tool with deterministic init (#36)
* feat(memory): add memory-setup tool and rewrite script

* fix(memory): correct OPENCODE_MEMORY_DIR in docker-compose

* test(memory): add setup-memory tests with mock remote

* docs(memory): add ADR and handoff

* docs(handoff): set PR number

* fix(docs): correct handoff and ADR filenames to PR number

* docs: update project map + handoff + ADR

* fix(memory): address code review comments

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 03:26:16 +03:00
Sergey
efc0827226
feat(tunnel): add cloudflare tunnel toggle tool (#34)
* feat(tunnel): add toggle tool and bash script

* feat(tunnel): add cloudflared to Dockerfile

* docs(tunnel): add ADR and handoff

* docs(handoff): set PR number

* docs: update project map + handoff + ADR

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 02:11:29 +03:00
Sergey
954b5b71af
docs: initial project map + handoff/decisions skeleton + README rewrite (#32)
* docs: add skeleton .gitkeep files

* docs: rewrite README for public release

* docs(handoff): add pr-9 handoff + ADR-012

* docs(handoff): set PR number in filenames

* docs: fix stale PR refs in handoff

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
2026-07-24 01:12:51 +03:00