Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,7 @@ debian
website
README.md
AGENTS.md
# Branding for README.md only. docs/ otherwise feeds the image build context
# and its hash, so leaving these in would rebuild the image for every user
# whenever the logo changes.
docs/assets
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<p align="center">
<img src="docs/assets/appicon.png" alt="Enclave" width="128" height="128">
</p>

<h1 align="center">Eclipse Enclave</h1>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropping the <h1> leaves the README with no top-level heading, so GitHub's outline and any renderer that ignores <picture> lose the project name. The PR description does not mention this one; a maintainer should confirm it is intended.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, though not quite as suggested. Rather than adding back a text <h1> that repeats the wordmark already in the logo, the logo now is the <h1>:

<h1 align="center">
  <picture>
    ...
    <img src="..." alt="Eclipse Enclave" width="400">
  </picture>
</h1>

That restores the single top-level heading you flagged, and the accessible name comes from the alt. It also keeps the heading rule GitHub draws under an <h1>, which the README already had before this PR.

<h1 align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/enclave-logo-horizontal-darkbg.png">
<img src="docs/assets/enclave-logo-horizontal-lightbg.png" alt="Eclipse Enclave" width="400">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

docs/ is copied into the sandbox image and feeds the image build hash (Dockerfile path, hash input), so these README-only PNGs force an image rebuild for every user whenever the branding is touched. .dockerignore already has a "repo-only content" block (here) that docs/assets would fit into.

</picture>
</h1>

A Docker-based sandbox for running agentic coding tools — Claude, Codex, OpenCode, and others — in an isolated container while keeping your project files on the host. Network access is restricted to allowlisted domains by default, auth and history persist across sessions, and YOLO mode is on so agents can act without confirmation prompts.

Expand Down
2 changes: 1 addition & 1 deletion docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ The restricted network request flow has a separate
- [`runtime-assets/net.sh`](../runtime-assets/net.sh) holds shared entrypoint network helpers (local resolver and loopback proxy setup).
- [`runtime-assets/microvm/alpine/`](../runtime-assets/microvm/alpine/) holds the experimental QEMU Alpine bundle init and builder.
- [`extensions/tools/<tool>/templates/`](../extensions/tools/) holds per-tool settings templates baked into the image during build.
- [`docs/`](../docs/) is included in the runtime build context so the image can install agent-facing help under `/usr/share/doc/enclave/`.
- [`docs/`](../docs/) is included in the runtime build context so the image can install agent-facing help under `/usr/share/doc/enclave/`. [`docs/assets/`](../docs/assets/) is excluded in [`.dockerignore`](../.dockerignore); it holds only `README.md` branding, and keeping it out spares users an image rebuild whenever the logo changes.

## Key Concepts

Expand Down
Binary file removed docs/assets/appicon.png
Binary file not shown.
Binary file added docs/assets/enclave-logo-horizontal-darkbg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed website/assets/appicon.png
Binary file not shown.
108 changes: 108 additions & 0 deletions website/assets/enclave-logo-horizontal-lightbg.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
90 changes: 90 additions & 0 deletions website/assets/enclave-mark-lightbg.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/assets/social-card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion website/css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ h2 + .section-lead { margin-top: 0; }
gap: 20px;
}
.nav-brand { display: flex; align-items: center; gap: 10px; font-weight: 800; color: var(--heading); font-size: 1.05rem; }
.nav-brand img { width: 28px; height: 28px; }
.nav-brand img { height: 30px; width: auto; }
.nav-links { margin-left: auto; display: flex; align-items: center; gap: 26px; }
.nav-links a { color: var(--muted); font-weight: 600; font-size: 0.92rem; }
.nav-links a:hover { color: var(--heading); }
Expand Down Expand Up @@ -392,6 +392,7 @@ footer.site-footer {
color: var(--muted);
}
footer.site-footer a { font-weight: 600; }
.footer-logo { display: block; width: 168px; height: auto; margin: 0 auto 20px; }

