Skip to content

Commit ec7cb37

Browse files
initial extraction from oc-manager monorepo
1 parent 207e91b commit ec7cb37

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+21357
-0
lines changed

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches: [main]
6+
push:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
name: Test
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- uses: oven-sh/setup-bun@v2
17+
18+
- uses: pnpm/action-setup@v4
19+
with:
20+
version: 10.28.1
21+
22+
- uses: actions/setup-node@v4
23+
with:
24+
node-version: "22"
25+
cache: "pnpm"
26+
27+
- name: Install dependencies
28+
run: pnpm install --frozen-lockfile
29+
30+
- name: Build
31+
run: pnpm build
32+
33+
- name: Run tests
34+
run: pnpm test
35+
36+
- name: Type check
37+
run: pnpm typecheck

.github/workflows/publish.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Publish
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
publish:
12+
name: Publish to npm
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: oven-sh/setup-bun@v2
18+
19+
- uses: pnpm/action-setup@v4
20+
with:
21+
version: 10.28.1
22+
23+
- uses: actions/setup-node@v4
24+
with:
25+
node-version: "22"
26+
cache: "pnpm"
27+
registry-url: "https://registry.npmjs.org"
28+
29+
- name: Install dependencies
30+
run: pnpm install --frozen-lockfile
31+
32+
- name: Build
33+
run: pnpm build
34+
35+
- name: Run tests
36+
run: pnpm test
37+
38+
- name: Publish
39+
run: npm publish --access public
40+
env:
41+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
dist/
2+
node_modules/
3+
*.tsbuildinfo

.npmignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
src/
2+
test/
3+
tsconfig.json
4+
tsconfig.build.json
5+
*.tsbuildinfo
6+
node_modules/
7+
.gitignore

