Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
58dbc74
refactor(test-fixtures): remove dead code and internalize unexported …
frap129 Mar 5, 2026
cecae9b
fix(desloppify): restore wontfix resolutions and clean runtime artifacts
frap129 Mar 5, 2026
0fcc280
fix: apply follow-up review fixes for removed helper, typo, and test …
frap129 Mar 5, 2026
82ed5c9
docs: Update readme
frap129 Mar 25, 2026
d586e32
chore: bump verson
frap129 Mar 25, 2026
8d4d6b6
build: Add project rules
frap129 Mar 25, 2026
9c435d5
docs(readme): link to .opencode/rules/ as real-world examples
frap129 Mar 25, 2026
d434d4e
refactor(skills): polish crafting-rules per writing-skills best pract…
frap129 Mar 25, 2026
52166f3
feat!: change default export to { id, server } object shape
frap129 Mar 31, 2026
bc78244
build: restructure for tui/ support — rootDir, jsx, peer deps, satisf…
frap129 Mar 31, 2026
8e2ff24
build(tui): add vendored type shim for @opencode-ai/plugin/tui
frap129 Mar 31, 2026
9e4b565
feat(tui): add data layer for sidebar rule loading
frap129 Mar 31, 2026
6c74b2a
feat(tui): add sidebar component, entry point, and finalize package e…
frap129 Mar 31, 2026
d0705b5
docs: update README with tui/ project structure and sidebar feature
frap129 Mar 31, 2026
0363a81
fix(tui): use content prop on text elements to avoid opentui #438
frap129 Mar 31, 2026
61c6bae
fix(tui): add state.path to vendored TuiState types
frap129 Mar 31, 2026
24f6b62
fix(tui): use api.state.path.directory for project dir resolution
frap129 Mar 31, 2026
fe3f5f1
feat(tui): restyle sidebar as bordered card with project/global sections
frap129 Mar 31, 2026
628b667
feat(tui): set sidebar order to 90 to position below LSP
frap129 Mar 31, 2026
d277168
fix(tui): Show between LSP and Modified files
frap129 Mar 31, 2026
66fd9f1
refactor(tui): flatten sidebar to match native opencode section style
frap129 Mar 31, 2026
8d8ba82
feat: add active rules state persistence module
frap129 Mar 31, 2026
34c46ce
fix: add sessionId validation and strict type guards
frap129 Mar 31, 2026
bb86c86
feat: add FilterResult return type with matchedPaths tracking
frap129 Mar 31, 2026
b708d47
test: add integration tests for writeActiveRulesState runtime side ef…
frap129 Mar 31, 2026
22d95d4
fix(test): verify no state files created when sessionID is missing
frap129 Mar 31, 2026
ae08da3
feat(tui): add active state tracking to sidebar rules
frap129 Mar 31, 2026
6338a32
feat(tui): add event-driven refresh and active state UI
frap129 Mar 31, 2026
01e59a3
fix(tui): filter events by sessionId before debouncing
frap129 Mar 31, 2026
05d8cdb
fix(tui): prevent stale async results and improve refresh robustness
frap129 Mar 31, 2026
62eafb0
fix(tui): skip refresh during initial load and use proper green color
frap129 Mar 31, 2026
13645eb
fix(tui): use theme.success for active bullet color instead of hardco…
frap129 Mar 31, 2026
9342ba7
fix(tui): use correct event shape for sessionID filtering
frap129 Mar 31, 2026
3bc1319
feat(tui): sort active rules to top of sidebar categories
frap129 Mar 31, 2026
8b4dd06
docs(readme): update TUI sidebar docs with active state, event refres…
frap129 Mar 31, 2026
acfa901
docs(README): Reorganize
frap129 Mar 31, 2026
cca1dc4
docs(readme): add tui.json configuration to installation section
frap129 Mar 31, 2026
7d5d520
test(discovery): add failing tests for OPENCODE_CONFIG_DIR as global dir
frap129 Mar 31, 2026
4805ce0
feat(discovery): add OPENCODE_CONFIG_DIR support in getGlobalRulesDir
frap129 Mar 31, 2026
e03d450
docs: document OPENCODE_CONFIG_DIR environment variable
frap129 Mar 31, 2026
3b3a828
fix(tests): isolate OPENCODE_CONFIG_DIR across all test suites
frap129 Mar 31, 2026
7828e67
fix(deps): pin solid-js to 1.9.11 to resolve peer dependency conflict
frap129 Mar 31, 2026
f99152f
docs(readme): add plugin CLI as recommended install option
frap129 Mar 31, 2026
fdf3b59
Merge pull request #5 from frap129/feat/tui
frap129 Mar 31, 2026
7f4c23b
Merge pull request #6 from frap129/fix/env-config-dir
frap129 Mar 31, 2026
9c9b71e
chore: bump to 0.6.0
frap129 Mar 31, 2026
2820978
fix(deps): move opentui packages from peer to direct dependencies
frap129 Apr 2, 2026
e296bff
chore: bump to 0.6.1
frap129 Apr 2, 2026
da80149
fix: use dynamic import for yaml CJS interop
frap129 Apr 2, 2026
9abdf69
chore: bump to 0.6.2
frap129 Apr 2, 2026
eaf7dc4
fix(tui): point tui export to compiled dist output
frap129 Apr 7, 2026
c2dd1bc
build(ci): add CI and release GitHub Actions workflows
frap129 Apr 8, 2026
e0052ce
build(ci): harden workflows with SHA pinning, least-privilege permiss…
frap129 Apr 8, 2026
40445d9
chore: bump to 0.6.3
frap129 Apr 9, 2026
193d2a5
fix: prevent infinite loop by tracking rule injection state
ferch5003 Apr 8, 2026
1157532
fix(tui): load sidebar from source entry
ZanzyTHEbar Apr 13, 2026
3cf9cc5
docs: Update notes formatting in README.md
ZanzyTHEbar Apr 15, 2026
744162c
chore: bump to 0.6.4
frap129 Apr 25, 2026
e44ce26
feat: add inject mode, repeat_every interval, and content-based dedup
aorizondo May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: 1.3.11

