Android / Build, or is the channel already serving this? (push) Successful in 4s
CI & Build / Build now, or wait for Android? (push) Successful in 4s
CI & Build / Python lint (push) Successful in 2s
CI & Build / TypeScript typecheck (push) Successful in 11s
Desktop (Tauri) / Build, or is the channel already serving this? (push) Successful in 3s
CI & Build / Python tests (push) Successful in 15s
CI & Build / integration (push) Successful in 58s
CI & Build / Build & push image (push) Skipped
Desktop (Tauri) / Windows installer (cross-compiled) (push) Successful in 4m17s
Desktop (Tauri) / Tauri desktop (Linux) (push) Successful in 7m50s
Desktop (Tauri) / Update manifest (push) Successful in 5s
Android / Kotlin + Rust (APK) (push) Successful in 11m37s
ThoughtSync is renamed Inkwell ("Fabled Inkwell" in full; Scribe note 5071).
This is step 1 of milestone 481: every string a person reads in the running
apps. Identities installed clients depend on are deliberately untouched — the
Tauri productName (it derives the .deb Package: field), identifier and binary
name, applicationId, X-ThoughtSync-* headers, the export's app marker, env vars,
module and crate names.
- web: title, PWA manifest (name "Fabled Inkwell", short_name "Inkwell"),
offline page, icon labels, build labels, prompts, notification title
- server: site_name default, import error, link-preview User-Agent
- 0030: a stored site_name of exactly the old default follows the rename. The
Settings page saves every key, so most servers hold "ThoughtSync" without an
admin ever having chosen it; a name they typed is left alone
- desktop: window title, default device name, local-mode site name, log line
- android: app_name and the strings that name the app
- core: probe and compatibility messages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
115 lines
2.9 KiB
HTML
115 lines
2.9 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="theme-color" content="#F5C518" />
|
|
<title>Offline · Inkwell</title>
|
|
<style>
|
|
:root {
|
|
color-scheme: light dark;
|
|
}
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
html,
|
|
body {
|
|
height: 100%;
|
|
margin: 0;
|
|
}
|
|
body {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 1.5rem;
|
|
font-family:
|
|
ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial,
|
|
sans-serif;
|
|
background: #fafafa;
|
|
color: #171717;
|
|
}
|
|
main {
|
|
max-width: 22rem;
|
|
text-align: center;
|
|
}
|
|
.icon {
|
|
width: 72px;
|
|
height: 72px;
|
|
margin: 0 auto 1.25rem;
|
|
display: block;
|
|
}
|
|
h1 {
|
|
font-size: 1.25rem;
|
|
font-weight: 700;
|
|
letter-spacing: -0.01em;
|
|
margin: 0 0 0.5rem;
|
|
}
|
|
p {
|
|
font-size: 0.9rem;
|
|
line-height: 1.5;
|
|
color: #737373;
|
|
margin: 0 0 1.5rem;
|
|
}
|
|
button {
|
|
appearance: none;
|
|
border: 0;
|
|
cursor: pointer;
|
|
font: inherit;
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
padding: 0.6rem 1.4rem;
|
|
border-radius: 0.6rem;
|
|
background: #f5c518;
|
|
color: #18181b;
|
|
}
|
|
button:hover {
|
|
filter: brightness(0.95);
|
|
}
|
|
button:focus-visible {
|
|
outline: 2px solid #18181b;
|
|
outline-offset: 2px;
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
body {
|
|
background: #0a0a0a;
|
|
color: #f5f5f5;
|
|
}
|
|
p {
|
|
color: #a3a3a3;
|
|
}
|
|
button:focus-visible {
|
|
outline-color: #f5c518;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<main>
|
|
<svg class="icon" viewBox="0 0 512 512" aria-hidden="true">
|
|
<rect width="512" height="512" rx="112" fill="#F5C518" />
|
|
<g stroke="#18181b" stroke-linecap="round" fill="none">
|
|
<g stroke-width="14" opacity="0.26">
|
|
<path d="M256 150 L166 336" />
|
|
<path d="M166 336 L346 336" />
|
|
<path d="M346 336 L256 150" />
|
|
</g>
|
|
<g stroke-width="22">
|
|
<path d="M256 268 L256 150" />
|
|
<path d="M256 268 L166 336" />
|
|
<path d="M256 268 L346 336" />
|
|
</g>
|
|
</g>
|
|
<g fill="#18181b">
|
|
<circle cx="256" cy="150" r="34" />
|
|
<circle cx="166" cy="336" r="34" />
|
|
<circle cx="346" cy="336" r="34" />
|
|
<circle cx="256" cy="268" r="26" />
|
|
</g>
|
|
</svg>
|
|
<h1>You're offline</h1>
|
|
<p>Inkwell needs a connection to your server to load. Reconnect and try again.</p>
|
|
<button type="button" onclick="location.reload()">Retry</button>
|
|
</main>
|
|
</body>
|
|
</html>
|