CHANGELOG.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
6+
## [0.0.27]
7+
8+
### Changed
9+
10+
- Renamed "Ralph" to "Loop" across the entire codebase — types (`RalphState``LoopState`, `RalphConfig``LoopConfig`), services, hooks, filenames, KV keys (`ralph:``loop:`), CLI commands, and tests
11+
- Automatic KV key migration from `ralph:` to `loop:` prefixes on plugin startup
12+
- Config backward compatibility: accepts both `loop` and `ralph` keys (prefers `loop`)
13+
14+
### Added
15+
16+
- `stallTimeoutMs` option in default `config.jsonc`
17+
- Automatic session switch when Loop completes — navigates back to parent session without manual intervention
18+
- Memory curation delegation — architect agent can identify problematic memories and delegate fixes to @Librarian subagent during planning
19+
20+
## [0.0.26] - 2026-03-27
21+
22+
### Fixed
23+
24+
- Basic Auth handling in v2 client and CLI `status` command
25+
- `normalizeConfig` bug when processing plugin configuration
26+
27+
## [0.0.25] - 2026-03-25
28+
29+
### Changed
30+
31+
- Refactored Loop session tracking to use KV-backed worktree-keyed session mapping instead of sessionId lookups
32+
- Configurable KV TTL with 7-day default (was 24 hours)
33+
34+
### Added
35+
36+
- `--limit` flag to CLI `status` command
37+
38+
### Fixed
39+
40+
- Loop state type safety and null handling in status commands
41+
42+
## [0.0.23] - 2026-03-24
43+
44+
### Added
45+
46+
- CLI partial-match utility for fuzzy loop name lookup
47+
- Formatting helpers for consistent CLI output (`formatSessionOutput`, `formatAuditResult`)
48+
- Loop session rotation with watchdog-based stall detection and configurable `stallTimeoutMs`
49+
- Loop status dialog and session management improvements
50+
51+
### Changed
52+
53+
- Enhanced CLI `status`, `cancel`, and `list` commands with better UX
54+
55+
## [0.0.22] - 2026-03-22
56+
57+
### Changed
58+
59+
- Removed parent session notification and child session tracking from Loop (sending `promptAsync` to parent sessions on completion could resume previously inactive sessions)
60+
- Simplified Loop event handling by removing child session maps and parent activity recording
61+
62+
## [0.0.20] - 2026-03-20
63+
64+
### Added
65+
66+
- Loop system (`memory-loop`) — iterative development loops with git worktree isolation, automatic session rotation, and optional code auditing between iterations
67+
- `memory-loop-cancel` and `memory-loop-status` tools for managing active loops
68+
- Plan approval interception via `question` tool results — architect agent plans can be approved and dispatched without manual copy-paste
69+
- `memory-plan-execute` `inPlace` parameter for executing plans in the current session directory
70+
- Promise tag stripping utility for cleaning LLM output
71+
- Model fallback utility (`retryWithModelFallback`) for API resilience
72+
- CLI `cancel` and `status` commands for loop management
73+
- Loop service with KV-backed state persistence, stall detection watchdog, and automatic worktree cleanup
74+
- Comprehensive test suites: plan approval, loop lifecycle, tool blocking, promise tag stripping
75+
76+
### Changed
77+
78+
- Migrated plugin config from JSON to JSONC format (`config.json``config.jsonc`)
79+
- Upgraded `@opencode-ai/sdk` dependency and introduced v2 client for session/worktree APIs
80+
- Agent prompts updated with shared prompt utilities
81+
82+
## [0.0.18] - 2026-03-08
83+
84+
### Added
85+
86+
- `memory-health` upgrade action with npm version check and 1-hour cache
87+
- CLI `upgrade` command for self-updating the plugin
88+
- `memory-kv-delete` tool for removing KV entries
89+
90+
### Changed
91+
92+
- Renamed agent files to lowercase conventions (`code-review.ts``auditor.ts`, `memory.ts``librarian.ts`)
93+
- Simplified KV service lifecycle management
94+
- Added memory curation guideline to architect agent prompt
95+
96+
## [0.0.16] - 2026-03-07
97+
98+
### Added
99+
100+
- Project KV store for ephemeral project state with TTL management
101+
- `memory-kv-set`, `memory-kv-get`, `memory-kv-list` tools for managing project state
102+
- Automatic cleanup of expired KV entries (30-minute interval)
103+
- Default 24-hour TTL for KV entries
104+
105+
### Fixed
106+
107+
- KV `list()` method now handles malformed JSON data gracefully instead of throwing, consistent with `get()` behavior
108+
109+
## [0.0.12] - 2026-03-05
110+
111+
### Added
112+
113+
- `experimental.chat.messages.transform` hook: automatically injects project conventions and decisions into system prompts for every LLM call, with configurable token budget and caching
114+
- Skill tool awareness in code and architect agent prompts
115+
- `plan_enter` permission on code agent for switching to architect mode
116+
- `memory-edit` documentation in Librarian agent's tool list
117+
- Agent name logging in all tool handlers via new ToolContext.agent field
118+
119+
### Changed
120+
121+
- Upgraded `@opencode-ai/plugin` from ^1.2.9 to ^1.2.16
122+
- Renamed deprecated `maxSteps` to `steps` in AgentDefinition and AgentConfig types
123+
124+
### Fixed
125+
126+
- Librarian agent tool documentation now lists all 7 available tools (was missing memory-edit)
127+
128+
## [0.0.9] - 2026-02-27
129+
130+
### Added
131+
132+
- `experimental.chat.messages.transform` hook that injects read-only enforcement reminder into architect agent sessions, preventing file edits and non-readonly tool usage at the message level
133+
- auditor agent (`ocm-auditor`) — read-only subagent for convention-aware code reviews with memory integration, invoked via Task tool
134+
- `/review` command that triggers the auditor agent to review current changes
135+
136+
### Changed
137+
138+
- Restricted `memory-planning-update` and `memory-planning-search` tools to librarian subagent only — code and architect agents now delegate planning operations via @librarian Task tool
139+
- Overhauled code and architect agent system prompts with tone/style guidelines, tool usage policies, task management instructions, and planning state delegation patterns
140+
- `memory-plan-execute` now accepts optional `objective`, `phases`, and `findings` parameters and saves planning state inline before dispatching the plan, eliminating the need for a separate `memory-planning-update` call
141+
- Planning instruction appended to dispatched plans now directs code agent to delegate planning updates to @librarian subagent
142+
- Updated librarian agent description to include planning state and session progress management
143+
- Updated auditor agent description to accurately reflect its capabilities
144+
145+
## [0.0.6] - 2026-02-24
146+
147+
### Added
148+
149+
- Core memory tools: `memory-read`, `memory-write`, `memory-edit`, `memory-delete`, `memory-health`
150+
- Planning state tools: `memory-planning-update` and `memory-planning-get` for tracking session objectives, phases, findings, and errors
151+
- `memory-plan-execute` tool for creating new Code sessions with approved implementation plans
152+
- Three embedding providers: local (`all-MiniLM-L6-v2`), OpenAI (`text-embedding-3-small/large`, `ada-002`), and Voyage (`voyage-code-3`, `voyage-2`)
153+
- Bundled code agent (`ocm-code`) with memory-aware coding workflows
154+
- Bundled architect agent (`ocm-architect`) for read-only planning with automatic plan handoff
155+
- Bundled librarian agent (`ocm-librarian`) for expert knowledge curation and post-compaction extraction
156+
- Compaction context injection with custom prompt, planning state, conventions, and decisions
157+
- Configurable compaction settings: custom prompt, inline planning, token budget, snapshot storage
158+
- CLI export/import for backing up and migrating memories as JSON or Markdown
159+
- Embedding cache with SHA-256 keying and 24-hour TTL
160+
- Embedding sync service with batch processing and retry logic
161+
- Session state KV store with TTL management (7-day planning, 24-hour snapshots)
162+
- Automatic deduplication via exact match and semantic similarity detection
163+
- Dimension mismatch detection on startup with guided recovery via reindex
164+
- Build-time version injection displayed in `memory-health` output
165+
- Automatic model download via `postinstall` script
166+
- Auto-copy of bundled config on first run
167+
- SQLite storage with `sqlite-vec` for vector similarity search

0 commit comments

Comments
 (0)