- run: bun install --frozen-lockfile

- name: Lint
run: bun run lint

- name: Typecheck
run: bunx tsc --noEmit

- name: Test
run: bun run test:run
44 changes: 44 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Release

on:
push:
tags: ['v*']

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: 1.3.11

- run: bun install --frozen-lockfile

- name: Lint
run: bun run lint

- name: Typecheck
run: bunx tsc --noEmit

- name: Test
run: bun run test:run

- name: Build
run: bun run build

- name: Verify package contents
run: bun pm pack --dry-run

- name: Publish to npm
run: bun publish --access public
env:
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Create GitHub Release
uses: softprops/action-gh-release@26e8ad27a09a225049a7075d7ec1caa2df6ff332 # v2
with:
generate_release_notes: true
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,10 @@ temp/

# Agent planning
.opencode/plans

# Desloppify runtime artifacts
.desloppify/external_review_sessions/
.desloppify/review_packets/
.desloppify/subagents/
.desloppify/*.bak
.desloppify/review_packet_blind.json
14 changes: 14 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Exclusions handled by package.json "files" negation patterns
# This file is kept for documentation purposes

# Test files - excluded via !src/**/*.test.ts, !tui/**/*.test.ts patterns
# *.test.ts
# *.test.tsx
# *.spec.ts
# *.spec.tsx

# Test fixtures - excluded via !src/test-fixtures.ts
# src/test-fixtures.ts

# Compile-time type checks - excluded via !src/api-surface.typecheck.ts
# src/api-surface.typecheck.ts
13 changes: 13 additions & 0 deletions .opencode/rules/10-runtime-consistency.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
globs:
- 'src/runtime.ts'
- 'src/utils.ts'
- 'src/message-context.ts'
- 'src/mcp-tools.ts'
---

# Runtime Consistency

- Use shared message-context helpers for prompt and part extraction. Do not duplicate extraction loops in runtime hooks.
- Keep CI/env boolean detection on one parser path (`parseEnvBoolean` / `isTruthyEnvValue`) across all provider checks.
- Keep warning channels consistent: user-actionable rule-file problems may use `console.warn`; internal operational failures should go through debug logging.
17 changes: 17 additions & 0 deletions .opencode/rules/11-readme-and-doc-sync.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
globs:
- 'README.md'
- 'docs/**/*.md'
keywords:
- 'readme'
- 'architecture'
- 'project structure'
- 'documentation'
match: any
---

# README and Documentation Sync

- When adding, removing, or renaming production modules, update the README Project Structure section in the same change.
- Keep architecture docs aligned with current hook/runtime behavior and supported rule filters.
- Remove stale references to deprecated behavior as part of the same PR that changes behavior.
12 changes: 12 additions & 0 deletions .opencode/rules/12-hotspot-guardrails.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
globs:
- 'src/utils.ts'
- 'src/runtime.ts'
- 'src/index.test.ts'
---

# Hotspot Guardrails

- In `src/utils.ts`, do not add new unrelated responsibilities. Prefer splitting by domain (discovery, metadata, matching, message paths).
- In `src/runtime.ts`, extract shared helpers before adding additional inline transformation logic.
- In `src/index.test.ts`, prefer creating or expanding module-focused test files instead of growing the monolithic suite.
Loading