Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
claude/adoring-hopper-5x74bqclaude/affectionate-feynman-ykrf1hclaude/architecture-audit-design-wxprenclaude/build-status-update-3MXsfclaude/charming-meitner-mllb5rclaude/compare-gate-gluecron-s4mFQclaude/confident-faraday-tikcwbclaude/continue-work-XMTlIclaude/crontech-gluecron-deploy-7MIECclaude/crontech-platform-setup-SeKfwclaude/design-2026claude/ecstatic-ptolemy-jMdigclaude/enhance-github-integration-QNHdGclaude/fix-aa-loop-issue-PonMQclaude/fix-actions-and-processclaude/fix-desktop-errors-XqoW8claude/fix-red-workflowsclaude/fix-website-access-6FKJNclaude/gatetest-integration-hardeningclaude/github-audit-improvements-bDFr9claude/gluecron-launch-status-FoMRlclaude/hopeful-lamport-olfCTclaude/issue-to-pr-and-protectionsclaude/jolly-heisenberg-2sg1Qclaude/launch-preparation-QmTb6claude/new-session-xk1l7claude/plan-platform-architecture-kkN4yclaude/platform-analysis-roadmap-1nUGLclaude/platform-launch-assessment-8dWV8claude/polish-platform-release-AeDrUclaude/resume-previous-work-KzyLwclaude/review-crontech-handoff-qYEVqclaude/review-project-completeness-lHhS2claude/review-readme-docs-ulqPKclaude/serene-edison-rj87weclaude/setup-multi-repo-dev-BCwNQclaude/ship-fixes-and-tests-Jvz1cclaude/site-audit-competitive-pctlwgclaude/site-migration-vercel-XstpKclaude/standalone-product-repos-XHFTDcopilot/feat-smart-empty-states-keyboard-first-enhancementcopilot/feat-smart-morning-digest-review-context-restorecopilot/fix-and-process-workflowscopilot/update-ai-powered-code-reviewfeat/debt-mapfeat/push-policy-codeowners-hardeningfeat/smart-digest-contextfeat/stage-impactfeat/t1-secret-migrationfeat/u-polishfeat/w-self-hostfeat/w2-claude-configfix/agent-journey-orphan-sweepgatetest/auto-fix-1776586424172gatetest/auto-fix-1776586534814gatetest/auto-fix-1776590685143gatetest/auto-fix-1776590808199mainops/redeploy-retriggerstyle/dxt-cta-themeworktree-agent-a3377aad30d55da26worktree-agent-a7ef607b7ee1d6c74
privacy.tsx12.0 KB · 289 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
/**
 * Privacy Policy — GDPR + CCPA + COPPA aware.
 *
 * DRAFT — requires attorney review before any paid launch.
 */

import { Hono } from "hono";
import { Layout } from "../../views/layout";
import { softAuth } from "../../middleware/auth";
import type { AuthEnv } from "../../middleware/auth";

const privacy = new Hono<AuthEnv>();

privacy.use("*", softAuth);

