Skip to content

convert optimize review to a class#6

Merged
olasunkanmi-SE merged 1 commit intomainfrom
development
Mar 30, 2024
Merged

convert optimize review to a class#6
olasunkanmi-SE merged 1 commit intomainfrom
development

Conversation

@olasunkanmi-SE
Copy link
Copy Markdown
Owner

No description provided.

@olasunkanmi-SE olasunkanmi-SE merged commit ad65d3e into main Mar 30, 2024
olasunkanmi-dev pushed a commit that referenced this pull request Mar 15, 2026
olasunkanmi-dev pushed a commit that referenced this pull request Mar 21, 2026
#1  clearAllForAgent: remove try/catch — let errors propagate to caller
#2  clearWorkspaceContext cmd: add withProgress + try/catch error UX
#3  resolveWorkspacePath: resolve symlinks via fs.realpathSync before check
#4  Global rules priority: reorder to global → settings → workspace (highest)
#5  DRY getAgentId: add getWorkspaceAgentId() facade, all wrappers use it
#6  Remove dead AGENT_ID constant from BaseWebViewProvider
#7  loadGlobalRules: convert to async (fs.promises.readFile), skip ENOENT
#8  initialize() idempotency: guard against double-init, add reinitialize()
#9  Tests: OS-agnostic paths via os.tmpdir(), add init guard + facade tests
#10 FileTool: collect all violations before returning, report all denied paths
    Also fixed 4 remaining AGENT_ID references in base.ts generateResponse
