Skip to content

Commit 86f735d

Browse files
security: scrub committed secrets/PII/internal data from working tree
Adversarial fresh-eye review found sensitive + irrelevant data committed. This clears it from HEAD (history rewrite follows separately): - CRITICAL: redact the live 12-word MNEMONIC in docs/archive/HANDOFF-2026-04-11.md - HIGH: drop hardcoded operator wallet default in scripts/audit-rpc-endpoints.mjs (now requires the address as an explicit argv) - PII: remove operator email + 'operator-role' descriptor from CLAUDE.md - replace real node addresses + monikers with synthetic examples in docs/BUILD-ON-ME.md, easy.js, docs/archive/HANDOFF-2026-04-11.md - replace real Tor-relay IP with an RFC5737 doc IP in docs/CLI.md - packaging: stop shipping docs/archive/ + memory/ to npm (files: docs/ -> docs/*.md; .npmignore additions); add the runtime-required about-modal.js + logo.jpg to the npm files allowlist (were referenced by live/public/index but never published) - untrack internal memory/handoff-node-tester.md; gitignore memory/ No functional code paths touched; full test suite green (188+ across 17 files).
1 parent 5521000 commit 86f735d

10 files changed

Lines changed: 25 additions & 243 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ scripts/research/
3333
# Internal dev files (session handoff, internal suggestions)
3434
HANDOFF.md
3535
suggestions/
36+
memory/
3637

3738
# C# bridge build artifacts
3839
csharp-bridge/bin/

.npmignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ results/
55
HANDOFF.md
66
suggestions/
77

8+
# Internal/stale docs — never ship to npm consumers (historical session
9+
# handoffs + internal audits; not consumer documentation)
10+
docs/archive/
11+
memory/
12+
813
# Build artifacts
914
csharp-bridge/obj/
1015
csharp-bridge/bin/

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Sentinel Node Tester — Project Instructions
22

3-
> **New Claude session: read this file first, then `memory/handoff-node-tester.md` (current state), then `ARCH.md` (module map). Stop there.** Everything under `docs/` is reference material — open only when the task needs it. Files in `docs/archive/` are historical and may contradict current code; treat them as read-only context, never as source of truth. The user is `the operator`; the tester is their primary network audit instrument.
3+
> **New Claude session: read this file first, then `memory/handoff-node-tester.md` (current state), then `ARCH.md` (module map). Stop there.** Everything under `docs/` is reference material — open only when the task needs it. Files in `docs/archive/` are historical and may contradict current code; treat them as read-only context, never as source of truth. The user is the operator; the tester is their primary network audit instrument.
44
55
## What this is
66
Standalone tool for stress-testing every node on the Sentinel chain. Runs sessions, measures speed/latency, persists results in `audit.db` (SQLite). Type 1 deployment (Node.js server + browser dashboard) per global CLAUDE.md categorization. Published to npm as `sentinel-node-tester`. Canonical repo: `Sentinel-Bluebuilder/sentinel-node-tester` (renamed from `Sentinel-Bluebuilder` on 2026-04-30 — old URLs auto-redirect but always use the new name in new code/docs).

docs/BUILD-ON-ME.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,17 +245,17 @@ volatile bool _stopRequested;
245245

246246
### WireGuard PASS
247247
```json
248-
{"timestamp":"2026-03-24T01:15:04Z","address":"sentnode1redactedxxxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"WireGuard","moniker":"example-node-01","country":"Australia","countryCode":"AU","city":"Sydney","peers":8,"actualMbps":45.2,"speedMethod":"multi-request","googleAccessible":true,"googleLatencyMs":145,"baselineAtTest":120.5,"pass10mbps":true,"pass15mbps":true,"error":null}
248+
{"timestamp":"2026-03-24T01:15:04Z","address":"sentnode1example0001xxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"WireGuard","moniker":"example-node-01","country":"Australia","countryCode":"AU","city":"Sydney","peers":8,"actualMbps":45.2,"speedMethod":"multi-request","googleAccessible":true,"googleLatencyMs":145,"baselineAtTest":120.5,"pass10mbps":true,"pass15mbps":true,"error":null}
249249
```
250250

251251
### V2Ray PASS
252252
```json
253-
{"timestamp":"2026-03-24T02:31:48Z","address":"sentnode1redactedxxxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"V2Ray","moniker":"example-node-02","country":"Chile","countryCode":"CL","city":"","peers":1,"actualMbps":12.8,"speedMethod":"multi-request","googleAccessible":true,"googleLatencyMs":230,"diag":{"v2rayTransport":"grpc","v2raySecurity":"none","v2rayPort":55215,"clockDriftSec":-1},"error":null}
253+
{"timestamp":"2026-03-24T02:31:48Z","address":"sentnode1example0002xxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"V2Ray","moniker":"example-node-02","country":"Chile","countryCode":"CL","city":"","peers":1,"actualMbps":12.8,"speedMethod":"multi-request","googleAccessible":true,"googleLatencyMs":230,"diag":{"v2rayTransport":"grpc","v2raySecurity":"none","v2rayPort":55215,"clockDriftSec":-1},"error":null}
254254
```
255255

256256
### V2Ray FAIL
257257
```json
258-
{"timestamp":"2026-03-24T00:50:04Z","address":"sentnode1redactedxxxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"V2Ray","moniker":"example-node-03","country":"Bahrain","countryCode":"BH","city":"","peers":8,"actualMbps":null,"googleAccessible":false,"error":"All V2Ray transports failed","diag":{"clockDriftSec":245,"v2rayMetadataCount":2}}
258+
{"timestamp":"2026-03-24T00:50:04Z","address":"sentnode1example0003xxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"V2Ray","moniker":"example-node-03","country":"Bahrain","countryCode":"BH","city":"","peers":8,"actualMbps":null,"googleAccessible":false,"error":"All V2Ray transports failed","diag":{"clockDriftSec":245,"v2rayMetadataCount":2}}
259259
```
260260

261261
---

docs/CLI.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ sentinel-audit nodes --country DE --type wireguard --limit 5 --pretty
132132
{
133133
"address": "sentnode1abc123def456ghi789jkl012mno345pqr678stu",
134134
"moniker": "de-node-01",
135-
"remoteUrl": "https://198.51.100.1:8080",
136-
"remoteAddrs": ["198.51.100.1:8080"],
135+
"remoteUrl": "https://198.51.100.42:8080",
136+
"remoteAddrs": ["198.51.100.42:8080"],
137137
"country": "Germany",
138138
"countryCode": "DE",
139139
"city": "Frankfurt",
@@ -173,7 +173,7 @@ sentinel-audit node sentnode1abc123def456ghi789jkl012mno345pqr678stu --pretty
173173
{
174174
"address": "sentnode1abc123def456ghi789jkl012mno345pqr678stu",
175175
"moniker": "de-node-01",
176-
"remoteUrl": "https://198.51.100.1:8080",
176+
"remoteUrl": "https://198.51.100.42:8080",
177177
"type": "wireguard",
178178
"peers": 3,
179179
"bandwidth": {

docs/archive/HANDOFF-2026-04-11.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ sentinel-node-tester/
8888

8989
## Environment (.env)
9090
```
91-
MNEMONIC=<redacted-mnemonic>
91+
MNEMONIC=<your-12-word-mnemonic-here>
9292
RPC=https://rpc.sentinel.co:443
9393
DENOM=udvpn
9494
GAS_PRICE=0.2udvpn
@@ -365,8 +365,8 @@ Reuse if session exists for node AND (gigabytes=0 OR consumed < allocated).
365365

366366
## Known Broken Nodes
367367
Skip list in `test-v2ray.js` BROKEN_NODES Set:
368-
- `sentnode1redactedxxxxxxxxxxxxxxxxxxxxxxxxxxxx` — nil UUID state bug on node
369-
- `sentnode1redactedxxxxxxxxxxxxxxxxxxxxxxxxxxxx` (us04.quinz.top) — handshake OK but proxy always fails
368+
- `sentnode1example0001xxxxxxxxxxxxxxxxxxxxxxxxxxx` — nil UUID state bug on node
369+
- `sentnode1example0002xxxxxxxxxxxxxxxxxxxxxxxxxxx` (example-host) — handshake OK but proxy always fails
370370

371371
---
372372

easy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export async function getNodes(opts = {}) {
110110
* @example
111111
* const result = await testOne({
112112
* mnemonic: 'your twelve words...',
113-
* node: 'sentnode1redactedxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
113+
* node: 'sentnode1abc123def456ghi789jkl012mno345pqr678stu',
114114
* });
115115
* console.log(result.pass ? `PASS: ${result.speed} Mbps` : `FAIL: ${result.error}`);
116116
*/

0 commit comments

Comments
 (0)