privacy.get("/legal/privacy", (c) => {
  const user = c.get("user");
  return c.html(
    <Layout title="Privacy Policy" user={user}>
      <article style="max-width: 820px; margin: 0 auto; line-height: 1.7; font-size: 15px">
        <h1 style="font-size: 28px; margin-bottom: 8px">Privacy Policy</h1>
        <p style="color: var(--text-muted); font-size: 13px; margin-bottom: 24px">
          DRAFT — requires attorney review. Last updated: 2026-04-16.
        </p>

        <div
          style="background: rgba(210, 153, 34, 0.1); border: 1px solid var(--yellow); color: var(--yellow); padding: 12px 16px; border-radius: var(--radius); margin-bottom: 24px; font-size: 13px"
        >
          <strong>DRAFT notice.</strong> This Privacy Policy is a good-faith
          draft published during Gluecron's pre-launch phase. It has not been
          reviewed by privacy counsel. Article 13 GDPR disclosures,
          sub-processor lists, and retention schedules are provisional and
          will be finalized before general availability.
        </div>

        <h2>1. Data we collect</h2>
        <ul>
          <li>
            <strong>Account data:</strong> username, email address, display
            name, hashed password, 2FA secrets, WebAuthn credentials, SSH
            public keys, personal access tokens (stored as SHA-256 hashes).
          </li>
          <li>
            <strong>Git content:</strong> repositories you push, including
            commits, branches, tags, file contents, commit messages, and
            author metadata embedded in commits.
          </li>
          <li>
            <strong>AI interactions:</strong> prompts you submit to AI
            features (chat, code review, explanations, completions) and
            responses generated by third-party AI providers.
          </li>
          <li>
            <strong>Usage telemetry:</strong> requests, request IDs, rate-limit
            counters, error traces, audit events, deployment events, gate run
            results.
          </li>
          <li>
            <strong>Network data:</strong> IP address, user-agent string,
            request timestamps, session cookie identifiers.
          </li>
        </ul>

        <h2>2. How we use it</h2>
        <ul>
          <li>To operate, maintain, and secure the Service.</li>
          <li>
            To provide AI-assisted features that you explicitly invoke (code
            review, chat, explanations, test generation, auto-repair,
            dependency updates, incident summaries, semantic search).
          </li>
          <li>
            To detect, investigate, and prevent abuse, fraud, security
            incidents, and violations of our Terms or AUP.
          </li>
          <li>
            To comply with legal obligations, respond to lawful requests from
            authorities, and enforce our rights.
          </li>
          <li>
            To communicate service-related messages (security alerts, policy
            updates, incident notifications).
          </li>
        </ul>

        <h2>3. Data controller</h2>
        <p>
          The data controller is <strong>Gluecron</strong> (entity name
          placeholder — <em>DRAFT</em>; final legal entity name and registered
          address to be inserted prior to launch). Contact:
          support@gluecron.com (placeholder).
        </p>

        <h2>4. Sub-processors</h2>
        <p>
          We engage the following sub-processors to operate the Service. This
          list is current as of the date above and may change; we intend to
          provide 30 days' notice of material changes.
        </p>
        <div style="overflow-x: auto; margin: 12px 0">
          <table style="width: 100%; border-collapse: collapse; font-size: 14px; border: 1px solid var(--border); border-radius: var(--radius)">
            <thead style="background: var(--bg-tertiary)">
              <tr>
                <th style="text-align: left; padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Sub-processor
                </th>
                <th style="text-align: left; padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Purpose
                </th>
                <th style="text-align: left; padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Data categories
                </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Neon (neon.tech)
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Managed PostgreSQL (primary database)
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Account data, metadata, telemetry
                </td>
              </tr>
              <tr>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Anthropic
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Claude API (AI features)
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  AI prompts (including code snippets you submit)
                </td>
              </tr>
              <tr>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Resend (if enabled)
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Transactional email delivery
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Email address, message contents
                </td>
              </tr>
              <tr>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Fly.io / Railway
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  Application hosting (compute)
                </td>
                <td style="padding: 8px 12px; border-bottom: 1px solid var(--border)">
                  All transient request data
                </td>
              </tr>
              <tr>
                <td style="padding: 8px 12px">Cloudflare (if fronting)</td>
                <td style="padding: 8px 12px">CDN, DDoS mitigation, DNS</td>
                <td style="padding: 8px 12px">
                  IP address, request metadata
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p>
          <em>DRAFT — requires attorney review; sub-processor list must be
          verified against signed DPAs prior to launch.</em>
        </p>

        <h2>5. Data retention</h2>
        <ul>
          <li>
            <strong>Account data:</strong> retained while your account is
            active and for thirty (30) days after account deletion, after
            which we intend to purge it.
          </li>
          <li>
            <strong>Git repository content:</strong> retained for the
            lifetime of your account; deleting a repository is intended to
            purge its content within 30 days.
          </li>
          <li>
            <strong>Sessions:</strong> 30 days (rolling).
          </li>
          <li>
            <strong>Audit and security logs:</strong> up to 12 months for
            security and abuse-detection purposes.
          </li>
          <li>
            <strong>Backups:</strong> may persist for up to 30 days beyond
            the primary retention period.
          </li>
        </ul>

        <h2>6. GDPR compliance (EU / UK residents)</h2>
        <p>
          If you are in the European Economic Area, the United Kingdom, or
          Switzerland, we process your data under the following lawful bases
          (GDPR Art. 6): (a) performance of a contract (providing the
          Service to you); (b) our legitimate interests in securing and
          improving the Service; (c) compliance with legal obligations; and
          (d) where required, your consent (which you may withdraw at any
          time).
        </p>
        <p>
          <strong>Article 13 disclosures.</strong> The identity of the
          controller, data categories, purposes, retention, recipients, and
          your rights are described throughout this Policy. International
          transfers of personal data outside the EEA/UK will rely on the EU
          <em> Standard Contractual Clauses</em> ("SCCs") or another approved
          transfer mechanism.
        </p>
        <p>
          <strong>Your rights</strong> include access, rectification,
          erasure, restriction, portability, and objection. You may lodge a
          complaint with your local supervisory authority. <em>DRAFT —
          requires attorney review.</em>
        </p>

        <h2>7. CCPA / CPRA compliance (California residents)</h2>
        <p>
          If you are a California resident, you have the right to (a) know
          what personal information we collect, use, disclose, and sell or
          share; (b) delete your personal information, subject to legal
          exceptions; (c) correct inaccurate personal information; (d) opt
          out of the sale or sharing of personal information (we do not
          sell personal information); and (e) non-discrimination for
          exercising these rights.
        </p>

        <h2>8. Right to erasure / access</h2>
        <p>
          To exercise any of the rights above, email{" "}
          <strong>support@gluecron.com</strong> (placeholder). We intend to
          respond within thirty (30) days. We may need to verify your
          identity before acting. Some data (e.g., audit logs required for
          security, legal holds) may be exempt from deletion.
        </p>

        <h2>9. Cookies</h2>
        <p>
          We use only <strong>strictly necessary cookies</strong> (session
          authentication, theme preference, CSRF). We do not use advertising
          cookies. We do not use third-party analytics cookies on our
          marketing surfaces.
        </p>

        <h2>10. Children</h2>
        <p>
          The Service is not directed to children under 18. We do not
          knowingly collect personal information from children under 13
          (COPPA, U.S.) or 16 (GDPR, EEA). If you believe a child has
          provided us information in violation of this Policy, contact us
          and we will delete it.
        </p>

        <h2>11. Breach notification</h2>
        <p>
          In the event of a personal-data breach that is likely to result in
          a risk to your rights and freedoms, we intend to notify the
          relevant supervisory authority within <strong>72 hours</strong> of
          becoming aware, as required by GDPR Art. 33, and to notify
          affected users without undue delay where required.
        </p>

        <h2>12. Changes to this Policy</h2>
        <p>
          We intend to provide thirty (30) days' notice of material changes
          to this Policy, by email or by posting a notice in the Service.
        </p>

        <hr style="margin: 32px 0; border: none; border-top: 1px solid var(--border)" />
        <p style="font-size: 13px; color: var(--text-muted)">
          See also:{" "}
          <a href="/legal/terms">Terms of Service</a> ·{" "}
          <a href="/legal/acceptable-use">Acceptable Use Policy</a> ·{" "}
          <a href="/legal/dmca">DMCA Policy</a>
        </p>
      </article>
    </Layout>
  );
});

export default privacy;