/* ------- Responsive ------- */
@media (max-width: 720px) {
Expand Down
26 changes: 26 additions & 0 deletions website/docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,38 @@ relative `../` is handled client-side, matches no docs route, and renders the
docs 404 page instead. `onBrokenLinks` is set to `throw` to catch this at build
time.

The footer logo is the one exception: `themeConfig.footer.logo` rejects
`autoAddBaseUrl`, so it cannot link home without being rewritten back under the
docs base path. It stays unlinked; the footer's "Home" entry covers that.

The custom domain lives in a `CNAME` file at the root of the published branch.
The publish workflow re-creates it on every deploy (`cname:` input), because the
deploy action replaces the published tree.

Both website workflows push with the organization secret `DEPLOY_TOKEN`.

## Brand assets

The Eclipse Foundation logo comes in a horizontal lockup (mark plus wordmark)
and an icon-only mark, each with a variant for light and for dark backgrounds.
The `-darkbg` variants are the same artwork with the cube faces, inner disc, and
wordmark in white; do not mix them up, or the wordmark disappears.
Comment on lines +57 to +60

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logo artwork is Eclipse Foundation branding, but NOTICE.md only covers the name (Trademarks section), so the checked-in files fall under the blanket MIT declaration by default. Adding a line there recording the origin and that trademark terms apply to the marks would be cheap insurance.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not doing this one, on maintainer instruction rather than on the merits. The decision for this PR was to keep the logo credit in the commit message and the PR description only, and to leave NOTICE.md and the site itself untouched.

Flagging that the underlying point is separate from attribution: whether the checked-in artwork needs its own NOTICE.md entry recording origin and trademark terms is an IP question for a maintainer, and it applies to the logo regardless of this PR. Worth its own issue if we want it settled.


| File | Used by |
| --- | --- |
| `static/img/enclave-mark-{lightbg,darkbg}.svg` | docs navbar (`logo.src` / `logo.srcDark`) |
| `static/img/enclave-logo-horizontal-darkbg.svg` | docs footer, which is dark in both color modes |
| `static/img/favicon.png` | docs favicon |
| `static/img/social-card.png` | Open Graph / Twitter card |
| `../assets/enclave-mark-lightbg.svg` | marketing site navbar |
| `../assets/enclave-logo-horizontal-lightbg.svg` | marketing site footer |
| `../assets/{favicon,social-card}.png` | marketing site favicon and social card |
| `../../docs/assets/enclave-logo-horizontal-{lightbg,darkbg}.png` | repository `README.md` |

The favicon and social card are rendered from the SVGs. The README uses PNG
because these SVGs carry their fills in an embedded `<style>` block, and PNG
sidesteps any question of how GitHub's markdown pipeline treats that.

## Editing content

Docs live in `docs/`. The sidebar is autogenerated; control ordering with the
Expand Down
14 changes: 12 additions & 2 deletions website/docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ const config = {
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
image: 'img/logo.png',
image: 'img/social-card.png',
colorMode: {
// Match the light marketing site; the toggle is still available.
defaultMode: 'light',
Expand All @@ -99,7 +99,8 @@ const config = {
title: 'Eclipse Enclave',
logo: {
alt: 'Eclipse Enclave logo',
src: 'img/logo.png',
src: 'img/enclave-mark-lightbg.svg',
srcDark: 'img/enclave-mark-darkbg.svg',
},
items: [
{
Expand All @@ -123,6 +124,15 @@ const config = {
},
footer: {
style: 'dark',
// The footer is always dark, so it uses the dark-background lockup
// regardless of the active color mode. It stays unlinked: the footer
// logo cannot opt out of `autoAddBaseUrl`, so a `pathname://` href
// would be rewritten back under the docs base path.
logo: {
alt: 'Eclipse Enclave',
src: 'img/enclave-logo-horizontal-darkbg.svg',
width: 168,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Infima caps .footer__logo at max-width: 10rem (160px) and custom.css does not override it, so 168 renders clamped. Either drop to 160 or add the override next to the other .footer rules.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked this and the premise does not hold: --ifm-footer-logo-max-width is min(30rem, 90vw) in the bundled Infima, not 10rem.

infima/dist/css/default/default.css:317   --ifm-footer-logo-max-width: min(30rem, 90vw);
infima/dist/css/default/default.css:2219  .footer__logo { max-width: var(--ifm-footer-logo-max-width); }

The built site carries the same value (--ifm-footer-logo-max-width:min(30rem,90vw)), so the cap is 480px and width: 168 renders unclamped. Leaving it at 168 to match the marketing footer, which uses the same width. No change made.

},
links: [
{
title: 'Docs',
Expand Down
Loading
Loading