4 Commits

Author SHA1 Message Date
Riccardo Schirone f6bb0e9aca Add E2E lifecycle test and CI workflow (#43)
* Add E2E lifecycle test for create/destroy workflow

  Bash script that exercises the full droplet lifecycle: create (no
  Tailscale), verify SSH config, run commands over SSH, destroy, and
  verify cleanup

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: dm <alexis.challande@trailofbits.com>
2026-03-24 14:57:58 +01:00
dm 5982a3b55e Simplify CLAUDE.md project structure to directories only (#42)
Ran /claude-md-management:revise-claude-md to audit CLAUDE.md against
the actual codebase. The file-level tree was stale (missing lock.py,
ui.py, version_check.py and several test files). Replace with a
directory-only layout that won't drift when files are added.

Also document the --cov-fail-under=29 threshold from pyproject.toml.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-23 10:53:44 +01:00
Riccardo Schirone eae5bc1cf4 Generalize email domain handling in documentation and tests (#27)
* Generalize email domain handling in documentation and tests

- Add .worktrees/ to .gitignore for git worktree support
- Update _sanitize_email_for_username docstring to be domain-agnostic
- Change CLAUDE.md example from trailofbits.com to example.com
- Add tests for google.com, gmail.com, corporate, and plus addressing

The code already supported any email domain; this updates docs and
tests to reflect that capability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Address PR review comments

- Remove redundant trailofbits.com regex, simplify to split("@")[0]
- Rename test to clarify backwards compatibility intent

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Dan Guido <dan@trailofbits.com>
2026-02-09 19:26:59 +01:00
Dan Guido bc36073036 Initial commit 2026-01-29 21:53:58 -05:00