What's Changed
- release by @hulto in #2133
- update by @hulto in #2135
- [cleanup] go fmt by @KCarretto in #2136
- feat: add Adventure ent and quest lineage by @KCarretto in #2130
- Http1 short polling interactive async by @hulto in #2102
- Update clap dependency version to 4.5.60 by @hulto in #2137
- Add tcp bind transport by @hulto in #2140
- feat(ui): Update task card layout by @cmp5987 in #2143
- fix(ui): Fix create quest bugs and task filtering bug by @cmp5987 in #2145
- ICMP Redirector by @KaliPatriot in #2068
- Add
diffscomputed field to Quest GraphQL type by @KCarretto in #2138 - Eldritch
file.template_strby @deciphr in #2150 - Fix socks5 proxy auth code handling and device auth UI by @KCarretto in #2115
- Make file.list_recent() work without args by @KCarretto in #2002
- build ui by @KCarretto in #2156
- feat(ui): Add user based filter by @cmp5987 in #2159
- Add sshecho e2e test binary by @KCarretto in #2155
- Add BeaconHistory to track check-ins by @KCarretto in #2169
- Add Meta Commands to WASM Browser REPL by @KCarretto in #2170
- codegen by @KCarretto in #2172
- [AI] Feature - Add Beacon Timeline Chart Metrics Query by @KCarretto in #2175
- Fix eldritch-wasm build by supporting fake bindings in eldritch-libchain by @KCarretto in #2176
- cargo fmt & rebuild by @KCarretto in #2177
- Fix text wrapping in Browser REPL help output by @KCarretto in #2178
- Fix markdown block formatting in Browser REPL help output by @KCarretto in #2180
- Update gotestsum to latest by @KCarretto in #2181
- Add pnet Connection implementing net.Conn over portals by @KCarretto in #2184
- Refactor sshecho into test utility by @KCarretto in #2183
- feat: Add SSH over WebSocket portal handler by @KCarretto in #2185
- feat(eldritch): add dns library with list_a_records by @Cictrone in #2191
- feat(eldritch): refactor dns to list and add CNAME support by @Cictrone in #2193
- feat(eldritch): support AAAA, TXT, MX, SOA, NS, PTR, AXFR, SRV records by @Cictrone in #2195
- Add Event Ent Schema and Fix Flaky Tests by @KCarretto in #2194
- Fix docker, upgrade to go 1.26.2 by @KCarretto in #2196
- Add Ent schema hooks to derive events by @KCarretto in #2197
- Move pssh utility to correct folder by @KCarretto in #2186
- Add SSH Pivoting directly in ShellV2 by @KCarretto in #2200
- Add Notification Ent and associated GraphQL mutations by @KCarretto in #2201
- Fix shellv2 SSH WebSocket connection to use wss on HTTPS by @KCarretto in #2202
- Fix duplicate HOST_ACCESS_NEW events by @KCarretto in #2203
- rebuild ui by @KCarretto in #2204
- Add Portals tab to Host Details view by @KCarretto in #2205
- fix: associate ShellPivot with Shell via query param by @KCarretto in #2206
- rebuild ui, require shell_id by @KCarretto in #2207
- [AI] Update Portals Tab in Host Details by @KCarretto in #2208
- Add
closePortalGraphQL mutation to cleanly shut down portals by @KCarretto in #2209 - feat(graphql): add tasksByTome to metrics by @KCarretto in #2179
- Add Notification Bell to Sidebar by @KCarretto in #2210
- Fix questTimeline metrics bucket calculation by @KCarretto in #2211
- Update notifications to link to relevant pages by @KCarretto in #2212
- Allow connecting to terminated shells by @KCarretto in #2213
- Update CreatePortal to record closed_at timestamp by @KCarretto in #2214
- Fix notification links in NotificationBell by @KCarretto in #2215
- Add polling and pagination to notifications by @KCarretto in #2216
- Add closePortal action to portals table by @KCarretto in #2217
- Add notification bell to mobile sidebar by @KCarretto in #2218
- Update Go tests to use on-disk temporary databases by @KCarretto in #2219
- [AI] Display beacon principal in shellv2 top bar by @KCarretto in #2220
- Add "Create Portal" button to portals tab by @KCarretto in #2221
- fix(transport): normalize https1 callback scheme in HTTP transport by @Copilot in #2225
- Update sys.get_reg doc string and regenerate shell tooltips by @Copilot in #2224
- Add built-in
report_screenshottome for screenshot collection by @Copilot in #2226 - docs: correct Imix reflective-load entrypoint to
lib_entryacross Eldritch docs and hover hints by @Copilot in #2228 - Adjust Process Table Padding and Column Widths by @KCarretto in #2222
- Update cat tome to support wildcard paths by @Copilot in #2227
- Use host ID for filtering in quest flow by @KCarretto in #2223
- [AI] Make HostProcess principal field optional by @KCarretto in #2231
- Add Export Button to ShellV2 Header by @KCarretto in #2232
- [AI] Mark notifications as read on popover close by @KCarretto in #2235
- Add host name sorting support by @KCarretto in #2236
- Optimize dev container and tavern docker workflows by @KCarretto in #2238
- fresh rebuild by @KCarretto in #2243
- feat: Default CLI Authentication to RDA Flow by @KCarretto in #2157
- Add create shell button to host details shells tab by @KCarretto in #2244
- fix: disable automatic ShellV2 autocomplete on period typing by @KCarretto in #2245
- Fix dropAllData FK constraint violation on beacon deletion by @Copilot in #2249
- feat: add quiet feature flag to suppress install output by @bri5ee in #2246
- Implement
file.tmp_dirto create persistent temporary directories by @Copilot in #2233 - Add PTY portal support:
pty()meta-command, websocket handler, and imix PTY manager by @Copilot in #2252 - fix: set CREATE_NO_WINDOW for sys.exec and sys.shell on Windows by @bri5ee in #2254
- Add Actions dropdown menu to ShellV2 header by @Copilot in #2253
- Auto pprint/tprint REPL expression output by @Copilot in #2255
- Fix ShellV2 header overflow on mobile viewports by @Copilot in #2256
- Hide portal ID on status bar indicator for mobile by @Copilot in #2260
- Log client connect/disconnect events in sshecho test binary by @Copilot in #2257
- Remove legacy reverse_shell and reverse_shell_repl tomes by @Copilot in #2261
- Add portal open/close logging with beacon and host IDs by @Copilot in #2262
- Add
include_envkwarg toprocess.list()by @Copilot in #2263 - Add ctrl+[0-9] tab switching hotkeys to ShellV2 by @Copilot in #2264
- Focus PTYTerminal on creation from ShellV2 menu by @Copilot in #2265
- Add mobile-only "Send Ctrl + C" to shellv2 ellipsis menu by @Copilot in #2266
- Revamp
helpmeta command output for new user onboarding by @Copilot in #2267 - Add host subscription mutations and urgent notifications for subscribers by @Copilot in #2268
- Fix shellv2 SSH connection modal button colors for dark background by @Copilot in #2269
- Use context.Background() for sendPortalClose in CreatePortal by @Copilot in #2270
- rebuild by @KCarretto in #2271
- Remove PTY terminal focus calls causing terminal issues by @Copilot in #2272
- Set TERM env var for spawned PTY sessions by @Copilot in #2273
- Add host subscription toggle button to host-details page by @Copilot in #2274
- Add "Send Ctrl + R" button to shell ellipsis menu (mobile only) by @Copilot in #2275
- Add urgent notification toasts and browser system notifications by @Copilot in #2276
- Update shellv2 help message with example usage and fix alignment by @Copilot in #2277
- Add scheduler package with database/sql-style driver registration by @Copilot in #2278
- feat: HOST_ACCESS_LOST event via scheduler with urgent notifications by @Copilot in #2279
- Refactor host-lost check from per-beacon scheduling to recurring poll by @Copilot in #2280
- fix: use OrderedReader/OrderedWriter for PTY websocket sequencing by @Copilot in #2281
- Fix REPL not reverting to non-interactive mode after portal close by @Copilot in #2282
- Fix GCP Cloud Scheduler job creation failure and improve scheduler logging by @Copilot in #2283
- Fix notification bell toggle — clicking bell while popover is open now closes it by @Copilot in #2284
- Add admin-only
deleteAllNotificationsmutation by @Copilot in #2285 - Add JWT authentication to host-check scheduled job by @Copilot in #2287
- Fix system notifications for urgent alerts by requesting permission on user gesture by @Copilot in #2288
- fix: PTY seq_id off-by-one causes OrderedReader stale timeout by @Copilot in #2289
- Fix HOST_ACCESS_RECOVERED notification priority for non-subscribers by @Copilot in #2286
- Print string values directly in imix shell REPL by @Copilot in #2290
- Revert PTY ordering PRs #2281/#2289, fix with seq_id deduplication by @Copilot in #2291
- MCP: migrate to tavern backend by @Copilot in #2251
- Fix notifications UI: URGENT tab filtering, remove broken OS notifications, standardize toasts by @Copilot in #2292
- fix: remove PTY output deduplication that incorrectly drops valid motes by @Copilot in #2293
- Add system-level browser notifications for URGENT alerts by @Copilot in #2294
- Enable Cloud Scheduler API and replace Admin role with least-privilege custom IAM role by @Copilot in #2295
- Route system notifications through a service worker to deduplicate across tabs by @Copilot in #2296
- rebuild by @KCarretto in #2297
- Fix notification click URL duplication by @Copilot in #2298
- Fix urgent notifications re-firing on page refresh; mark as read on toast click by @Copilot in #2299
- Mock NotificationBell in ShellHeader tests to fix missing ApolloProvider by @Copilot in #2301
- Refactor e2e REPL test to use shellv2 page by @Copilot in #2302
- release v0.4.0 by @KCarretto in #2300
New Contributors
Full Changelog: v0.3.3...v0.4.0