clew-code 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +292 -299
- package/dist/main.js +2745 -2869
- package/docs/architecture.html +148 -145
- package/docs/architecture.th.html +79 -78
- package/docs/clew-code-architecture.html +1125 -0
- package/docs/commands.html +224 -223
- package/docs/commands.th.html +131 -130
- package/docs/configuration.html +147 -145
- package/docs/configuration.th.html +108 -106
- package/docs/css/styles.css +48 -42
- package/docs/daemon.html +129 -128
- package/docs/daemon.th.html +73 -72
- package/docs/features/bridge-mode.html +99 -98
- package/docs/features/bridge-mode.th.html +90 -89
- package/docs/features/evals.html +182 -181
- package/docs/features/evals.th.html +90 -89
- package/docs/features/peer.html +178 -177
- package/docs/features/searxng-search.html +151 -150
- package/docs/features/searxng-search.th.html +95 -94
- package/docs/features/sentry-setup.html +157 -156
- package/docs/features/sentry-setup.th.html +97 -96
- package/docs/index.html +299 -298
- package/docs/index.th.html +292 -290
- package/docs/installation.html +105 -103
- package/docs/installation.th.html +105 -103
- package/docs/internals/growthbook-ab-testing.html +113 -112
- package/docs/internals/growthbook-ab-testing.th.html +81 -80
- package/docs/internals/hidden-features.html +149 -147
- package/docs/internals/hidden-features.th.html +109 -107
- package/docs/js/main.js +83 -3
- package/docs/loop.html +181 -180
- package/docs/loop.th.html +227 -226
- package/docs/mcp.html +247 -246
- package/docs/mcp.th.html +207 -206
- package/docs/models.html +111 -110
- package/docs/models.th.html +61 -60
- package/docs/peer.html +236 -235
- package/docs/peer.th.html +280 -279
- package/docs/permission-model.html +102 -101
- package/docs/permission-model.th.html +67 -66
- package/docs/plugins.html +102 -101
- package/docs/plugins.th.html +79 -78
- package/docs/providers.html +126 -117
- package/docs/providers.th.html +80 -78
- package/docs/quick-start.html +93 -92
- package/docs/quick-start.th.html +40 -39
- package/docs/research-memory.html +82 -79
- package/docs/research-memory.th.html +72 -71
- package/docs/skills.html +117 -116
- package/docs/skills.th.html +90 -89
- package/docs/tools.html +170 -169
- package/docs/tools.th.html +84 -83
- package/docs/troubleshooting.html +106 -105
- package/docs/troubleshooting.th.html +85 -84
- package/package.json +164 -162
- package/docs/taste.html +0 -436
- package/docs/taste.th.html +0 -236
|
@@ -1,156 +1,157 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Sentry Error Reporting
|
|
7
|
-
<meta name="description" content="Opt-in Sentry crash/error telemetry for Clew
|
|
8
|
-
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
-
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
-
<link rel="stylesheet" href="../css/styles.css">
|
|
12
|
-
<link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<header class="header">
|
|
16
|
-
<div class="header-inner">
|
|
17
|
-
<a href="../index.html" class="logo">
|
|
18
|
-
<span>Clew Code</span>
|
|
19
|
-
</a>
|
|
20
|
-
<nav class="header-nav">
|
|
21
|
-
<a href="../index.html">Home</a>
|
|
22
|
-
<a href="../index.html#features">Features</a>
|
|
23
|
-
<a href="../index.html#commands">Commands</a>
|
|
24
|
-
<a href="../quick-start.html" class="active">Docs</a>
|
|
25
|
-
<a href="https://github.com/
|
|
26
|
-
<div class="lang-wrap">
|
|
27
|
-
<button class="lang-btn"
|
|
28
|
-
<div class="lang-menu">
|
|
29
|
-
<a href="../../readme/README.zh.md"
|
|
30
|
-
<a href="../../readme/README.th.md"
|
|
31
|
-
<a href="../../readme/README.ja.md"
|
|
32
|
-
<a href="../../readme/README.ko.md"
|
|
33
|
-
<a href="../../readme/README.es.md">
|
|
34
|
-
<a href="../../readme/README.fr.md">
|
|
35
|
-
<a href="../../readme/README.de.md">Deutsch</a>
|
|
36
|
-
<a href="../../readme/README.pt.md">
|
|
37
|
-
<a href="../../readme/README.vi.md">
|
|
38
|
-
<a href="../../readme/README.id.md">Bahasa Indonesia</a>
|
|
39
|
-
<a href="../../readme/README.ru.md"
|
|
40
|
-
<a href="../../readme/README.hi.md"
|
|
41
|
-
<a href="../../README.md">English</a>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
</nav>
|
|
45
|
-
<button class="menu-btn" id="menuToggle" aria-label="Toggle navigation"><span></span><span></span><span></span></button>
|
|
46
|
-
</div>
|
|
47
|
-
</header>
|
|
48
|
-
<div class="app">
|
|
49
|
-
<aside class="sidebar" id="sidebar"></aside>
|
|
50
|
-
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
51
|
-
<div class="content-wrap">
|
|
52
|
-
<main class="content">
|
|
53
|
-
<div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><a href="../index.html#features">Features</a><span class="sep">/</span><span>Sentry Setup</span></div>
|
|
54
|
-
<h1>Sentry Error Reporting</h1>
|
|
55
|
-
<p class="section-subtitle">Optional, opt-in crash and error telemetry
|
|
56
|
-
|
|
57
|
-
<div class="callout callout-tip">
|
|
58
|
-
<strong>TL;DR</strong>
|
|
59
|
-
<code>SENTRY_DSN=https://key@sentry.io/123 claude</code>
|
|
60
|
-
</div>
|
|
61
|
-
|
|
62
|
-
<h2>Quick Start</h2>
|
|
63
|
-
<h3>Self-hosted Sentry</h3>
|
|
64
|
-
<pre><code>SENTRY_DSN=https://public_key@your-sentry.example.com/123 claude</code></pre>
|
|
65
|
-
|
|
66
|
-
<h3>Sentry Cloud</h3>
|
|
67
|
-
<pre><code>SENTRY_DSN=https://public_key@o123456.ingest.sentry.io/789 claude</code></pre>
|
|
68
|
-
|
|
69
|
-
<h3>Disable (default)</h3>
|
|
70
|
-
<pre><code>clew</code></pre>
|
|
71
|
-
|
|
72
|
-
<h2>Environment Variables</h2>
|
|
73
|
-
<table>
|
|
74
|
-
<tr><th>Variable</th><th>Required</th><th>Default</th><th>Description</th></tr>
|
|
75
|
-
<tr><td><code>SENTRY_DSN</code></td><td><strong>yes</strong></td><td
|
|
76
|
-
<tr><td><code>SENTRY_ENVIRONMENT</code></td><td>no</td><td><code>NODE_ENV</code> or <code>production</code></td><td>Environment tag in Sentry dashboard</td></tr>
|
|
77
|
-
<tr><td><code>SENTRY_RELEASE</code></td><td>no</td><td>auto from package.json</td><td>Release version tag</td></tr>
|
|
78
|
-
<tr><td><code>SENTRY_SAMPLE_RATE</code></td><td>no</td><td><code>1.0</code></td><td>Error sample rate (0.0
|
|
79
|
-
</table>
|
|
80
|
-
|
|
81
|
-
<h2>What Gets Sent</h2>
|
|
82
|
-
<p>Only error metadata
|
|
83
|
-
<ul>
|
|
84
|
-
<li>Error name, message, and stack trace (without local variable values)</li>
|
|
85
|
-
<li>Runtime info: OS platform, Node/Bun version</li>
|
|
86
|
-
<li>Mode: REPL, non-interactive, MCP server</li>
|
|
87
|
-
<li>Provider and model name (when applicable)</li>
|
|
88
|
-
<li>Version and release tag</li>
|
|
89
|
-
</ul>
|
|
90
|
-
|
|
91
|
-
<h2>What Does NOT Get Sent</h2>
|
|
92
|
-
<table>
|
|
93
|
-
<tr><th>Category</th><th>Examples</th></tr>
|
|
94
|
-
<tr><td><strong>Prompts</strong></td><td>user input, AI system prompts</td></tr>
|
|
95
|
-
<tr><td><strong>Responses</strong></td><td>model output, streaming chunks</td></tr>
|
|
96
|
-
<tr><td><strong>File content</strong></td><td>Read/Edit/Write payload, command stdout/stderr</td></tr>
|
|
97
|
-
<tr><td><strong>Credentials</strong></td><td>API keys, tokens, passwords, cookies</td></tr>
|
|
98
|
-
<tr><td><strong>Auth headers</strong></td><td>Authorization, x-api-key, Cookie, Set-Cookie</td></tr>
|
|
99
|
-
<tr><td><strong>OAuth tokens</strong></td><td>access_token, refresh_token, id_token</td></tr>
|
|
100
|
-
<tr><td><strong>Environment dump</strong></td><td>entire env block (individual vars may appear as tags)</td></tr>
|
|
101
|
-
<tr><td><strong>Local paths</strong></td><td>home directory anonymized to <code>[HOME]</code></td></tr>
|
|
102
|
-
<tr><td><strong>Breadcrumbs</strong></td><td>user actions are not tracked</td></tr>
|
|
103
|
-
<tr><td><strong>User identity</strong></td><td>user field stripped from all events</td></tr>
|
|
104
|
-
</table>
|
|
105
|
-
|
|
106
|
-
<h2>Privacy Scrubber</h2>
|
|
107
|
-
<p>Every event passes through a <code>beforeSend</code> hook that:</p>
|
|
108
|
-
<ol>
|
|
109
|
-
<li><strong>Scrubs strings</strong>
|
|
110
|
-
<li><strong>Strips stack frame variables</strong>
|
|
111
|
-
<li><strong>Removes breadcrumbs</strong>
|
|
112
|
-
<li><strong>Cleans request data</strong>
|
|
113
|
-
<li><strong>Anonymizes home directory</strong>
|
|
114
|
-
<li><strong>Drops oversized strings</strong>
|
|
115
|
-
<li><strong>Recursively scrubs nested objects</strong>
|
|
116
|
-
</ol>
|
|
117
|
-
|
|
118
|
-
<h2>Checking Status</h2>
|
|
119
|
-
<pre><code># When disabled
|
|
120
|
-
Sentry Telemetry: Disabled (set SENTRY_DSN to enable)
|
|
121
|
-
|
|
122
|
-
# When enabled
|
|
123
|
-
Sentry Telemetry: Enabled</code></pre>
|
|
124
|
-
|
|
125
|
-
<div class="callout callout-info">
|
|
126
|
-
<strong>DSN Masking</strong>
|
|
127
|
-
The DSN is masked in the UI
|
|
128
|
-
</div>
|
|
129
|
-
|
|
130
|
-
<h2>Files</h2>
|
|
131
|
-
<table>
|
|
132
|
-
<tr><th>File</th><th>Purpose</th></tr>
|
|
133
|
-
<tr><td><code>src/utils/sentry.ts</code></td><td>Core wrapper
|
|
134
|
-
<tr><td><code>src/utils/sentry.test.ts</code></td><td>Unit tests (11 tests)</td></tr>
|
|
135
|
-
<tr><td><code>src/entrypoints/init.ts</code></td><td>Calls <code>initSentry()</code> at startup</td></tr>
|
|
136
|
-
<tr><td><code>src/utils/gracefulShutdown.ts</code></td><td>Calls <code>closeSentry()</code> before exit</td></tr>
|
|
137
|
-
<tr><td><code>src/utils/log.ts</code></td><td><code>logError()</code> sends to Sentry when enabled</td></tr>
|
|
138
|
-
<tr><td><code>src/components/SentryErrorBoundary.tsx</code></td><td>React error boundary for render crashes</td></tr>
|
|
139
|
-
<tr><td><code>src/components/App.tsx</code></td><td>Wraps app tree in <code>SentryErrorBoundary</code></td></tr>
|
|
140
|
-
<tr><td><code>src/utils/doctorDiagnostic.ts</code></td><td><code>/doctor</code> Sentry status display</td></tr>
|
|
141
|
-
</table>
|
|
142
|
-
|
|
143
|
-
<footer class="footer">
|
|
144
|
-
<span>Clew Code v0.2.
|
|
145
|
-
<div class="footer-links">
|
|
146
|
-
<a href="https://github.com/
|
|
147
|
-
<a href="https://github.com/
|
|
148
|
-
</div>
|
|
149
|
-
</footer>
|
|
150
|
-
</main>
|
|
151
|
-
<nav class="toc-sidebar"></nav>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
<script src="../js/main.js"></script>
|
|
155
|
-
</body>
|
|
156
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Sentry Error Reporting — Clew</title>
|
|
7
|
+
<meta name="description" content="Opt-in Sentry crash/error telemetry for Clew — default off, privacy-first.">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="../css/styles.css">
|
|
12
|
+
<link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<header class="header">
|
|
16
|
+
<div class="header-inner">
|
|
17
|
+
<a href="../index.html" class="logo">
|
|
18
|
+
<span>Clew Code</span>
|
|
19
|
+
</a>
|
|
20
|
+
<nav class="header-nav">
|
|
21
|
+
<a href="../index.html">Home</a>
|
|
22
|
+
<a href="../index.html#features">Features</a>
|
|
23
|
+
<a href="../index.html#commands">Commands</a>
|
|
24
|
+
<a href="../quick-start.html" class="active">Docs</a>
|
|
25
|
+
<a href="https://github.com/ClewCode/ClewCode" target="_blank">GitHub</a>
|
|
26
|
+
<div class="lang-wrap">
|
|
27
|
+
<button class="lang-btn">ðŸŒ</button>
|
|
28
|
+
<div class="lang-menu">
|
|
29
|
+
<a href="../../readme/README.zh.md">䏿–‡</a>
|
|
30
|
+
<a href="../../readme/README.th.md">ไทย</a>
|
|
31
|
+
<a href="../../readme/README.ja.md">日本語</a>
|
|
32
|
+
<a href="../../readme/README.ko.md">한êµì–´</a>
|
|
33
|
+
<a href="../../readme/README.es.md">Español</a>
|
|
34
|
+
<a href="../../readme/README.fr.md">Français</a>
|
|
35
|
+
<a href="../../readme/README.de.md">Deutsch</a>
|
|
36
|
+
<a href="../../readme/README.pt.md">Português</a>
|
|
37
|
+
<a href="../../readme/README.vi.md">Tiếng Việt</a>
|
|
38
|
+
<a href="../../readme/README.id.md">Bahasa Indonesia</a>
|
|
39
|
+
<a href="../../readme/README.ru.md">РуÑÑкий</a>
|
|
40
|
+
<a href="../../readme/README.hi.md">हिनà¥à¤¦à¥€</a>
|
|
41
|
+
<a href="../../README.md">English</a>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</nav>
|
|
45
|
+
<button class="menu-btn" id="menuToggle" aria-label="Toggle navigation"><span></span><span></span><span></span></button>
|
|
46
|
+
</div>
|
|
47
|
+
</header>
|
|
48
|
+
<div class="app">
|
|
49
|
+
<aside class="sidebar" id="sidebar"></aside>
|
|
50
|
+
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
51
|
+
<div class="content-wrap">
|
|
52
|
+
<main class="content">
|
|
53
|
+
<div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><a href="../index.html#features">Features</a><span class="sep">/</span><span>Sentry Setup</span></div>
|
|
54
|
+
<h1>Sentry Error Reporting</h1>
|
|
55
|
+
<p class="section-subtitle">Optional, opt-in crash and error telemetry — <strong>completely disabled by default</strong>. No data leaves your machine unless you explicitly set <code>SENTRY_DSN</code>.</p>
|
|
56
|
+
|
|
57
|
+
<div class="callout callout-tip">
|
|
58
|
+
<strong>TL;DR</strong>
|
|
59
|
+
<code>SENTRY_DSN=https://key@sentry.io/123 claude</code> — that's it. Without it, zero network requests, zero telemetry.
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<h2>Quick Start</h2>
|
|
63
|
+
<h3>Self-hosted Sentry</h3>
|
|
64
|
+
<pre><code>SENTRY_DSN=https://public_key@your-sentry.example.com/123 claude</code></pre>
|
|
65
|
+
|
|
66
|
+
<h3>Sentry Cloud</h3>
|
|
67
|
+
<pre><code>SENTRY_DSN=https://public_key@o123456.ingest.sentry.io/789 claude</code></pre>
|
|
68
|
+
|
|
69
|
+
<h3>Disable (default)</h3>
|
|
70
|
+
<pre><code>clew</code></pre>
|
|
71
|
+
|
|
72
|
+
<h2>Environment Variables</h2>
|
|
73
|
+
<table>
|
|
74
|
+
<tr><th>Variable</th><th>Required</th><th>Default</th><th>Description</th></tr>
|
|
75
|
+
<tr><td><code>SENTRY_DSN</code></td><td><strong>yes</strong></td><td>—</td><td>Sentry DSN to enable. Without this, everything is no-op.</td></tr>
|
|
76
|
+
<tr><td><code>SENTRY_ENVIRONMENT</code></td><td>no</td><td><code>NODE_ENV</code> or <code>production</code></td><td>Environment tag in Sentry dashboard</td></tr>
|
|
77
|
+
<tr><td><code>SENTRY_RELEASE</code></td><td>no</td><td>auto from package.json</td><td>Release version tag</td></tr>
|
|
78
|
+
<tr><td><code>SENTRY_SAMPLE_RATE</code></td><td>no</td><td><code>1.0</code></td><td>Error sample rate (0.0–1.0)</td></tr>
|
|
79
|
+
</table>
|
|
80
|
+
|
|
81
|
+
<h2>What Gets Sent</h2>
|
|
82
|
+
<p>Only error metadata — <strong>never prompts, responses, file contents, or command output</strong>:</p>
|
|
83
|
+
<ul>
|
|
84
|
+
<li>Error name, message, and stack trace (without local variable values)</li>
|
|
85
|
+
<li>Runtime info: OS platform, Node/Bun version</li>
|
|
86
|
+
<li>Mode: REPL, non-interactive, MCP server</li>
|
|
87
|
+
<li>Provider and model name (when applicable)</li>
|
|
88
|
+
<li>Version and release tag</li>
|
|
89
|
+
</ul>
|
|
90
|
+
|
|
91
|
+
<h2>What Does NOT Get Sent</h2>
|
|
92
|
+
<table>
|
|
93
|
+
<tr><th>Category</th><th>Examples</th></tr>
|
|
94
|
+
<tr><td><strong>Prompts</strong></td><td>user input, AI system prompts</td></tr>
|
|
95
|
+
<tr><td><strong>Responses</strong></td><td>model output, streaming chunks</td></tr>
|
|
96
|
+
<tr><td><strong>File content</strong></td><td>Read/Edit/Write payload, command stdout/stderr</td></tr>
|
|
97
|
+
<tr><td><strong>Credentials</strong></td><td>API keys, tokens, passwords, cookies</td></tr>
|
|
98
|
+
<tr><td><strong>Auth headers</strong></td><td>Authorization, x-api-key, Cookie, Set-Cookie</td></tr>
|
|
99
|
+
<tr><td><strong>OAuth tokens</strong></td><td>access_token, refresh_token, id_token</td></tr>
|
|
100
|
+
<tr><td><strong>Environment dump</strong></td><td>entire env block (individual vars may appear as tags)</td></tr>
|
|
101
|
+
<tr><td><strong>Local paths</strong></td><td>home directory anonymized to <code>[HOME]</code></td></tr>
|
|
102
|
+
<tr><td><strong>Breadcrumbs</strong></td><td>user actions are not tracked</td></tr>
|
|
103
|
+
<tr><td><strong>User identity</strong></td><td>user field stripped from all events</td></tr>
|
|
104
|
+
</table>
|
|
105
|
+
|
|
106
|
+
<h2>Privacy Scrubber</h2>
|
|
107
|
+
<p>Every event passes through a <code>beforeSend</code> hook that:</p>
|
|
108
|
+
<ol>
|
|
109
|
+
<li><strong>Scrubs strings</strong> — removes API key patterns (<code>sk-*</code>, <code>Bearer</code> tokens), auth headers, cookie values</li>
|
|
110
|
+
<li><strong>Strips stack frame variables</strong> — removes <code>vars</code>, <code>pre_context</code>, <code>context_line</code>, <code>post_context</code></li>
|
|
111
|
+
<li><strong>Removes breadcrumbs</strong> — user actions are never tracked</li>
|
|
112
|
+
<li><strong>Cleans request data</strong> — removes headers, cookies, query strings</li>
|
|
113
|
+
<li><strong>Anonymizes home directory</strong> — replaces paths with <code>[HOME]</code></li>
|
|
114
|
+
<li><strong>Drops oversized strings</strong> — over 2000 chars truncated</li>
|
|
115
|
+
<li><strong>Recursively scrubs nested objects</strong> — drops keys named prompt, response, content, message, input, output, text, body, data, payload, token, key, secret, password, auth, cookie</li>
|
|
116
|
+
</ol>
|
|
117
|
+
|
|
118
|
+
<h2>Checking Status</h2>
|
|
119
|
+
<pre><code># When disabled
|
|
120
|
+
Sentry Telemetry: Disabled (set SENTRY_DSN to enable)
|
|
121
|
+
|
|
122
|
+
# When enabled
|
|
123
|
+
Sentry Telemetry: Enabled</code></pre>
|
|
124
|
+
|
|
125
|
+
<div class="callout callout-info">
|
|
126
|
+
<strong>DSN Masking</strong>
|
|
127
|
+
The DSN is masked in the UI — only the first 8 and last 4 characters of the key are shown. The full DSN is never displayed in any output.
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<h2>Files</h2>
|
|
131
|
+
<table>
|
|
132
|
+
<tr><th>File</th><th>Purpose</th></tr>
|
|
133
|
+
<tr><td><code>src/utils/sentry.ts</code></td><td>Core wrapper — init, capture, close, scrubber</td></tr>
|
|
134
|
+
<tr><td><code>src/utils/sentry.test.ts</code></td><td>Unit tests (11 tests)</td></tr>
|
|
135
|
+
<tr><td><code>src/entrypoints/init.ts</code></td><td>Calls <code>initSentry()</code> at startup</td></tr>
|
|
136
|
+
<tr><td><code>src/utils/gracefulShutdown.ts</code></td><td>Calls <code>closeSentry()</code> before exit</td></tr>
|
|
137
|
+
<tr><td><code>src/utils/log.ts</code></td><td><code>logError()</code> sends to Sentry when enabled</td></tr>
|
|
138
|
+
<tr><td><code>src/components/SentryErrorBoundary.tsx</code></td><td>React error boundary for render crashes</td></tr>
|
|
139
|
+
<tr><td><code>src/components/App.tsx</code></td><td>Wraps app tree in <code>SentryErrorBoundary</code></td></tr>
|
|
140
|
+
<tr><td><code>src/utils/doctorDiagnostic.ts</code></td><td><code>/doctor</code> Sentry status display</td></tr>
|
|
141
|
+
</table>
|
|
142
|
+
|
|
143
|
+
<footer class="footer">
|
|
144
|
+
<span>Clew Code v0.2.7</span>
|
|
145
|
+
<div class="footer-links">
|
|
146
|
+
<a href="https://github.com/ClewCode/ClewCode">GitHub</a>
|
|
147
|
+
<a href="https://github.com/ClewCode/ClewCode/issues">Issues</a>
|
|
148
|
+
</div>
|
|
149
|
+
</footer>
|
|
150
|
+
</main>
|
|
151
|
+
<nav class="toc-sidebar"></nav>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
<script src="../js/main.js"></script>
|
|
155
|
+
</body>
|
|
156
|
+
</html>
|
|
157
|
+
|
|
@@ -1,96 +1,97 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="th">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Sentry
|
|
7
|
-
<meta name="description" content="Sentry crash/error telemetry
|
|
8
|
-
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
-
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Noto+Sans+Thai:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
-
<link rel="stylesheet" href="../css/styles.css">
|
|
12
|
-
<link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
|
|
13
|
-
</head>
|
|
14
|
-
<body>
|
|
15
|
-
<header class="header">
|
|
16
|
-
<div class="header-inner">
|
|
17
|
-
<a href="../index.th.html" class="logo">
|
|
18
|
-
<span>Clew Code</span>
|
|
19
|
-
</a>
|
|
20
|
-
<nav class="header-nav">
|
|
21
|
-
<a href="../index.th.html"
|
|
22
|
-
<div class="lang-wrap">
|
|
23
|
-
<button class="lang-btn"
|
|
24
|
-
<div class="lang-menu">
|
|
25
|
-
<a href="../../readme/README.zh.md"
|
|
26
|
-
<a href="../../readme/README.th.md"
|
|
27
|
-
<a href="../../readme/README.ja.md"
|
|
28
|
-
<a href="../../readme/README.ko.md"
|
|
29
|
-
<a href="../../readme/README.es.md">
|
|
30
|
-
<a href="../../readme/README.fr.md">
|
|
31
|
-
<a href="../../readme/README.de.md">Deutsch</a>
|
|
32
|
-
<a href="../../readme/README.pt.md">
|
|
33
|
-
<a href="../../readme/README.vi.md">
|
|
34
|
-
<a href="../../readme/README.id.md">Bahasa Indonesia</a>
|
|
35
|
-
<a href="../../readme/README.ru.md"
|
|
36
|
-
<a href="../../readme/README.hi.md"
|
|
37
|
-
<a href="sentry-setup.html">English</a>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</nav>
|
|
41
|
-
<button class="menu-btn" id="menuToggle" aria-label="
|
|
42
|
-
</div>
|
|
43
|
-
</header>
|
|
44
|
-
<div class="app">
|
|
45
|
-
<aside class="sidebar" id="sidebar"></aside>
|
|
46
|
-
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
47
|
-
<div class="content-wrap">
|
|
48
|
-
<main class="content">
|
|
49
|
-
<div class="breadcrumbs"><a href="../index.th.html"
|
|
50
|
-
<h1>Sentry
|
|
51
|
-
<p class="section-subtitle"
|
|
52
|
-
|
|
53
|
-
<div class="callout callout-tip">
|
|
54
|
-
<strong
|
|
55
|
-
<code>SENTRY_DSN=https://key@sentry.io/123 claude</code>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<h2
|
|
59
|
-
<h3>Sentry
|
|
60
|
-
<pre><code>SENTRY_DSN=https://public_key@your-sentry.example.com/123 claude</code></pre>
|
|
61
|
-
|
|
62
|
-
<h3>Sentry Cloud</h3>
|
|
63
|
-
<pre><code>SENTRY_DSN=https://public_key@o123456.ingest.sentry.io/789 claude</code></pre>
|
|
64
|
-
|
|
65
|
-
<h2
|
|
66
|
-
<p
|
|
67
|
-
<ul>
|
|
68
|
-
<li
|
|
69
|
-
<li
|
|
70
|
-
<li
|
|
71
|
-
<li
|
|
72
|
-
</ul>
|
|
73
|
-
|
|
74
|
-
<h2
|
|
75
|
-
<p
|
|
76
|
-
<ol>
|
|
77
|
-
<li><strong
|
|
78
|
-
<li><strong
|
|
79
|
-
<li><strong
|
|
80
|
-
<li><strong
|
|
81
|
-
</ol>
|
|
82
|
-
|
|
83
|
-
<footer class="footer">
|
|
84
|
-
<span>Clew Code v0.2.
|
|
85
|
-
<div class="footer-links">
|
|
86
|
-
<a href="https://github.com/
|
|
87
|
-
<a href="https://github.com/
|
|
88
|
-
</div>
|
|
89
|
-
</footer>
|
|
90
|
-
</main>
|
|
91
|
-
<nav class="toc-sidebar"></nav>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
<script src="../js/main.js"></script>
|
|
95
|
-
</body>
|
|
96
|
-
</html>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="th">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Sentry à¸à¸²à¸£à¸£à¸²à¸¢à¸‡à¸²à¸™à¸‚้à¸à¸œà¸´à¸”พลาด — Clew</title>
|
|
7
|
+
<meta name="description" content="Sentry crash/error telemetry à¹à¸šà¸š opt-in สำหรับ Clew — ปิดโดยค่าเริ่มต้น, ให้ความสำคัà¸à¸à¸±à¸šà¸„วามเป็นส่วนตัว">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&family=Noto+Sans+Thai:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
11
|
+
<link rel="stylesheet" href="../css/styles.css">
|
|
12
|
+
<link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
<header class="header">
|
|
16
|
+
<div class="header-inner">
|
|
17
|
+
<a href="../index.th.html" class="logo">
|
|
18
|
+
<span>Clew Code</span>
|
|
19
|
+
</a>
|
|
20
|
+
<nav class="header-nav">
|
|
21
|
+
<a href="../index.th.html">หน้าà¹à¸£à¸</a><a href="../index.th.html#features">ฟีเจà¸à¸£à¹Œ</a><a href="../index.th.html#commands">คำสั่ง</a><a href="../quick-start.th.html" class="active">เà¸à¸à¸ªà¸²à¸£</a><a href="https://github.com/ClewCode/ClewCode" target="_blank">GitHub</a>
|
|
22
|
+
<div class="lang-wrap">
|
|
23
|
+
<button class="lang-btn">ðŸŒ</button>
|
|
24
|
+
<div class="lang-menu">
|
|
25
|
+
<a href="../../readme/README.zh.md">䏿–‡</a>
|
|
26
|
+
<a href="../../readme/README.th.md">ไทย</a>
|
|
27
|
+
<a href="../../readme/README.ja.md">日本語</a>
|
|
28
|
+
<a href="../../readme/README.ko.md">한êµì–´</a>
|
|
29
|
+
<a href="../../readme/README.es.md">Español</a>
|
|
30
|
+
<a href="../../readme/README.fr.md">Français</a>
|
|
31
|
+
<a href="../../readme/README.de.md">Deutsch</a>
|
|
32
|
+
<a href="../../readme/README.pt.md">Português</a>
|
|
33
|
+
<a href="../../readme/README.vi.md">Tiếng Việt</a>
|
|
34
|
+
<a href="../../readme/README.id.md">Bahasa Indonesia</a>
|
|
35
|
+
<a href="../../readme/README.ru.md">РуÑÑкий</a>
|
|
36
|
+
<a href="../../readme/README.hi.md">हिनà¥à¤¦à¥€</a>
|
|
37
|
+
<a href="sentry-setup.html">English</a>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</nav>
|
|
41
|
+
<button class="menu-btn" id="menuToggle" aria-label="เปิด/ปิดเมนู"><span></span><span></span><span></span></button>
|
|
42
|
+
</div>
|
|
43
|
+
</header>
|
|
44
|
+
<div class="app">
|
|
45
|
+
<aside class="sidebar" id="sidebar"></aside>
|
|
46
|
+
<div class="sidebar-overlay" id="sidebarOverlay"></div>
|
|
47
|
+
<div class="content-wrap">
|
|
48
|
+
<main class="content">
|
|
49
|
+
<div class="breadcrumbs"><a href="../index.th.html">หน้าà¹à¸£à¸</a><span class="sep">/</span><a href="../index.th.html#features">ฟีเจà¸à¸£à¹Œ</a><span class="sep">/</span><span>Sentry Setup</span></div>
|
|
50
|
+
<h1>Sentry à¸à¸²à¸£à¸£à¸²à¸¢à¸‡à¸²à¸™à¸‚้à¸à¸œà¸´à¸”พลาด</h1>
|
|
51
|
+
<p class="section-subtitle">ระบบรายงาน crash à¹à¸¥à¸° error à¹à¸šà¸š opt-in — <strong>ปิดโดยสมบูรณ์เป็นค่าเริ่มต้น</strong> ไม่มีข้à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸ˆà¸²à¸à¹€à¸„รื่à¸à¸‡à¸‚à¸à¸‡à¸„ุณเว้นà¹à¸•่คุณจะตั้งค่า <code>SENTRY_DSN</code></p>
|
|
52
|
+
|
|
53
|
+
<div class="callout callout-tip">
|
|
54
|
+
<strong>สรุป</strong>
|
|
55
|
+
<code>SENTRY_DSN=https://key@sentry.io/123 claude</code> — เท่านั้น หาà¸à¹„ม่มี, ไม่มีà¸à¸²à¸£à¸£à¹‰à¸à¸‡à¸‚à¸à¹€à¸„รืà¸à¸‚่าย, ไม่มี telemetry
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<h2>เริ่มต้นใช้งาน</h2>
|
|
59
|
+
<h3>Sentry à¹à¸šà¸šà¹‚ฮสต์เà¸à¸‡</h3>
|
|
60
|
+
<pre><code>SENTRY_DSN=https://public_key@your-sentry.example.com/123 claude</code></pre>
|
|
61
|
+
|
|
62
|
+
<h3>Sentry Cloud</h3>
|
|
63
|
+
<pre><code>SENTRY_DSN=https://public_key@o123456.ingest.sentry.io/789 claude</code></pre>
|
|
64
|
+
|
|
65
|
+
<h2>สิ่งที่ถูà¸à¸ªà¹ˆà¸‡</h2>
|
|
66
|
+
<p>เฉพาะข้à¸à¸¡à¸¹à¸¥à¹€à¸¡à¸•าขà¸à¸‡à¸‚้à¸à¸œà¸´à¸”พลาด — <strong>ไม่เคยส่ง prompts, คำตà¸à¸š, เนื้à¸à¸«à¸²à¹„ฟล์, หรืà¸à¸œà¸¥à¸¥à¸±à¸žà¸˜à¹Œà¸„ำสั่ง</strong>:</p>
|
|
67
|
+
<ul>
|
|
68
|
+
<li>ชื่à¸, ข้à¸à¸„วาม, à¹à¸¥à¸° stack trace ขà¸à¸‡à¸‚้à¸à¸œà¸´à¸”พลาด</li>
|
|
69
|
+
<li>ข้à¸à¸¡à¸¹à¸¥à¸£à¸±à¸™à¹„ทม์: à¹à¸žà¸¥à¸•ฟà¸à¸£à¹Œà¸¡ OS, เวà¸à¸£à¹Œà¸Šà¸±à¸™ Node/Bun</li>
|
|
70
|
+
<li>โหมด: REPL, ไม่โต้ตà¸à¸š, เซิร์ฟเวà¸à¸£à¹Œ MCP</li>
|
|
71
|
+
<li>ชื่à¸à¸œà¸¹à¹‰à¹ƒà¸«à¹‰à¸šà¸£à¸´à¸à¸²à¸£à¹à¸¥à¸°à¹‚มเดล</li>
|
|
72
|
+
</ul>
|
|
73
|
+
|
|
74
|
+
<h2>เครื่à¸à¸‡à¸¡à¸·à¸à¸‚จัดข้à¸à¸¡à¸¹à¸¥à¸ªà¹ˆà¸§à¸™à¸•ัว</h2>
|
|
75
|
+
<p>ทุà¸à¹€à¸«à¸•ุà¸à¸²à¸£à¸“์ผ่านฮุค <code>beforeSend</code> ที่:</p>
|
|
76
|
+
<ol>
|
|
77
|
+
<li><strong>ล้างสตริง</strong> — ลบรูปà¹à¸šà¸šà¸„ีย์ API, ส่วนหัว auth, ค่า cookie</li>
|
|
78
|
+
<li><strong>ลบตัวà¹à¸›à¸£ stack frame</strong></li>
|
|
79
|
+
<li><strong>ล้างข้à¸à¸¡à¸¹à¸¥à¸„ำขà¸</strong> — ลบส่วนหัว, cookies, query strings</li>
|
|
80
|
+
<li><strong>ตัดสตริงที่ใหà¸à¹ˆà¹€à¸à¸´à¸™</strong> — เà¸à¸´à¸™ 2000 ตัวà¸à¸±à¸à¸©à¸£à¸–ูà¸à¸•ัด</li>
|
|
81
|
+
</ol>
|
|
82
|
+
|
|
83
|
+
<footer class="footer">
|
|
84
|
+
<span>Clew Code v0.2.7</span>
|
|
85
|
+
<div class="footer-links">
|
|
86
|
+
<a href="https://github.com/ClewCode/ClewCode">GitHub</a>
|
|
87
|
+
<a href="https://github.com/ClewCode/ClewCode/issues">ปัà¸à¸«à¸²</a>
|
|
88
|
+
</div>
|
|
89
|
+
</footer>
|
|
90
|
+
</main>
|
|
91
|
+
<nav class="toc-sidebar"></nav>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
<script src="../js/main.js"></script>
|
|
95
|
+
</body>
|
|
96
|
+
</html>
|
|
97
|
+
|