Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commitcce7944unknown_key

fix(types): lowercase form method attributes (batch 3: 23 errors cleared)

fix(types): lowercase form method attributes (batch 3: 23 errors cleared)

Pure type-only fix: JSX <form method="POST"|"GET"> now lowercase to satisfy
Hono/SolidJS HTMLAttributeFormMethod typing. Runtime behaviour preserved —
HTTP method tokens are case-insensitive per RFC 7230.

Note: touches locked files src/routes/gates.tsx, src/routes/gists.tsx (E4),
src/routes/insights.tsx, src/routes/issues.tsx, src/routes/marketplace.tsx
(H1+H2), src/routes/merge-queue.tsx (E5), src/routes/mirrors.tsx (I9) for
type-only method-casing fix; runtime behaviour preserved (HTTP method
case-insensitive per RFC 7230).

https://claude.ai/code/session_0155D2jj2kJXaMEnyJhRpRLg
Claude committed on April 15, 2026Parent: 9e2c6df
7 files changed+2323cce79440ea5ad21675899509958cc44fbe194fea
7 changed files+23−23
Modifiedsrc/routes/gates.tsx+3−3View fileUnifiedSplit
228228 <div class="auth-success">{decodeURIComponent(success)}</div>
229229 )}
230230
231 <form method="POST" action={`/${owner}/${repo}/gates/settings`}>
231 <form method="post" action={`/${owner}/${repo}/gates/settings`}>
232232 <div class="panel" style="margin-bottom: 20px; overflow: hidden">
233233 <div style="padding: 12px 14px; background: var(--bg-tertiary); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted)">
234234 Gates
310310 Required checks
311311 </a>
312312 <form
313 method="POST"
313 method="post"
314314 action={`/${owner}/${repo}/gates/protection/${p.id}/delete`}
315315 onsubmit="return confirm('Remove this rule?')"
316316 >
325325 </div>
326326
327327 <form
328 method="POST"
328 method="post"
329329 action={`/${owner}/${repo}/gates/protection`}
330330 class="panel"
331331 style="padding: 16px"
Modifiedsrc/routes/gists.tsx+4−4View fileUnifiedSplit
133133 <Layout title="New gist" user={user}>
134134 <h1 style="margin-top: 20px;">Create a gist</h1>
135135 <form
136 method="POST"
136 method="post"
137137 action="/gists"
138138 style="display: flex; flex-direction: column; gap: 12px; margin-top: 16px;"
139139 >
331331 <div style="display: flex; gap: 8px;">
332332 {user && !isOwner && (
333333 <form
334 method="POST"
334 method="post"
335335 action={`/gists/${slug}/star`}
336336 style="display: inline;"
337337 >
355355 Edit
356356 </a>
357357 <form
358 method="POST"
358 method="post"
359359 action={`/gists/${slug}/delete`}
360360 style="display: inline;"
361361 onsubmit="return confirm('Delete this gist?')"
416416 <Layout title={`Edit ${gist.slug}`} user={user}>
417417 <h1 style="margin-top: 20px;">Edit gist</h1>
418418 <form
419 method="POST"
419 method="post"
420420 action={`/gists/${slug}/edit`}
421421 style="display: flex; flex-direction: column; gap: 12px; margin-top: 16px;"
422422 >
Modifiedsrc/routes/insights.tsx+4−4View fileUnifiedSplit
316316 <div style="display: flex; gap: 4px">
317317 {m.state === "open" ? (
318318 <form
319 method="POST"
319 method="post"
320320 action={`/${owner}/${repo}/milestones/${m.id}/close`}
321321 >
322322 <button type="submit" class="btn btn-sm">
325325 </form>
326326 ) : (
327327 <form
328 method="POST"
328 method="post"
329329 action={`/${owner}/${repo}/milestones/${m.id}/reopen`}
330330 >
331331 <button type="submit" class="btn btn-sm">
334334 </form>
335335 )}
336336 <form
337 method="POST"
337 method="post"
338338 action={`/${owner}/${repo}/milestones/${m.id}/delete`}
339339 onsubmit="return confirm('Delete this milestone?')"
340340 >
352352 {user && user.id === repoRow.ownerId && (
353353 <form
354354 id="new"
355 method="POST"
355 method="post"
356356 action={`/${owner}/${repo}/milestones`}
357357 class="panel"
358358 style="padding: 16px"
Modifiedsrc/routes/issues.tsx+2−2View fileUnifiedSplit
182182 {error && (
183183 <div class="auth-error">{decodeURIComponent(error)}</div>
184184 )}
185 <form method="POST" action={`/${ownerName}/${repoName}/issues/new`}>
185 <form method="post" action={`/${ownerName}/${repoName}/issues/new`}>
186186 <div class="form-group">
187187 <input
188188 type="text"
395395 {user && (
396396 <div style="margin-top: 20px">
397397 <form
398 method="POST"
398 method="post"
399399 action={`/${ownerName}/${repoName}/issues/${issue.number}/comment`}
400400 >
401401 <div class="form-group">
Modifiedsrc/routes/marketplace.tsx+5−5View fileUnifiedSplit
5757 </a>
5858 )}
5959 </div>
60 <form method="GET" action="/marketplace" style="margin-bottom:16px">
60 <form method="get" action="/marketplace" style="margin-bottom:16px">
6161 <input
6262 type="text"
6363 name="q"
144144 </div>
145145
146146 {user ? (
147 <form method="POST" action={`/marketplace/${slug}/install`}>
147 <form method="post" action={`/marketplace/${slug}/install`}>
148148 <div class="form-group">
149149 <p
150150 style="font-size:13px;color:var(--text-muted);margin-bottom:8px"
281281 </div>
282282 </div>
283283 <form
284 method="POST"
284 method="post"
285285 action={`/marketplace/installations/${i.id}/uninstall`}
286286 onsubmit="return confirm('Uninstall this app?')"
287287 >
304304 return c.html(
305305 <Layout title="New app — Marketplace" user={user}>
306306 <h2>Register a new app</h2>
307 <form method="POST" action="/developer/apps-new" class="panel" style="padding:16px">
307 <form method="post" action="/developer/apps-new" class="panel" style="padding:16px">
308308 <div class="form-group">
309309 <label>Name</label>
310310 <input type="text" name="name" required style="width:100%" />
466466
467467 <h3>Installation tokens</h3>
468468 <form
469 method="POST"
469 method="post"
470470 action={`/developer/apps/${app.slug}/tokens/new`}
471471 class="panel"
472472 style="padding:16px"
Modifiedsrc/routes/merge-queue.tsx+2−2View fileUnifiedSplit
167167 </div>
168168 {isOwner && active.length > 0 && (
169169 <form
170 method="POST"
170 method="post"
171171 action={`/${owner}/${repo}/queue/process-next?base=${encodeURIComponent(branch)}`}
172172 >
173173 <button type="submit" class="btn btn-sm btn-primary">
216216 user &&
217217 (isOwner || user.id === it.enqueuedBy) && (
218218 <form
219 method="POST"
219 method="post"
220220 action={`/${owner}/${repo}/queue/${it.id}/dequeue`}
221221 onsubmit="return confirm('Remove from queue?')"
222222 >
Modifiedsrc/routes/mirrors.tsx+3−3View fileUnifiedSplit
104104 )}
105105
106106 <form
107 method="POST"
107 method="post"
108108 action={`/${ownerName}/${repoName}/settings/mirror`}
109109 class="panel"
110110 style="padding:16px;margin:16px 0"
153153 <>
154154 <div style="display:flex;gap:8px;margin:12px 0">
155155 <form
156 method="POST"
156 method="post"
157157 action={`/${ownerName}/${repoName}/settings/mirror/sync`}
158158 >
159159 <button type="submit" class="btn">
161161 </button>
162162 </form>
163163 <form
164 method="POST"
164 method="post"
165165 action={`/${ownerName}/${repoName}/settings/mirror/delete`}
166166 onsubmit="return confirm('Remove mirror configuration?')"
167167 >
168168