Merged
Conversation
aryasaatvik
added a commit
to aryasaatvik/opencode
that referenced
this pull request
Jun 27, 2025
## Summary This PR implements dual model support (main + turbo) for cost-optimized operations and adds model sorting functionality. ### Key Changes #### Dual Model Support - Added `turbo_model` and `turbo_cost_threshold` config options - New dual-pane model selector (Tab to switch panes) - Visual indicators: ⚡ (turbo), 🧠 (reasoning), 🔧 (tools) - Smart turbo model selection with fallback logic - Fixed Anthropic auth showing incorrect turbo status #### Model Sorting - Added `release_date` and `last_updated` fields to model schema - Press 'S' to cycle through sort modes: Name, Last Updated, Release Date - Stable multi-level sorting with consistent ordering - Helps discover newest models and track updates ### Impact Enables cost optimization for PRs anomalyco#269 (status verbs) and anomalyco#275 (window titles) to use configured turbo models instead of hardcoded ones. ### Demo https://github.com/user-attachments/assets/d076e840-d790-4e23-8cf7-a179282d1f0b
rekram1-node
pushed a commit
to drevantonder/opencode
that referenced
this pull request
Aug 31, 2025
Closed
This was referenced Nov 3, 2025
charles-cooper
pushed a commit
to charles-cooper/opencode
that referenced
this pull request
Dec 14, 2025
…ompaction feat: intelligent compaction with model-initiated trigger, handoff prompts, and persistent memory
adolago
referenced
this pull request
in adolago/zee
Jan 11, 2026
- Add VoyageEmbeddingProvider for Voyage AI embeddings - Add MemoryStore with high-level store/search/list API - Configure Nebius cloud API for Qwen3-Embedding-8B (#1 on MTEB) - Fix LocalEmbeddingProvider to support both /v1/embeddings and /embeddings - Fix QdrantVectorStorage to set collection on existing collections Model: Qwen3-Embedding-8B (70.58 MTEB score, 99% zero-shot, 4096 dims) Provider: Nebius API (https://api.tokenfactory.nebius.com/v1) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6 tasks
sjawhar
referenced
this pull request
in sjawhar/opencode
Mar 8, 2026
- Finding #1: re-sync active sessions after disposal by saving fullSyncedSessions before clear and calling result.session.sync() after successful bootstrap - Finding anomalyco#2: cap retries at 5 with exponential backoff (2s/4s/8s/16s/30s) and generation counter to cancel stale retries when newer disposal arrives - Finding anomalyco#3: move Instance.provide() inside while loop so each event stream reconnect iteration gets fresh context - Finding anomalyco#4: remove unconditional startEventStream(process.cwd()); add events RPC method; thread calls it only when not in external transport mode - Finding anomalyco#5: replace manual new Promise+setTimeout with sleep() from node:timers/promises - Finding anomalyco#6: reload() aborts current event stream and conditionally restarts it
sjawhar
referenced
this pull request
in sjawhar/opencode
Mar 8, 2026
- Finding #1: re-sync active sessions after disposal by saving fullSyncedSessions before clear and calling result.session.sync() after successful bootstrap - Finding anomalyco#2: cap retries at 5 with exponential backoff (2s/4s/8s/16s/30s) and generation counter to cancel stale retries when newer disposal arrives - Finding anomalyco#3: move Instance.provide() inside while loop so each event stream reconnect iteration gets fresh context - Finding anomalyco#4: remove unconditional startEventStream(process.cwd()); add events RPC method; thread calls it only when not in external transport mode - Finding anomalyco#5: replace manual new Promise+setTimeout with sleep() from node:timers/promises - Finding anomalyco#6: reload() aborts current event stream and conditionally restarts it
sjawhar
referenced
this pull request
in sjawhar/opencode
Mar 8, 2026
- Finding #1: re-sync active sessions after disposal by saving fullSyncedSessions before clear and calling result.session.sync() after successful bootstrap - Finding anomalyco#2: cap retries at 5 with exponential backoff (2s/4s/8s/16s/30s) and generation counter to cancel stale retries when newer disposal arrives - Finding anomalyco#3: move Instance.provide() inside while loop so each event stream reconnect iteration gets fresh context - Finding anomalyco#4: remove unconditional startEventStream(process.cwd()); add events RPC method; thread calls it only when not in external transport mode - Finding anomalyco#5: replace manual new Promise+setTimeout with sleep() from node:timers/promises - Finding anomalyco#6: reload() aborts current event stream and conditionally restarts it
6 tasks
Open
Donwulff
added a commit
to Donwulff/opencode
that referenced
this pull request
Mar 17, 2026
…mmand-guard Fill documentation gaps identified by security review: - security.mdx: add Subprocess Isolation section (OPENCODE_SPAWN_SANDBOX, bwrap/unshare mechanism, what is and isn't sandboxed, how to enable); add Managed / Enterprise Config section (config precedence ladder, /etc/opencode/ as immutable security boundary, container usage, --dangerously-open bypass); add Read-Only Commands section (/review fully read-only, /learn AGENTS.md-only, blocklist details and limitations); add Instruction and Skill URLs note under Tool Execution - FORK-CHANGES.md: expand Feature anomalyco#1 to cover subprocess sandbox and command-guard; add util/fetch.ts, bash.ts, process.ts, flag.ts to key files table - SECURITY-ANALYSIS.md: add command-guard to Current Mitigations table - tool/AGENTS.md: add Command Guard section documenting assertReadOnlyShell, assertLearnPath, assertLearnTask, and the blocklist limitation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Added --help support to guards command |
|
Successfully archived agent-ops-enhancement effort to .agents/planning/archive/agent-ops-enhancement/ Archive includes:
Index automatically updated with completion timestamp. |
6 tasks
This was referenced Mar 24, 2026
Open
1 task
6 tasks
1 task
6 tasks
4 tasks
andreipromarketing-dev
pushed a commit
to andreipromarketing-dev/opencode
that referenced
this pull request
Apr 7, 2026
feat: add cloud infrastructure security skill
andreipromarketing-dev
pushed a commit
to andreipromarketing-dev/opencode
that referenced
this pull request
Apr 7, 2026
* feat(commands): add /context-budget optimizer command Adds a command that audits context window token consumption across agents, skills, rules, MCP servers, and CLAUDE.md files. Detects bloated agent descriptions, redundant components, MCP over-subscription, and CLAUDE.md bloat. Produces a prioritized report with specific token savings per optimization. Directly relevant to anomalyco#434 (agent descriptions too verbose, ~26k tokens causing performance warnings). * fix: address review feedback on context-budget command - Add $ARGUMENTS to enable --verbose flag passthrough - Fix MCP token estimate: 45 tools × ~500 tokens = ~22,500 (was ~2,200) - Fix heavy agents example: all 3 now exceed 200-line threshold - Fix description threshold: warning at >30 words, fail at >50 words - Add Step 4 instructions (was empty) - Fix audit cadence: "quarterly" → "regularly" + "monthly" consistently - Fix Output Format heading level under Step 4 - Replace "Antigravity" with generic "harness versions" - Recalculate total overhead to match corrected MCP numbers * fix: correct MCP tool count and savings percentage in sample output - Fix MCP tool count: table now shows 87 tools matching the issues section (was 45 in table vs 87 in issues) - Fix savings percentage: 5,100 / 66,400 = 7.7% (was 20.6%) - Recalculate total overhead and effective context to match * fix: correct sample output arithmetic - Fix total overhead: 66,400 → 66,100 to match component table sum (12,400 + 6,200 + 2,800 + 43,500 + 1,200 = 66,100) - Fix MCP savings: ~1,500 → ~27,500 tokens (55 tools × 500 tokens/tool) to match the per-tool formula defined in Step 1 - Reorder optimizations by savings (MCP removal is now anomalyco#1) - Fix total savings and percentage (31,100 / 66,100 = 47.0%) * fix: distinguish always-on vs on-demand agent overhead Agent descriptions are always loaded into Task tool routing context, but the full agent body is only loaded when invoked. The audit now measures both: description-only tokens as always-on overhead and full-file tokens as worst-case overhead. This resolves the contradiction between Step 1 (counting full files) and Tip 1 (saying only descriptions are loaded per session). * fix: simplify agent accounting and resolve inconsistencies - Revert to single agent overhead metric (full file tokens) — simpler and matches what the report actually displays - Add back 200-line threshold for heavy agents in Step 1 - Fix heavy agents action to match issue type (split/trim, not description-only) - Remove .agents/skills/ scan path (doesn't exist in ECC repo) - Consolidate description threshold to single 30-word check * fix: add model assumption and verbose mode activation - Step 4: assume 200K context window by default (Claude has no way to introspect its model at runtime) - Step 4: add explicit instruction to check $ARGUMENTS for --verbose flag and include additional output when present * fix: handle .agents/skills/ duplicates in skill scan Skills scan now checks .agents/skills/ for Codex harness copies and skips identical duplicates to avoid double-counting overhead. * fix: add savings estimate to heavy agents action for consistency * feat(skills): add context-budget backing skill, slim command to delegator * fix: use structurally detectable classification criteria instead of session frequency --------- Co-authored-by: vazidmansuri005 <vazidmansuri005@users.noreply.github.com>
andreipromarketing-dev
pushed a commit
to andreipromarketing-dev/opencode
that referenced
this pull request
Apr 7, 2026
* feat: add pending instinct TTL pruning and /prune command Pending instincts generated by the observer accumulate indefinitely with no cleanup mechanism. This adds lifecycle management: - `instinct-cli.py prune` — delete pending instincts older than 30 days (configurable via --max-age). Supports --dry-run and --quiet flags. - Enhanced `status` command — shows pending count, warns at 5+, highlights instincts expiring within 7 days. - `observer-loop.sh` — runs prune before each analysis cycle. - `/prune` slash command — user-facing command for manual pruning. Design rationale: council consensus (4/4) rejected auto-promote in favor of TTL-based garbage collection. Frequency of observation does not establish correctness. Unreviewed pending instincts auto-delete after 30 days; if the pattern is real, the observer will regenerate it. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering> * fix: remove duplicate functions, broaden extension filter, fix prune output - Remove duplicate _collect_pending_dirs and _parse_created_date defs - Use ALLOWED_INSTINCT_EXTENSIONS (.md/.yaml/.yml) instead of .md-only - Track actually-deleted items separately from expired for accurate output - Update README.md and AGENTS.md command counts: 59 → 60 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering> * fix: address Copilot and CodeRabbit review findings - Use is_dir() instead of exists() for pending path checks - Change > to >= for --max-age boundary (--max-age 0 now prunes all) - Use CLV2_PYTHON_CMD env var in observer-loop.sh prune call - Remove unused source_dupes variable - Remove extraneous f-string prefix on static string Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering> * fix: update AGENTS.md project structure command count 59 → 60 Co-Authored-By: Claude <noreply@anthropic.com> * fix: address cubic and coderabbit review findings - Fix status early return skipping pending instinct warnings (cubic anomalyco#1) - Exclude already-expired items from expiring-soon filter (cubic anomalyco#2) - Warn on unparseable pending instinct age instead of silent skip (cubic anomalyco#4) - Log prune failures to observer.log instead of silencing (cubic anomalyco#5) Co-Authored-By: Claude <noreply@anthropic.com> * fix: YAML single-quote unescaping, f-string cleanup, add /prune to README - Fix single-quoted YAML unescaping: use '' doubling (YAML spec) not backslash escaping which only applies to double-quoted strings (greptile P1) - Remove extraneous f-string prefix on static string (coderabbit) - Add /prune to README command catalog and file tree (cubic) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Happy <yesreply@happy.engineering>
flash1293
added a commit
to flash1293/opencode
that referenced
this pull request
Apr 9, 2026
chore: prepare elastic-ramen for open source release
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.