Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
ad1be63
Add design spec for check-domains pre-commit linter
aram356 May 18, 2026
81d216d
Revise check-domains spec after first review
aram356 May 18, 2026
cb89715
Pivot check-domains spec to Rust + gitoxide
aram356 May 18, 2026
19c25ad
Fix check-domains spec issues from fourth review
aram356 May 18, 2026
fc010f4
Move check-domains commands under ts dev subcommand
aram356 May 18, 2026
89af231
Re-add .md to scanned extensions with REFERENCE_HOSTS allowlist
aram356 May 18, 2026
7295bc1
Address fifth-review findings (1-9); reaffirm dev parent
aram356 May 18, 2026
7f9bcb8
Address sixth-review findings; add Implementation Readiness section
aram356 May 18, 2026
6632b5b
Address seventh-review findings (gix versions, resolved/open split, s…
aram356 May 18, 2026
48391a5
Address eighth-review findings
aram356 May 18, 2026
0388c21
Apply ninth-review patches
aram356 May 18, 2026
8e72bc3
Address ninth-review findings
aram356 May 18, 2026
a3f9092
Address tenth-review findings
aram356 May 18, 2026
df8a74f
Address eleventh-review findings
aram356 May 19, 2026
0da322f
Add implementation plan for ts dev lint domains + install-hooks
aram356 May 19, 2026
00dbb49
Address twelfth-review findings on the plan doc
aram356 May 19, 2026
de04b9c
Address thirteenth-review findings on the plan doc
aram356 May 19, 2026
a5cf471
Address fourteenth-review findings on the plan doc
aram356 May 19, 2026
ad54d6d
Address fifteenth-review findings + expand scanned-extensions scope
aram356 May 19, 2026
69f2733
Narrow --verbose doc text to match implementation
aram356 May 19, 2026
fb46e31
Refactor ts dev into dev/ module with serve.rs
aram356 May 19, 2026
38e3f4e
Promote ts dev to subcommand group with serve as the first child
aram356 May 19, 2026
91f0860
Add gix + gix-config deps for ts dev lint domains spike
aram356 May 19, 2026
675b4a5
Spike: staged-diff gix entry points pinned (gix-only, no shell)
aram356 May 19, 2026
4a8e6d5
Spike: merge-base and tree-vs-tree gix entry points pinned
aram356 May 19, 2026
f83ed2e
Spike: gix-config File read/write entry points pinned
aram356 May 20, 2026
a3adad1
Reflect gix feasibility spike outcomes in the spec
aram356 May 20, 2026
7b93771
Fix clippy warnings in the gix spike tests
aram356 May 20, 2026
4ae9a98
Scaffold dev/lint/domains.rs with allowlist constants
aram356 May 20, 2026
6bc2f23
Add normalise_host: bracket-strip + lowercase
aram356 May 21, 2026
386cdb6
Add is_allowed implementing the three-array check
aram356 May 21, 2026
03c13cb
Add extract_absolute_hosts using the no-lookahead regex
aram356 May 21, 2026
bb3d241
Add extract_protocol_relative_hosts with boundary class
aram356 May 21, 2026
47b7c1f
Add parse_suppression_marker with bypass-resistant anchor
aram356 May 21, 2026
b693859
Add scan_line — the pure-function core of the linter
aram356 May 21, 2026
b258857
Add dev/lint/test_support: shared git fixtures for module tests
aram356 May 21, 2026
546b372
Add staged_added_lines collector + DiffLine and diff helpers
aram356 May 21, 2026
ff65cba
Add changed_vs_added_lines collector + base-ref resolution
aram356 May 21, 2026
b0672a3
Add full_repo_lines collector with edge-case handling
aram356 May 21, 2026
492b45a
Implement path_is_scanned extension/path-exclusion filter
aram356 May 21, 2026
142ffdf
Add explicit_path_lines with soft/hard error split
aram356 May 21, 2026
2d31c2f
Hoist imports in domains.rs; drop inline fully-qualified paths
aram356 May 21, 2026
f6ed224
Add CliError::EnvironmentError and ViolationsFound; map exit codes
aram356 May 21, 2026
b5640b9
Wire ts dev lint domains clap surface + implement domains::run
aram356 May 22, 2026
a4bbdcd
Add ts dev install-hooks
aram356 May 22, 2026
f188af1
Add assert_cmd + predicates dev-dependencies for Phase 7 E2E tests
aram356 May 22, 2026
d2d52aa
Add end-to-end CLI tests for ts dev lint domains
aram356 May 22, 2026
a8bf424
Document ts dev lint domains setup in CONTRIBUTING.md and README
aram356 May 22, 2026
e90b4e7
Apply rustfmt and prettier formatting
aram356 May 22, 2026
e0c4c59
Fix rename handling in staged/changed-vs collectors
aram356 May 24, 2026
e3e7557
Tighten linter contract: dedup, IPv6 markers, JSON shape, error handling
aram356 May 24, 2026
b228ef6
Delete gix feasibility spike tests now subsumed by domain coverage
aram356 May 24, 2026
9b3f9b4
Realign spec and plan with implementation; add spec case 28 E2E
aram356 May 24, 2026
7b06e65
Close userinfo, self-exclusion, backup-collision, and E2E gaps
aram356 May 24, 2026
d1c70e9
Sync spec/plan with userinfo regex; expand E2E case coverage
aram356 May 24, 2026
35aac98
Document `//email@domain` as an accepted false positive
aram356 May 24, 2026
fcff9ed
Strike stale html/css/Dockerfile exclusion claims from spec/plan
aram356 May 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- [Writing Commit Messages](#memo-writing-commit-messages)
- [Code Review](#white_check_mark-code-review)
- [Coding Style](#nail_care-coding-style)
- [Local Setup](#wrench-local-setup)
- [Credits](#pray-credits)

## :repeat: Submitting Pull Requests
Expand Down Expand Up @@ -134,6 +135,37 @@ We use [error-stack](https://docs.rs/error-stack/latest/error_stack/) for error
3. **Attachments**: Use `.attach_printable("additional info")` to add debugging context without changing the error variant.
4. **Consistency**: Avoid returning bare `TrustedServerError` unless absolutely necessary (e.g. implementing traits). Wrap them in `Report::new()`.

## :wrench: Local Setup

### Pre-commit URL-host linter (`ts dev lint domains`)

`ts dev lint domains` checks that source, config, and documentation
files only reference `example.com` (and other RFC 2606 reserved
names), loopback addresses, vetted integration-proxy endpoints, or a
small set of well-known documentation hosts. It is intended to run
as a pre-commit hook so accidental third-party hosts never land in a
commit.

One-time setup after cloning:

```bash
cargo install_cli # builds and installs the `ts` binary
ts dev install-hooks # installs the pre-commit hook into .githooks/
```

After that, every `git commit` runs the linter against staged
changes. `ts dev install-hooks` writes `.githooks/pre-commit` and
sets `core.hooksPath`; if you already have a `core.hooksPath`
(husky, lefthook, etc.) it refuses to overwrite it without
`--force`. To bypass the hook for a single commit, use
`git commit --no-verify`.

To audit the whole repository at once: `ts dev lint domains` (no
arguments). To add a newly-vetted integration proxy to the
allowlist, edit `EXACT_HOSTS` in
`crates/trusted-server-cli/src/dev/lint/domains.rs`. The full design
is in `docs/superpowers/specs/2026-05-18-check-domains-design.md`.

## :pray: Credits

- https://github.com/jessesquires/.github/blob/main/CONTRIBUTING.md
Expand Down
Loading
Loading