Feature/11 - #12
Merged
Merged
Conversation
ginccc
added a commit
that referenced
this pull request
Apr 19, 2026
Review fix #1: Delete dead SlackChannelRouter + SlackChannelRouterTest - Class was @ApplicationScoped but never injected, causing double startup cost scanning all agents for channel connectors - Both files removed (265 + 351 LOC) Review fix #2: Migration tool now merges duplicate channelId entries - Old: created one config per (agent, channel) pair, last-write-wins - New: groups connectors by platformChannelId and creates a single multi-target config per channel with agent-derived trigger keywords - Multi-agent channels show mergedAgents in dry-run output Review fix #3: Deep-copy config before resolving secrets - resolvePlatformSecrets was mutating the store's instance in-place, which would leak plaintext secrets if a caching layer is added - Added deepCopyConfig() — router works on copies, REST returns vault references Review fix #5: Null/blank trigger guard in validation - Null triggers from loose JSON input now return 400 instead of NPE Review fix #6: Remove dead fields - Removed newStyleChannelIds (assigned but never read) - Removed cacheFactory field (only used in constructor) - Removed unused ConcurrentHashMap import Review fix #7/#12: Reject observeMode=true until implemented - Validation now blocks observeMode=true with clear error message Review fix #8: Preserve stack traces in router error logging - All LOGGER.warnf(msg, e.getMessage()) changed to LOGGER.warn(msg, e) for production diagnosability Review fix #10: Rename 'channelId' to 'resourceId' in MCP responses - Eliminates confusion between Slack channelId and Mongo resourceId Review fix #11: Fix deployAgent description typo - 'production' was listed twice in 4 environment descriptions Review fix #17: Temper platform-agnostic Javadoc claim - Javadoc now says 'currently Slack-only with platform-agnostic model'
ginccc
added a commit
that referenced
this pull request
Jul 3, 2026
…pod cancel honored - #12: deleteGroupConversation now runs the same paused-state cleanup as cancel-of-paused (delete timeout schedule + cleanupAfterTerminalState) so a deleted paused discussion no longer leaks its armed schedule, ephemeral dynamic agents, and lastVerifiedIndex entry. - #13: cancelDiscussion decides the cancel path (token / DB CAS) FIRST and deletes the timeout schedule only after the CAS wins; on CAS loss it leaves the schedule alone and reports 409, so a cancel racing a fresh pause can no longer strip a finite timeout while reporting success. - #27/#45: the running leg re-reads persisted state at each phase boundary and completes via updateIfState(running-state) so a cross-pod cancel/ABORT is honored at the next boundary and the terminal COMPLETED write can no longer resurrect IN_PROGRESS over a cluster-wide CANCELLED.
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.
improved startup scripts and fixed assembly build