Skip to content

Add Team features: approval workflows, webhooks, sessions, custom rules, DLP, audit#49

Merged
sheeki03 merged 11 commits intomainfrom
feat/part9-team-features
Feb 24, 2026
Merged

Add Team features: approval workflows, webhooks, sessions, custom rules, DLP, audit#49
sheeki03 merged 11 commits intomainfrom
feat/part9-team-features

Conversation

@sheeki03
Copy link
Owner

@sheeki03 sheeki03 commented Feb 24, 2026

Summary

  • Add approval workflow system (Team tier)
  • Add webhook dispatch for findings (Slack/HTTP)
  • Add session tracking
  • Add MITRE ATT&CK mapping
  • Add custom YAML detection rules
  • Add DLP redaction for sensitive data in logs
  • Add audit aggregation and remote upload
  • Add Pro enrichments, rendered scanning, cloaking, checkpoints, paranoia tiers (Part 8)
  • Fix review findings: time_range correctness, PowerShell catch block, error handling, clippy lints
  • Includes Parts 1-8 and bug fixes

Test plan

  • All existing tests pass

🤖 Generated with Claude Code

Note

Adjust blank line formatting across Team features code related to approval workflows, webhooks, sessions, custom rules, DLP, and audit

Normalize whitespace by modifying blank lines; no functional code changes are introduced.

📍Where to Start

Start with the root-level formatting changes in README.md or the primary Team module entry file, if present, to see whitespace adjustments.

Macroscope summarized 1ae729f.

sheeki03 and others added 7 commits February 21, 2026 12:40
…error handling, clippy lints

- Fix audit_aggregator compute_stats time_range to use min_by/max_by instead of first/last
- Fix PowerShell approval catch block: log error, fail closed, reset validKeys
- Sync powershell-hook.ps1 to embedded assets
- Improve error handling in audit.rs, checkpoint.rs, mcp/dispatcher.rs, webhook.rs
- Improve error reporting in check.rs, run.rs, scan.rs, score.rs
- Fix uninlined_format_args clippy lints in dispatcher.rs, redact.rs, webhook.rs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
push_segment() incorrectly treated VAR=VALUE as the command token. Now
skips leading environment variable assignments to find the real command.
Adds pub is_env_assignment() helper for use by engine bypass detection.

Fixes: TIRITH=0 curl evil.com now correctly identifies curl as command.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bypass detection now finds TIRITH=0 in inline env prefixes and env
wrappers (env -i TIRITH=0, /usr/bin/env TIRITH=0), not just process
env. Handles -u value-taking flag and -- option terminator.

Self-invocation guard allows tirith's own commands (tirith diff, etc.)
in single-segment inputs. Resolves through env/command/time wrappers.
Uses canonicalized path comparison for path-form invocations with
fallback to literal-only matching when canonicalization fails.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add command-aware output-flag skipping for curl (-o/--output) and wget
(-O/-OFILE/--output-document). Extract URLs from command+args instead
of raw segment text to avoid matching URLs in env-prefix values.

Add conservative non-TLD file extensions (.png, .jpg, .mp4, etc.) to
schemeless host exclusion list. Fixes issue #33.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…09 ignore

- Run cargo fmt --all
- Fix clippy lints: redundant closures, uninlined_format_args, approx_constant
- Pin time crate to 0.3.37 (0.3.47 uses edition2024, incompatible with MSRV 1.83)
- Add .cargo/audit.toml ignoring RUSTSEC-2026-0009 (time crate DoS,
  not exploitable in our usage, fix requires Rust 1.88)
- Add same ignore to deny.toml
sheeki03 and others added 2 commits February 24, 2026 22:57
- Merge origin/main (glibc build fix)
- Fix single & segment boundary in split_raw_words (security)
- Use exact match == TIRITH=0 (prevents false bypass)
- Skip flags in resolve_command_wrapper
- Remove dead code in is_tirith_command
- Remove quote-stripping from is_env_assignment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolved 18 conflicts by keeping main's improved code. Replaced
engine.rs with main's version to fix duplicate function definitions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sheeki03 sheeki03 merged commit 5d6432c into main Feb 24, 2026
9 checks passed
@sheeki03 sheeki03 deleted the feat/part9-team-features branch February 24, 2026 21:58
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