Enhance custom commands#13
Closed
ezynda3 wants to merge 2 commits into
Closed
Conversation
Member
|
haha, sorry, i already pulled your commit over! |
andreipromarketing-dev
pushed a commit
to andreipromarketing-dev/opencode
that referenced
this pull request
Apr 7, 2026
fix: remove malformed workflow and fix hooks.json regex escaping
csr-reboot
added a commit
to dostack-ai/opencode
that referenced
this pull request
Apr 15, 2026
Signals build_status to the DOstack platform so the frontend knows when a build is in progress vs. complete, fixing the premature deploy race condition (issue anomalyco#13). - 'building' sent on first file write (debounced — one call per cycle) - 'complete' sent when AI declares build done AFTER verification passed (verificationInjected is true and no files written since) - Status resets when verification re-arms (file write after complete) - Complete signal retries once on failure; building is fire-and-forget - API failures never crash the build New file: src/build-status.ts — stateful reporter with dedup and retry Hook changes: after-response gets reportBuilding, text-complete gets reportComplete + isVerificationComplete for the two-phase signal Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rwanbt
added a commit
to Rwanbt/opencode
that referenced
this pull request
Apr 19, 2026
…eader stop_local_server previously called child.kill() and dropped the Child without wait(). On Unix the process lingered as a zombie and — the real leak — the BufReader<ChildStderr> running in the dedicated stderr thread stayed blocked inside `.lines()` forever, holding the pipe fd. Repeated stop/start cycles on a long mobile session accumulated parked threads + dangling fds. Now we take() the Child out of the shared guard, call kill(), and poll try_wait() for up to 2 seconds. That lets the kernel reap the zombie and closes the stderr pipe, so the reader thread naturally exits on EOF and drops its fd. Closes anomalyco#13/21.
aleygey
pushed a commit
to aleygey/my_opencode
that referenced
this pull request
Apr 21, 2026
…, usage - Event retention: 500-row hard cap per workflow with protected-kind allowlist so forensic / terminal events never prune (P3 anomalyco#11). - Pending-commands queue with stable-fingerprint dedup, ACK path for runtime command_ids, and 1h TTL on timed_out_at entries (P1/P3). - Legal state-machine transitions for node status, with runtime-source bypass for stall / limit-reach forced moves (P0/P2). - Structured open_need / fulfill_need lifecycle replacing free-form blocker text; auto-waits the node and wakes master on fulfill (P2). - Workflow.Summary zod schema (.loose + .meta ref) plus matching WorkflowSummary type on the sql layer — legacy rows still parse (P3 anomalyco#13). - Per-node usage accumulation from assistant message tokens/cost with message-id dedup; workflow Runtime.usage rolls up across nodes; advisory limits from workflow.config.limits emit one-shot node.budget_exceeded (P3 anomalyco#15). - workflow_need_fulfill registered in ToolRegistry; control HTTP route returns { ok, deduped, command_id } so the master sees dedup signal. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 task
Jaiminp007
referenced
this pull request
in Jaiminp007/finny
May 2, 2026
Fixes all 17 Copilot comments: Telemetry opt-out (#1, #2, #3, #9, #16): - tracker.ts now reads FINNY_TELEMETRY=0 / OPENCODE_TELEMETRY=0 at module load, so the opt-out applies in every entrypoint (TUI worker, server, CLI), not just the bootstrap path. - Email dialog auto-prompt and /subscribe slash command also gated on Analytics.isEnabled() — email POST goes to the same Convex deployment. Tracker correctness (#5, #14, #17): - drain() now also waits for the DeviceProfile.userId() resolution promise, not just the post-send promise. - worker rpc.shutdown() and main-thread thread.ts both call Analytics.drain() before tearing down — neither beforeExit nor SIGTERM fire on worker.terminate() / process.exit(0). - beforeExit handler runs at most once per process, preventing an infinite drain loop when a hung telemetry request later resolves and re-empties the loop. Privacy (#10, #11, #12): - Drop process.argv from tui.worker.booted (could include --prompt text and project paths). - error.surfaced now sends only error.name; error messages frequently embed user prompt content and local file paths. - Don't persist the submitted email address to local KV (no reader, just unnecessary PII retention). Email dialog state machine (#4, #6, #8): - Wait for kv.ready before evaluating the prompt gate so we don't re-show the dialog to users who already submitted/skipped. - Conditional dismiss handler — only marks "skipped" when no terminal status has been set, so a successful submit isn't overwritten by the dismiss callback that fires on dialog.clear() and isn't suppressed by another dialog replacing this one. Server-side validation (#15): - subscribe mutation now rejects empty / oversized / regex-failing emails with a ConvexError, so the public Convex client can't bypass the TUI regex. Command coverage (#13): - Hook Analytics.track() in DialogCommand.trigger() instead of the bus event handler. trigger() is the central activation point for palette, slash, keybind, plugin, and bus paths — single hook, full coverage, no double-counting. Comment wording (#7): - bootstrap.ts: "opt-in by default" → "enabled by default" (correct description of opt-out semantics). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rwanbt
added a commit
to Rwanbt/opencode
that referenced
this pull request
May 5, 2026
…eader stop_local_server previously called child.kill() and dropped the Child without wait(). On Unix the process lingered as a zombie and — the real leak — the BufReader<ChildStderr> running in the dedicated stderr thread stayed blocked inside `.lines()` forever, holding the pipe fd. Repeated stop/start cycles on a long mobile session accumulated parked threads + dangling fds. Now we take() the Child out of the shared guard, call kill(), and poll try_wait() for up to 2 seconds. That lets the kernel reap the zombie and closes the stderr pipe, so the reader thread naturally exits on EOF and drops its fd. Closes anomalyco#13/21.
bussard76
pushed a commit
to bussard76/openwork
that referenced
this pull request
May 12, 2026
docs: clarify release trigger steps
aleygey
pushed a commit
to aleygey/my_opencode
that referenced
this pull request
May 12, 2026
…as/refiner UI fixes: - anomalyco#15 Remove the gear-icon "Tweaks" popover (theme + collapse) — user reported it as useless chrome. Theme falls back to saved pref / system, rail collapse stays on the rail's own chevron toggle. - anomalyco#7 Task names now follow each session's title (auto-generated or user- renamed). Root cause: `newWorkflowTask` was pre-setting `title: "Workflow"` on session.create, which blocked the backend's title agent from auto-generating (the agent only fires when title matches the default ISO placeholder). New sessions now leave title unset → ensureTitle fires → each task gets a distinct name. Rail and Tasks drawer show "Untitled" for sessions that still have the default placeholder; node-tab labels prefer the bound child session's title. - Rail's sub-task list capped at 8 visible rows with internal scroll (was squeezing all tasks into the visible rail height). - anomalyco#14 Per-slave model picker: clear `local.model` before opening the picker so picking the SAME model as master still routes (previously the on(key) effect required a key change to fire, so same-model picks silently no-op'd — the user's "选其他不生效" complaint). - anomalyco#10 Canvas bottom-half occluded: `.wf-canvas-host` was `position: relative` only, so its `flex: 1` child `.wf-r2-canvas` had no flex parent to grow into. Made the host a flex column so the canvas actually fills its allotted height. - anomalyco#11 React production error anomalyco#409 fixed by un-nesting the drill-in button: the outer node card was a `<button>` wrapping an inner drill-in `<button>` — invalid HTML that React surfaces as anomalyco#409. Switched the outer to `div role="button"` with Enter/Space handling. Refiner: - anomalyco#13 Refiner no longer observes user messages addressed to the orchestrator agent (workflow planning commands aren't generalisable experiences). Gate added in `extractUserMessage`. - anomalyco#5 Archived experiences are now discoverable: new "已归档 (N)" chip in the Knowledge substrip when N > 0, toggles `includeArchived`. Archived rows already had an "Unarchive" button in the card menu — this just makes finding them obvious. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.