Releases: silentchainai/SILENTCHAIN
Releases · silentchainai/SILENTCHAIN
SILENTCHAIN CE v1.1.3
[1.1.3] - 2026-02-08
Changed
- UI title updated - Now displays "SILENTCHAIN AI™ - Community Edition v1.1.3" with trademark symbol and version number
- Updated slogan - Changed from "AI-Powered Security Scanner" to "AI-Powered OWASP Top 10 Vulnerability Scanning for Burp Suite"
- Button colors removed - All control buttons (Settings, Cancel All, Pause All, Upgrade to Professional, Run Task Diagnostics) now use default system theme colors instead of custom colored backgrounds
- "Check for Updates" renamed to "Upgrade to Professional" - Clearer call-to-action for edition upgrade
- "Default" console theme removed - Simplified theme options to "Light" and "Dark" only
- "Light" theme is now the default for new installations
- Existing configs with "Default" theme are automatically migrated to "Light"
Technical Details
- Removed
setBackground()andsetForeground()calls from 5 buttons: Settings, Cancel All, Pause All, Upgrade, Debug Tasks - Theme combo options reduced from
["Default", "Dark", "Light"]to["Light", "Dark"] applyConsoleTheme()simplified to two branches (Dark/Light) instead of threeload_config()now validates saved theme value and falls back to "Light" if unrecognized- Console logo updated with new slogan text
User Impact
- Cleaner UI - Buttons integrate with the system look-and-feel instead of using custom colors
- Simpler theme selection - Two clear choices instead of three overlapping options
- Accurate branding - Title now shows trademark symbol, version, and specific OWASP Top 10 focus
[1.1.2] - 2026-02-06
Fixed
- CRITICAL: 145MB config file causes startup hang and settings freeze - The
api_keyfield in~/.silentchain_config.jsonwas being corrupted to ~145MBJPasswordField.getPassword()returns a Javachar[], and callingstr()on it in Jython produces the array's repr (e.g."array(char, [u'a', u'r', ...])") instead of the actual password text- Each save-and-reload cycle recursively expanded the value, growing the config file exponentially
- Fixed by using
"".join(apiKeyField.getPassword())to properly convert the char array to a Python string - Affected both "Test Connection" and "Save Settings" code paths
Technical Details
testConnection()handler (line 1029):str(apiKeyField.getPassword())→"".join(apiKeyField.getPassword())saveSettings()handler (line 1194):str(apiKeyField.getPassword())→"".join(apiKeyField.getPassword())
User Impact
- Config file stays a few hundred bytes instead of growing to 145MB+
- Extension loads instantly — no more startup hang from parsing a massive JSON file
- Settings dialog opens instantly — no more UI freeze from loading a corrupted API key
- Note: Users with a corrupted config file should delete
~/.silentchain_config.jsonand re-enter their settings
[1.1.1] - 2025-02-04
Fixed
- CRITICAL: Settings button freezes Burp Suite - Clicking Settings caused the entire UI to hang
- "Refresh Models" and "Test Connection" buttons called
test_ai_connection()directly on the Swing EDT - Network requests with 10-second timeouts blocked all UI rendering while waiting for a response
- Both buttons now run network calls in background threads with visual feedback ("..." / "Testing...")
- Buttons are disabled during the operation and re-enabled when complete
- "Refresh Models" and "Test Connection" buttons called
- Slow extension startup - Loading the extension blocked Burp for up to 10 seconds
test_ai_connection()was called synchronously duringregisterExtenderCallbacks()- If the AI provider was unreachable, the full 10-second timeout had to elapse before Burp continued
- Startup connection test now runs in a daemon background thread
Technical Details
refreshModels()handler: network call moved to daemon thread, UI updates viaSwingUtilities.invokeLater()testConnection()handler: network call moved to daemon thread, button state restored infinallyvia EDT- Startup
test_ai_connection()wrapped in daemon thread, warning messages still printed on failure - All three blocking paths now return immediately to the EDT
User Impact
- Settings dialog opens instantly and remains responsive during connection tests
- Extension loads instantly without waiting for AI provider connectivity
- Buttons show visual feedback ("..." / "Testing...") while network operations run in background
- No more Burp Suite freezing when AI provider is slow or unreachable
[1.1.0] - 2025-02-04
Fixed
- CRITICAL: UI hang on Linux/Kali - Burp Suite became unresponsive when running the extension on Linux systems
- Swing Event Dispatch Thread (EDT) was saturated by unconditional UI refreshes every 2 seconds
- Locks were held during Swing rendering, causing EDT to block on lock contention
- Console rebuilt all 1,000 messages into a single string every refresh cycle
- Redundant
time.sleep(4)in analysis threads doubled request spacing unnecessarily
Changed
- Dirty-flag refresh guard -
refreshUI()now skips entirely when no data has changed- Added
_ui_dirtyflag set by all data mutation methods - Added
_refresh_pendingguard to prevent queueing multiple refreshes on the EDT - If nothing changed, zero Swing work is performed
- Added
- Copy-then-render pattern - Data is now snapshot under locks, then Swing components are updated with no locks held
- Eliminates EDT blocking on
tasks_lock,findings_lock_ui,console_lock, andstats_lock
- Eliminates EDT blocking on
- Incremental console updates - Only new messages are appended via
Document.insertString()- Full text rebuild only on first load or when message list is trimmed
- Reduces console update cost from O(n) to O(delta)
- Refresh interval increased - Auto-refresh timer changed from 2 seconds to 5 seconds
- Stuck task check adjusted to every 6 cycles (~30 seconds) to match
- Removed redundant sleeps - Removed
time.sleep(4)fromanalyze()andanalyze_forced()finally blocks- The existing
min_delay = 4.0rate limiter already enforces request spacing
- The existing
- Removed redundant
refreshUI()call fromadd_finding()- auto-refresh timer handles updates via dirty flag
Technical Details
- Added instance variables:
_ui_dirty,_refresh_pending,_last_console_len refreshUI()early-exits if_refresh_pendingor not_ui_dirty_refresh_pendingcleared infinallyblock of EDT Runnable to guarantee reset- Dirty flag set in:
log_to_console(),add_finding(),addTask(),updateTask(),updateStats() - Console uses
Document.insertString()for append,setText()only for full rebuild - Handles message list trimming (when
current_len < prev_len) by triggering full rebuild
User Impact
- Burp Suite no longer hangs on Kali Linux and other Linux distributions
- Responsive UI even with hundreds of tasks and findings
- Lower CPU usage during idle periods (no unnecessary Swing work)
- Faster analysis throughput (no redundant 4-second sleep per request)
- Windows users also benefit from reduced EDT load
[1.0.8] - 2025-01-31
Changed
- Context menu simplified - "SILENTCHAIN - Analyze Request" → "Analyze Request"
- Less redundant, cleaner
- Burp already shows extension name in menu structure
- AI Provider dropdown now auto-updates API URL
- Select "Ollama" → URL changes to
http://localhost:11434 - Select "OpenAI" → URL changes to
https://api.openai.com/v1 - Select "Claude" → URL changes to
https://api.anthropic.com/v1 - Select "Gemini" → URL changes to
https://generativelanguage.googleapis.com/v1 - Makes provider switching instant and error-free
- Can still manually edit URL if using custom endpoints
- Select "Ollama" → URL changes to
Technical Details
- Added
ProviderChangeListenerclass in Settings dialog - Listener updates API URL field when provider dropdown changes
- Default URLs map: Ollama, OpenAI, Claude, Gemini
- Context menu item shortened from 31 chars to 15 chars
User Impact
- Faster provider switching (no manual URL entry)
- Less chance of typos in API URLs
- Cleaner context menu
- More intuitive Settings dialog
[1.0.7] - 2025-01-31
Fixed
- Removed all Unicode characters - Fixes unreadable boxes/squares on some systems
- Settings button: "⚙ Settings" → "Settings"
- Upgrade button: "🚀 Upgrade to Professional" → "Upgrade to Professional"
- Debug button: "🔍 Run Task Diagnostics" → "Run Task Diagnostics"
- Upgrade notice bullets: "•" → "-"
- Warning symbols: "⚠" → "WARNING:"
- Checkmarks: "✓" → "OK", "✗" → "X"
- All text now pure ASCII for maximum compatibility
Changed
- Widened Settings dialog - 600px → 750px
- Accommodates long model names (e.g., "deepseek-r1:671b-cloud-instruct-q4_K_M")
- Prevents text from being cut off or pushing window off-screen
- Better visibility for all settings fields
Technical Details
- Removed Unicode characters: ⚙ 🚀 🔍 • ⚠ ✓ ✗
- Settings dialog size: 600x500 → 750x500 pixels
- All button labels now ASCII only
- All console messages now ASCII only
- Better compatibility with non-UTF8 terminals
User Impact
- No more unreadable box/square characters in UI
- Settings dialog properly sized for long model names
- Cleaner, more professional appearance
- Works on all systems regardless of font support
[1.0.6] - 2025-01-31
Changed
- Increased timeout maximum to 99999 seconds (27.7 hours)
- Previously: 300 seconds (5 minutes) max
- Now: 99999 seconds (almost 28 hours) max
- Min still 10 seconds
- Useful for extremely large AI models or slow connections
- Moved "Debug Tasks" button to Settings → Advanced
- No longer clutters top control panel
- Now accessible via Settings dialog
- Button: "🔍 ...