Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 5 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,7 @@ Headless JSON contract (stable API — never break without major bump):

---

## 8. Roadmap (versions 3.0.0 – 3.9.0)
## 8. Roadmap (versions 3.0.0 – 3.23.0)

| Version | Status | Contents |
|---|---|---|
Expand All @@ -690,13 +690,13 @@ Headless JSON contract (stable API — never break without major bump):
| v3.16.0 | ✅ SHIPPED | Forge integration (#37): `sin forge` command, `sin status` detection, 16th MCP tool in `mcp_config` |
| v3.18.0 | ✅ SHIPPED | Memory compaction (`internal/compress/`, `compress_cmd.go`, issue #172): deterministic dedupe + byte-budget + sort, optional LLM summarization (`--strategy llm|hybrid`) with byte-preservation validation, snapshot+rollback for lossless Apply, `compress__plan/apply/rollback` permission defaults (ask-only on `apply`). Closes #172. |

| v3.18.0 | ACTIVE | `sin-code install` + curl|bash shim + PowerShell (issue #170): new 40th subcommand + internal/install/ package, 27-line install.sh mirror + 35-line install.ps1, SHA256-verified single-binary downloads from goreleaser assets |
| v3.18.0 | ✅ SHIPPED | `sin-code install` + curl|bash shim + PowerShell (issue #170): new 40th subcommand + internal/install/ package, 27-line install.sh mirror + 35-line install.ps1, SHA256-verified single-binary downloads from goreleaser assets |
| (next) | TBD | eval/trace infra hardening + first-party golden-dataset CI gate (issue #75 phase 2) |
| v3.19.0 | ✅ SHIPPED | `sin-code serve --compress-tools` (issue #173): ponytail-tag compressor in `internal/mcpcompress/` shrinks the 47-tool manifest on the wire. Tag set `delete|stdlib|native|yagni|shrink`, subset via `--compress-tags`, savings reported via `--print-stats`. Tool names, schemas, and behavior are unchanged (AGENTS.md §10). Closing #173. |

| v3.18.0 | ACTIVE | `sin-code debt` (issue #177) — `// sin-debt: <ceiling>, upgrade: <trigger>` marker convention (ponytail adoption), byte-stable `internal/sindept/` scanner + report, policy gate via `sin-code debt check`, 41st subcommand; alongside `sin-code install` (issue #170), `eval` / `trace` (issue #75), `evalset` / `prp` / `instinct` / `assets` / `hooks` / `rtk` / `codegraph` / `spec` v0 work |
| v3.18.0 | ✅ SHIPPED | `sin-code debt` (issue #177) — `// sin-debt: <ceiling>, upgrade: <trigger>` marker convention (ponytail adoption), byte-stable `internal/sindept/` scanner + report, policy gate via `sin-code debt check`, 41st subcommand; alongside `sin-code install` (issue #170), `eval` / `trace` (issue #75), `evalset` / `prp` / `instinct` / `assets` / `hooks` / `rtk` / `codegraph` / `spec` v0 work |
| (next) | TBD | eval/trace infra hardening + first-party golden-dataset CI gate (issue #75 phase 2) |
| v3.19.0 | ACTIVE | `autoactivate` hooklife subpackage (#176): `cmd/sin-code/internal/hooklife/autoactivate` — per-session rule injection on `SessionStart` + `UserPrompt`. `--activate <rule>` + `--no-trigger` flags on `sin-code chat`; project-local `.sin-code/autoactivate.toml`; deterministic byte-stable `RuleSet.Render()`; race-safe (mandate M7). Hooks register against any `*hooklife.Registry` via `Activator.Register(reg)`. |
| v3.19.0 | ✅ SHIPPED | `autoactivate` hooklife subpackage (#176): `cmd/sin-code/internal/hooklife/autoactivate` — per-session rule injection on `SessionStart` + `UserPrompt`. `--activate <rule>` + `--no-trigger` flags on `sin-code chat`; project-local `.sin-code/autoactivate.toml`; deterministic byte-stable `RuleSet.Render()`; race-safe (mandate M7). Hooks register against any `*hooklife.Registry` via `Activator.Register(reg)`. |
| v3.17.0 | ✅ SHIPPED | TUI runtime DB .gitignore, MCP warning deduplication, marketplace update test hardening, skills 33 → 34 |
| v3.18.0 | ✅ SHIPPED | `sin-code install` single-binary installer (issue #170), curl/bash + PowerShell shims, SHA256-verified release downloads |
| v3.19.0 | ✅ SHIPPED | `sin-code review --complexity` (issue #179): `internal/complexity/` static analyzer with ponytail 5-tag format (`delete`, `stdlib`, `native`, `yagni`, `shrink`), `// sin-debt:` marker support (issue #177), text/json/markdown output, race-clean tests |
Expand All @@ -705,6 +705,7 @@ Headless JSON contract (stable API — never break without major bump):
| v3.21.0 | ✅ SHIPPED | Test-First Verify-Loop (RFC-test-automation.md): `sin_test` + `sin_test_generate` + `sin_quality_gate` + `sin_mutation` + `sin_fuzz` + `sin_property`; `tool.post` hook payload path; `test.*` config keys; `evals/test-generation.json` golden dataset. |
| v3.22.0 | ✅ SHIPPED | SIN Fusion v1 enhancements: **Plan-Merge mode** (issue #393 — N planners → judge merges → 1 coder → verify, preserves all insights); **Oracle as default** (issue #394 — quality over cost, was: PoC first-pass-wins); **Model Performance Registry** (issue #395 — `modelperf.db`, `fusion benchmark/rank/recommend` CLI, auto-wired into `loopbuilder`). |
| v3.22.0 | ✅ SHIPPED | pre-existing fixes stacked into the same release: `llm/provider.go`+`recorder.go`+`stream.go` ThinkingTokens + 8-arg `RecordUsage`; `agentloop/compaction_helpers.go` for `compaction_types.go`; vet fix in `orchestrator/event_dispatch_test.go`. |
| v3.23.0 | ✅ SHIPPED | v3.23.0 roadmap batch 1: autonomous research report (`sin-code research`, issue #384), SWE-bench test suite (issue #363), scientific research skill (issue #387), `sin_apply_diff`/`sin_generate_diff` chat tools (issue #365), dynamic MCP server discovery (`sin-code mcp discover/add`, issue #368). Also repaired main build drift from parallel-agent WIP. Remaining open: #364, #373, #374, #388, #389. |

Each release tag ⇒ goreleaser builds linux/darwin/windows × amd64/arm64,
updates `homebrew-sin` formula, and ships to GitHub Releases.
Expand Down
53 changes: 34 additions & 19 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,44 @@
## context-compaction-modes first PR (2026-06-18)
# Changelog

**Branch**: `feat/context-compaction-modes` (companion to issue #278)
All notable changes to the SIN-Code unified binary will be documented in this file.

Adds a mode-based compaction layer (`Compact2`) on top of the legacy
`CompactionStrategy` switch. Three new modes (deterministic, llm,
hybrid) all preserve verification evidence by default (mandate M3);
lossy modes (llm, hybrid) write sidecar JSON snapshots to
`~/.local/share/sin-code/context-snapshots/` so the persisted session
record stays complete.
## [v3.23.0] - 2026-06-18

Library-only first PR — no loop wiring yet. Follow-up PR will wire
`Compact2` into `Loop.Run` and add CLI flags + config keys.
### Added — v3.23.0 Roadmap

Files touched:
- `cmd/sin-code/internal/agentloop/compaction.go`
- `cmd/sin-code/internal/agentloop/compaction_test.go`
- `cmd/sin-code/internal/agentloop/compaction_types.go` (already present)
- `cmd/sin-code/internal/agentloop/compaction_helpers.go` (already present)
- **Autonomous research report (issue #384):** `sin-code research <topic>`
enqueues an autonomous goal that searches the web, fetches sources, and
synthesizes a Markdown report. Permission split: `research__dry_run`/`list`
allow, `research__run` ask (M4).

Tests: 7 new `TestCompact2_*` + `TestIdentifyEvidence_FindsMarkers`,
all race-clean under `go test -race -count=1`.
- **SWE-bench integration tests (issue #363):** Comprehensive 670-line test
suite for the `swebench` package covering dataset loading, TestCase
conversion, scoring, and JSON serialization.

# Changelog
- **Scientific research skill (issue #387):** New bundled skill
`skill-shop-research-scientific` with search strategies for PubMed,
USPTO patents, and arXiv preprints.

All notable changes to the SIN-Code unified binary will be documented in this file.
- **Unified diff tools (issue #365):** `sin_apply_diff` and `sin_generate_diff`
chat tools. `sin_apply_diff` validates and applies a unified diff to a file;
`sin_generate_diff` generates a unified diff from old/new content. Wired
into the permission matrix as allow (same tier as `sin_edit`).

- **Dynamic MCP discovery (issue #368):** `mcpclient.DiscoverConfigs()` scans
`~/.config/mcp/servers/*.json`, Claude Desktop, opencode, codex, and
`.sin-code/mcp.json`. New CLI verbs: `sin-code mcp discover` and
`sin-code mcp add <name>`. Discovered servers are merged into `LoadConfigs()`.

### Fixed — Build Drift on main

- Removed stale `toolretrieval` import from `chat_mcp.go`.
- Fixed literal-newline syntax errors in `chat_tools.go` `toolBash` output.
- Restored `extraSpecs()` function structure in `chat_tools_extra.go`.
- Fixed `fmt.Sscanf` error handling in `browser_interaction.go`.
- Added missing `repetitionThreshold` / `repetitionWindow` fields and CLI flags
to `chat_cmd.go` to match `loopbuilder` wiring.
- Added `LoopDetector` field to `agentloop.Loop` and wired recording with the
`loop.detected` hook event.

## [v3.22.0] - 2026-06-18

Expand Down
Loading