olasunkanmi-dev pushed a commit that referenced this pull request Mar 21, 2026
- Fix handleHistoryUpdate bug: message.message → message.messages (#4)
- Add ChatHistoryCache.clear()+deactivate() in clearWorkspaceContext (#6)
- Clear cache on workspace folder change to prevent stale writes (#2)
- Reset currentSessionId in base.ts on workspace change (#2)
- Add migrateFromGlobalAgentId() for legacy 'agentId' → scoped ID (#9)
- Call migration on first activation in extension.ts (#9)
- Classify EACCES/ELOOP errors separately in validatePathWithinWorkspace (#7/8)
- Document 48-bit hash collision probability on truncation (#12)
- Clean up _logger in _resetForTesting (#13)
- Add  icon to clearWorkspaceContext command (#14)
- Add transaction API comment in clearAllForAgent (#1)
- Add reinitialize isolation + path validation tests (#10)
olasunkanmi-dev pushed a commit that referenced this pull request Mar 21, 2026
- #1 Duplicate ID guard: acquire() rejects if id already running/waiting
- #2 AbortSignal/timeout: acquire() accepts options.signal + options.timeoutMs
- #3 Release slot leak: outer try/finally ensures unconditional slot release
  even if code between acquire() and inner try block throws
- #5 Stable sort: starvation boost uses enqueuedAt as FIFO tiebreaker
- #6 Queue depth cap: MAX_QUEUE_DEPTH=50 with ConcurrencyQueueFullError
- #7+#8 QuickPick UI: showStatus uses QuickPick with per-item cancel
- #9 Logger init: moved from field initializer to constructor body
- #13 Status bar comment: clarified alignment semantics
- #14 Localized command titles: added NLS tokens for both commands

Tests updated: duplicate ID, queue depth cap, AbortSignal, pre-aborted
signal, isPending() helper replaces setTimeout-based assertions.
olasunkanmi-dev pushed a commit that referenced this pull request Mar 21, 2026
Service (concurrency-queue.service.ts):
- #1/#8: createReleaser guards on disposed, no longer calls fireChange
- #2: drain() resolves with createReleaser(id) instead of undefined
- #3: enableTelemetry: false on logger to avoid noisy spans
- #4: waitingIds Set for O(1) duplicate-ID checks instead of Array.some
- #5: buildAbortSignal() polyfills for AbortSignal.timeout and .any
- #9: Split QueueItem into QueueItemView (exported) + QueueItemInternal (private)
- #10: boostStarvedItems mutates QueueItemInternal.priority directly
- #13: $(watch) icon for queued state instead of $(loading~spin)
- #14: JSDoc on constants explaining why not configurable

Agent service (codebuddy-agent.service.ts):
- #6: conversationId uses randomUUID() instead of Date.now()

Extension (extension.ts):
- #7: QuickPick cancel-all uses CANCEL_ALL_ID sentinel
olasunkanmi-dev pushed a commit that referenced this pull request Mar 21, 2026
Service (concurrency-queue.service.ts):
- #1: cancel() logs invariant violation and self-heals on Set/Array desync
- #2: drain() has ordering comment explaining running.set() before resolve()
- #3: buildAbortSignal() timeout polyfill clears timer on external abort
- #6: starvationTimer.unref() allows Node.js to exit in test environments
- #8: MAX_QUEUE_DEPTH replaced with derived maxQueueDepth getter
      (maxConcurrent * 10), scales proportionally with concurrency limit
- #10: initStatusBar() guards against double-initialization
- #11: JSDoc on QueueItemInternal explaining intentional readonly override
- #12: $(loading~spin) for queued-with-running, $(sync~spin) for running-only
- #14: getWaitingIds() returns Object.freeze'd snapshot

Agent service (codebuddy-agent.service.ts):
- #13: Queue label uses trim() + fallback to "(empty request)"

Test file (concurrency-queue.test.ts):
- DEFAULT_MAX_QUEUE_DEPTH replaced with derived QUEUE_DEPTH_MULTIPLIER

Skipped #7/#9 (ctx/span finally safety): Both are const-initialized before
the inner try block; the inner finally only runs if the try is entered, so
both are guaranteed to exist. False positive.
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
olasunkanmi-SE#1  clearAllForAgent: remove try/catch — let errors propagate to caller
olasunkanmi-SE#2  clearWorkspaceContext cmd: add withProgress + try/catch error UX
olasunkanmi-SE#3  resolveWorkspacePath: resolve symlinks via fs.realpathSync before check
olasunkanmi-SE#4  Global rules priority: reorder to global → settings → workspace (highest)
olasunkanmi-SE#5  DRY getAgentId: add getWorkspaceAgentId() facade, all wrappers use it
olasunkanmi-SE#6  Remove dead AGENT_ID constant from BaseWebViewProvider
olasunkanmi-SE#7  loadGlobalRules: convert to async (fs.promises.readFile), skip ENOENT
olasunkanmi-SE#8  initialize() idempotency: guard against double-init, add reinitialize()
olasunkanmi-SE#9  Tests: OS-agnostic paths via os.tmpdir(), add init guard + facade tests
olasunkanmi-SE#10 FileTool: collect all violations before returning, report all denied paths
    Also fixed 4 remaining AGENT_ID references in base.ts generateResponse
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
- Fix handleHistoryUpdate bug: message.message → message.messages (olasunkanmi-SE#4)
- Add ChatHistoryCache.clear()+deactivate() in clearWorkspaceContext (olasunkanmi-SE#6)
- Clear cache on workspace folder change to prevent stale writes (olasunkanmi-SE#2)
- Reset currentSessionId in base.ts on workspace change (olasunkanmi-SE#2)
- Add migrateFromGlobalAgentId() for legacy 'agentId' → scoped ID (olasunkanmi-SE#9)
- Call migration on first activation in extension.ts (olasunkanmi-SE#9)
- Classify EACCES/ELOOP errors separately in validatePathWithinWorkspace (olasunkanmi-SE#7/8)
- Document 48-bit hash collision probability on truncation (olasunkanmi-SE#12)
- Clean up _logger in _resetForTesting (olasunkanmi-SE#13)
- Add  icon to clearWorkspaceContext command (olasunkanmi-SE#14)
- Add transaction API comment in clearAllForAgent (olasunkanmi-SE#1)
- Add reinitialize isolation + path validation tests (olasunkanmi-SE#10)
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
- olasunkanmi-SE#1 Duplicate ID guard: acquire() rejects if id already running/waiting
- olasunkanmi-SE#2 AbortSignal/timeout: acquire() accepts options.signal + options.timeoutMs
- olasunkanmi-SE#3 Release slot leak: outer try/finally ensures unconditional slot release
  even if code between acquire() and inner try block throws
- olasunkanmi-SE#5 Stable sort: starvation boost uses enqueuedAt as FIFO tiebreaker
- olasunkanmi-SE#6 Queue depth cap: MAX_QUEUE_DEPTH=50 with ConcurrencyQueueFullError
- olasunkanmi-SE#7+olasunkanmi-SE#8 QuickPick UI: showStatus uses QuickPick with per-item cancel
- olasunkanmi-SE#9 Logger init: moved from field initializer to constructor body
- olasunkanmi-SE#13 Status bar comment: clarified alignment semantics
- olasunkanmi-SE#14 Localized command titles: added NLS tokens for both commands

Tests updated: duplicate ID, queue depth cap, AbortSignal, pre-aborted
signal, isPending() helper replaces setTimeout-based assertions.
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
Service (concurrency-queue.service.ts):
- olasunkanmi-SE#1/olasunkanmi-SE#8: createReleaser guards on disposed, no longer calls fireChange
- olasunkanmi-SE#2: drain() resolves with createReleaser(id) instead of undefined
- olasunkanmi-SE#3: enableTelemetry: false on logger to avoid noisy spans
- olasunkanmi-SE#4: waitingIds Set for O(1) duplicate-ID checks instead of Array.some
- olasunkanmi-SE#5: buildAbortSignal() polyfills for AbortSignal.timeout and .any
- olasunkanmi-SE#9: Split QueueItem into QueueItemView (exported) + QueueItemInternal (private)
- olasunkanmi-SE#10: boostStarvedItems mutates QueueItemInternal.priority directly
- olasunkanmi-SE#13: $(watch) icon for queued state instead of $(loading~spin)
- olasunkanmi-SE#14: JSDoc on constants explaining why not configurable

Agent service (codebuddy-agent.service.ts):
- olasunkanmi-SE#6: conversationId uses randomUUID() instead of Date.now()

Extension (extension.ts):
- olasunkanmi-SE#7: QuickPick cancel-all uses CANCEL_ALL_ID sentinel
Stanley00 pushed a commit to stanley-fork/codebuddy that referenced this pull request Mar 27, 2026
Service (concurrency-queue.service.ts):
- olasunkanmi-SE#1: cancel() logs invariant violation and self-heals on Set/Array desync
- olasunkanmi-SE#2: drain() has ordering comment explaining running.set() before resolve()
- olasunkanmi-SE#3: buildAbortSignal() timeout polyfill clears timer on external abort
- olasunkanmi-SE#6: starvationTimer.unref() allows Node.js to exit in test environments
- olasunkanmi-SE#8: MAX_QUEUE_DEPTH replaced with derived maxQueueDepth getter
      (maxConcurrent * 10), scales proportionally with concurrency limit
- olasunkanmi-SE#10: initStatusBar() guards against double-initialization
- olasunkanmi-SE#11: JSDoc on QueueItemInternal explaining intentional readonly override
- olasunkanmi-SE#12: $(loading~spin) for queued-with-running, $(sync~spin) for running-only
- olasunkanmi-SE#14: getWaitingIds() returns Object.freeze'd snapshot

Agent service (codebuddy-agent.service.ts):
- olasunkanmi-SE#13: Queue label uses trim() + fallback to "(empty request)"

Test file (concurrency-queue.test.ts):
- DEFAULT_MAX_QUEUE_DEPTH replaced with derived QUEUE_DEPTH_MULTIPLIER

Skipped olasunkanmi-SE#7/olasunkanmi-SE#9 (ctx/span finally safety): Both are const-initialized before
the inner try block; the inner finally only runs if the try is entered, so
both are guaranteed to exist. False positive.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant