relmio 0.8.0 → 0.8.1

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/CHANGELOG.md CHANGED
@@ -7,6 +7,17 @@ checks the registry separately after publication.
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## [0.8.1] - 2026-08-26
11
+
12
+ ### Changed
13
+
14
+ - Adopt the Gateway Android logo across the GitHub and npm READMEs, hosted
15
+ site, and local wizard, and stop publishing the retired Harbor Gate mark.
16
+ - Refresh the Open Graph and social-preview card with the Gateway Android while
17
+ preserving the Relmio relay message and visual flow.
18
+ - Add a prominent Legal warning against bypassing rate limits, restrictions, or
19
+ safeguards.
20
+
10
21
  ## [0.8.0] - 2026-08-26
11
22
 
12
23
  ### Added
package/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <img src="https://cdn.jsdelivr.net/npm/relmio@latest/docs/images/brand/relmio-logo.png" alt="Relmio gateway android logo" width="180">
3
+ </p>
4
+
1
5
  # Relmio
2
6
 
3
7
  This package starts Relmio's local setup wizard for a private n8n sidecar or a
package/docs/brand.md CHANGED
@@ -8,18 +8,19 @@ private OpenAI-compatible OAuth sidecar for self-hosted n8n, while the product
8
8
  direction can grow to support other OpenAI-compatible clients and SDK-based
9
9
  applications.
10
10
 
11
- ## Mark
11
+ ## Logo and icon
12
12
 
13
- ![Relmio mark](images/brand/relmio-mark.svg)
13
+ ![Relmio gateway android logo](images/brand/relmio-logo.png)
14
14
 
15
- The **Harbor Gate** mark uses two distinct boundaries around an open passage.
16
- Its teal entry stands upright while the ink route bends outward, representing
17
- a local credential boundary and a controlled path for requests and responses.
18
- The silhouette stays recognizable at favicon size without provider branding.
15
+ The **Gateway Android** turns Relmio's model relay into a friendly, minimal
16
+ guide standing inside a protected passage. Its teal face represents the live
17
+ AI connection, while the ivory arch depicts the local boundary through which
18
+ requests are deliberately relayed. The two quiet eyes keep it recognizable at
19
+ favicon size without borrowing another provider's branding.
19
20
 
20
- The abstract mark was developed from the checked-in generated concept source at
21
- [`images/brand/relmio-concept-source.png`](images/brand/relmio-concept-source.png)
22
- and redrawn as compact SVG geometry for reliable rendering at small sizes.
21
+ The checked-in 512-pixel PNG is the canonical logo and icon asset. It was
22
+ derived from the selected generated source, then resized once for consistent
23
+ rendering across the README, hosted app, and local wizard.
23
24
 
24
25
  ## Colors
25
26
 
@@ -29,11 +30,11 @@ and redrawn as compact SVG geometry for reliable rendering at small sizes.
29
30
  | Midnight ink | `#12211f` | Secondary lane, text, high-contrast surfaces |
30
31
  | Signal tint | `#e7f3f0` | Quiet selected and informational surfaces |
31
32
  | Canvas | `#f4f2ed` | Warm application background |
33
+ | Gateway moss | `#8fa58b` | Logo field and calm supporting brand surfaces |
32
34
 
33
- Use the two-color mark on light backgrounds. On a dark surface, place the
34
- unchanged mark on a white or canvas-colored tile with enough padding. Do not
35
- rotate, stretch, outline, add gradients, or recreate the mark with provider
36
- brand colors.
35
+ Keep the logo square and preserve its built-in moss background on both light
36
+ and dark surfaces. Do not crop, rotate, stretch, outline, recolor, or recreate
37
+ the logo with provider brand colors.
37
38
 
38
39
  ## Compatibility names
39
40
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relmio",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "Install private local OpenAI API and Codex endpoints with explicit provider credential boundaries, plus the existing isolated n8n sidecar.",
5
5
  "keywords": [
6
6
  "relmio",
package/src/ui/index.html CHANGED
@@ -8,10 +8,7 @@
8
8
  content="Relmio connects compatible AI clients to a private ChatGPT/Codex OAuth sidecar, starting with self-hosted n8n."
9
9
  />
10
10
  <title>Relmio | n8n Setup</title>
11
- <link
12
- rel="icon"
13
- href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%23137c74' d='M7 8h19l31 24H41L26 20v10L7 17Z'/%3E%3Cpath fill='%2312211f' d='M7 47l19-13v10l15-12h16L26 56H7Z'/%3E%3C/svg%3E"
14
- />
11
+ <link rel="icon" href="/relmio-icon.png" type="image/png" />
15
12
  <link rel="stylesheet" href="/styles.css" />
16
13
  <script src="/theme.js" type="module"></script>
17
14
  <script src="/app.js" type="module"></script>
@@ -21,15 +18,13 @@
21
18
 
22
19
  <header class="site-header">
23
20
  <div class="brand">
24
- <svg
21
+ <img
25
22
  class="brand-mark"
26
- viewBox="0 0 64 64"
27
- aria-hidden="true"
28
- focusable="false"
29
- >
30
- <path fill="#137c74" d="M7 8h19l31 24H41L26 20v10L7 17Z" />
31
- <path fill="#12211f" d="M7 47l19-13v10l15-12h16L26 56H7Z" />
32
- </svg>
23
+ src="/relmio-icon.png"
24
+ alt=""
25
+ width="28"
26
+ height="28"
27
+ />
33
28
  <span>Relmio</span>
34
29
  </div>
35
30
  <div class="header-actions">
package/src/ui/local.html CHANGED
@@ -8,10 +8,7 @@
8
8
  content="Install a loopback-only Relmio endpoint for the OpenAI API or the official Codex App Server."
9
9
  />
10
10
  <title>Relmio | Local Endpoint Setup</title>
11
- <link
12
- rel="icon"
13
- href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%23137c74' d='M8 13 28 5v38c0 4-2 7-6 9L8 59Z'/%3E%3Cpath fill='%2312211f' d='M36 5l11 5c6 3 9 8 9 15v9c0 3 1 5 3 7l3 3c3 3 3 8 0 11s-8 3-11 0L40 44c-3-3-4-6-4-10Z'/%3E%3C/svg%3E"
14
- />
11
+ <link rel="icon" href="/relmio-icon.png" type="image/png" />
15
12
  <link rel="stylesheet" href="/styles.css" />
16
13
  <link rel="stylesheet" href="/local.css" />
17
14
  <script src="/theme.js" type="module"></script>
@@ -22,15 +19,13 @@
22
19
 
23
20
  <header class="site-header">
24
21
  <div class="brand">
25
- <svg
22
+ <img
26
23
  class="brand-mark"
27
- viewBox="0 0 64 64"
28
- aria-hidden="true"
29
- focusable="false"
30
- >
31
- <path fill="#137c74" d="M8 13 28 5v38c0 4-2 7-6 9L8 59Z" />
32
- <path fill="#12211f" d="M36 5l11 5c6 3 9 8 9 15v9c0 3 1 5 3 7l3 3c3 3 3 8 0 11s-8 3-11 0L40 44c-3-3-4-6-4-10Z" />
33
- </svg>
24
+ src="/relmio-icon.png"
25
+ alt=""
26
+ width="28"
27
+ height="28"
28
+ />
34
29
  <span>Relmio</span>
35
30
  </div>
36
31
  <div class="header-actions">
Binary file
package/src/ui/styles.css CHANGED
@@ -1126,15 +1126,11 @@ footer p {
1126
1126
  /* ---------- Dark mode refinement ---------- */
1127
1127
 
1128
1128
  :root[data-theme="dark"] .brand-mark {
1129
- padding: 0.125rem;
1130
- background: #f7f8f5;
1131
1129
  box-shadow: 0 0 0 1px rgb(255 255 255 / 14%);
1132
1130
  }
1133
1131
 
1134
1132
  @media (prefers-color-scheme: dark) {
1135
1133
  :root:not([data-theme]) .brand-mark {
1136
- padding: 0.125rem;
1137
- background: #f7f8f5;
1138
1134
  box-shadow: 0 0 0 1px rgb(255 255 255 / 14%);
1139
1135
  }
1140
1136
  }
package/src/web/server.js CHANGED
@@ -363,6 +363,7 @@ async function loadDefaultUiFiles() {
363
363
  readFile(new URL("../ui/icons/monitor.svg", import.meta.url), "utf8"),
364
364
  readFile(new URL("../ui/icons/sun.svg", import.meta.url), "utf8"),
365
365
  readFile(new URL("../ui/icons/moon.svg", import.meta.url), "utf8"),
366
+ readFile(new URL("../ui/relmio-icon.png", import.meta.url)),
366
367
  ]);
367
368
 
368
369
  return {
@@ -378,6 +379,7 @@ async function loadDefaultUiFiles() {
378
379
  "/icons/monitor.svg": files[9],
379
380
  "/icons/sun.svg": files[10],
380
381
  "/icons/moon.svg": files[11],
382
+ "/relmio-icon.png": files[12],
381
383
  };
382
384
  }
383
385
 
@@ -1241,9 +1243,11 @@ function createRequestHandler(state) {
1241
1243
  ? "text/javascript; charset=utf-8"
1242
1244
  : path.endsWith(".svg")
1243
1245
  ? "image/svg+xml; charset=utf-8"
1244
- : path.endsWith(".css")
1245
- ? "text/css; charset=utf-8"
1246
- : "text/html; charset=utf-8";
1246
+ : path.endsWith(".png")
1247
+ ? "image/png"
1248
+ : path.endsWith(".css")
1249
+ ? "text/css; charset=utf-8"
1250
+ : "text/html; charset=utf-8";
1247
1251
  const contents = state.uiFiles[path];
1248
1252
  response.writeHead(200, {
1249
1253
  "Content-Type": contentType,
@@ -1,10 +0,0 @@
1
- <svg
2
- xmlns="http://www.w3.org/2000/svg"
3
- viewBox="0 0 64 64"
4
- role="img"
5
- aria-labelledby="relmio-mark-title"
6
- >
7
- <title id="relmio-mark-title">Relmio mark</title>
8
- <path fill="#137c74" d="M8 13 28 5v38c0 4-2 7-6 9L8 59Z" />
9
- <path fill="#12211f" d="M36 5l11 5c6 3 9 8 9 15v9c0 3 1 5 3 7l3 3c3 3 3 8 0 11s-8 3-11 0L40 44c-3-3-4-6-4-10Z" />
10
- </svg>