Skip to content

Dev#2

Merged
vsilent merged 28 commits intotrydirect:mainfrom
vsilent:dev
Mar 31, 2026
Merged

Dev#2
vsilent merged 28 commits intotrydirect:mainfrom
vsilent:dev

Conversation

@vsilent
Copy link
Copy Markdown

@vsilent vsilent commented Mar 31, 2026

No description provided.

vsilent and others added 28 commits March 31, 2026 10:53
- Replace deprecated actions-rs/* with dtolnay/rust-toolchain + cargo commands
- Fix broken rustfmt/clippy steps (were using wrong action parameters)
- Use Swatinem/rust-cache for simpler, faster dependency caching
- Use ubuntu-latest runners instead of self-hosted
- Add Docker Buildx for improved image builds
- Trigger on PRs to main and dev (pushes :latest on every build)
- Use npm ci for deterministic frontend installs
- Add artifact retention-days: 1 to save storage

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- reqwest: use rustls-tls instead of native-tls (no OpenSSL dependency)
- release.yml: build x86_64/aarch64-unknown-linux-musl (static binaries)
- Dockerfile: update debian:buster-slim → bookworm-slim, drop libpq-dev

Statically linked binaries work on any Linux distro including Alpine.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add .githooks/pre-commit that runs:
- cargo fmt --all --check (strict, blocks commit)
- cargo clippy (shows warnings, blocks on compile errors)

Enable with: git config core.hooksPath .githooks

Also applies cargo fmt --all to fix existing formatting across codebase.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove unused imports across 17 files
- Prefix unused variables/fields with underscore
- Implement Default trait instead of inherent default() methods (dedup, threat_scorer)
- Implement FromStr trait instead of inherent from_str() methods (AiProvider, LogSourceType)
- Replace Iterator::last() with next_back() on DoubleEndedIterator
- Derive Default for EbpfLoader instead of manual impl
- Remove useless .into() conversion in database connection
- Wrap too-many-arguments functions with param structs (SniffArgs, CreateLogSummaryParams)
- Replace filter_map(Some(...)) with map(...) in build_readers
- Replace manual find loop with Iterator::find
- Collapse nested if-let in signature_matcher
- Gate program_to_tracepoint with cfg for Linux+ebpf only
- Move api module to library crate, fix binary to import from library
- Fix pre-existing test_get_alerts_empty to init database
- Use std::io::Error::other() instead of Error::new(Other, e)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove unused imports in nftables.rs, quarantine.rs
- Replace inherent to_string() with Display trait for NfTable
- Remove needless borrows in .args() calls (iptables.rs, nftables.rs)
- Prefix unused variables with underscore (response.rs)
- Add error() getter to ResponseLog

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
NfTable implements Display, so format! uses it directly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove unused imports (AlertSeverity, AlertType, anyhow::Result, SyscallEvent, SyscallType)
- Prefix unused variables with underscore
- Fix EbpfLoader::default() test (returns value, not Result)
- Fix KernelVersionTooLow fields to use String not integer literals
- Remove unnecessary mut on enricher variables

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- remove useless UID >= 0 assertion (u32)
- replace invalid u16 port overflow test with type-safety test
- remove redundant serde_json import
- fix cfg-sensitive unused vars in enrichment tests
- clean monitor test vars in syscall monitor unit tests
- remove unused TestRule in rules engine tests
- use from_ref instead of cloned slice in sniff discovery test

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use npm ci only when web/package-lock.json exists to avoid EUSAGE in CI.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix CI frontend build fallback to default ./src entry by defining explicit
entry ./src/index.tsx and html template.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Correct component imports from ../../services|types to ../services|types
- Fix react-bootstrap Alert alias in ContainerList
- Add explicit typed mappings for alert/container badge variants
- Type websocket stats callback payload
- Import fireEvent in ThreatMap tests
- Improve WebSocket test mock shape to satisfy TS
- Expose ApiService.api for existing tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace misleading "Web Dashboard" startup line
- Show user-facing API URL and map 0.0.0.0 -> 127.0.0.1 for display

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Inject APP_PORT and REACT_APP_API_PORT into webpack env
- API service default: http://localhost:${port}/api (port from env, fallback 5555)
- WS service default: ws://localhost:${port}/ws (port from env, fallback 5555)

Fixes frontend trying to connect to hardcoded port 5000.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Handle both snake_case and camelCase fields for containers API responses,
with safe defaults for missing nested fields (securityStatus/networkActivity).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use /threats/statistics to match backend routes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Handle absent byType/bySeverity in API responses to prevent runtime
Object.entries(undefined) crashes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Use style-loader + css-loader for .css files (fix dashboard styling)
- Add css/style loader deps to web package
- WebSocket service now falls back to REST-only mode when /ws is unavailable
  to avoid noisy reconnect/error spam in dev

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Introduce Sidebar component with Overview/Threats/Alerts/Containers links
- Update App layout to include sidebar + main dashboard content
- Add section anchors in Dashboard for sidebar navigation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Move logo into sidebar at 39x39 (30% larger than 30x30)\n- Remove "Stackdog Security Dashboard" header text\n- Add top bar with right-aligned actions menu button (...)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vsilent vsilent merged commit 8bf0648 into trydirect:main Mar 31, 2026
4 of 7 checks passed
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