Skip to content

feat(www): refresh branding and interactive hero - #52

Merged
sanchitrk merged 26 commits into
canaryfrom
site-logo-work
Oct 9, 2026
Merged

sanchitrk merged 26 commits into
canaryfrom
site-logo-work

Conversation

@sanchitrk

Copy link
Copy Markdown
Contributor

Refresh the site branding with a theme-aware C-and-cursor logo, SVG assets, favicon fallbacks, and a solid CODEWORK hero wordmark with subtle outline depth.

Replace the drifting hero background pixels with a faint aligned grid and scattered file-extension tiles. Logo-shaped characters chase and eat the tiles, which respawn after nine seconds. Desktop uses five characters; mobile uses one or two. Preserve click-and-hold logo stamps and start the entrance animation from the first painted frame for consistent mobile loading.

Validation:

  • vp check passed.
  • vp run typecheck passed.
  • Checked desktop, 390px mobile, and 320px mobile layouts in the running site, including character movement, tile visibility, and click-and-hold stamps.

sanchitrk and others added 26 commits October 6, 2026 19:38
* feat(plugin): structured system-prompt sections

Replace the single-string PromptRegistry with a foundation (the untagged
head) and named sections. Plugins write sections by value -- Section.Rules,
Addendum, ProjectContext, Skills, or Section.define(name, { format }) -- so
two plugins merge into one <rules> instead of overwriting the prompt.

The harness now renders the prompt: foundation, <tools>, the built-in
sections, <cwd>, then custom sections in first-write order. Tool
promptGuidelines lead <rules>; list sections dedupe into bullets; a format
mismatch on one name fails the snapshot. codework.prompt.default is reduced
to content, and the tool index now covers the final catalog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(harness): drop Location.Ref; location is always the mount cwd

Ref.directory let a Location point somewhere other than the mount's cwd,
where tools actually run. Only a test fixture set it, and Location.layerWith
and defaultLayer took a Ref with no callers at all. Remove all three; the
fixture mounts the remote sandbox at the repo instead, as the runner mounts
at the session directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(harness): regenerate retry artifacts from the tests

The committed artifacts had been reformatted outside the test (tab-indented,
mixed with spaces), so the retry snapshots never matched what vitest writes
and failed on every run. Regenerate them with `-u`; the recorded content is
unchanged, only the bytes now come from the test. `__artifacts__/**` is
already excluded from `vp fmt`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(plugin): trim prompt section comments to decisions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(plugin): allow hyphens in prompt section names

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(harness): tweak default plugin prompt & rules to the registered tools

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* feat(plugin): structured system-prompt sections

Replace the single-string PromptRegistry with a foundation (the untagged
head) and named sections. Plugins write sections by value -- Section.Rules,
Addendum, ProjectContext, Skills, or Section.define(name, { format }) -- so
two plugins merge into one <rules> instead of overwriting the prompt.

The harness now renders the prompt: foundation, <tools>, the built-in
sections, <cwd>, then custom sections in first-write order. Tool
promptGuidelines lead <rules>; list sections dedupe into bullets; a format
mismatch on one name fails the snapshot. codework.prompt.default is reduced
to content, and the tool index now covers the final catalog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(harness): drop Location.Ref; location is always the mount cwd

Ref.directory let a Location point somewhere other than the mount's cwd,
where tools actually run. Only a test fixture set it, and Location.layerWith
and defaultLayer took a Ref with no callers at all. Remove all three; the
fixture mounts the remote sandbox at the repo instead, as the runner mounts
at the session directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(harness): regenerate retry artifacts from the tests

The committed artifacts had been reformatted outside the test (tab-indented,
mixed with spaces), so the retry snapshots never matched what vitest writes
and failed on every run. Regenerate them with `-u`; the recorded content is
unchanged, only the bytes now come from the test. `__artifacts__/**` is
already excluded from `vp fmt`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(plugin): trim prompt section comments to decisions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(plugin): allow hyphens in prompt section names

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(harness): tweak default plugin prompt & rules to the registered tools

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(harness): load AGENTS.md and CLAUDE.md into the system prompt

A built-in prompt plugin, codework.prompt.instruction, walks from the
sandbox cwd up to the sandbox root and appends the first readable
instruction file per directory to <project_context>, closest last.
Overrides (AGENTS.override.md, CLAUDE.override.md) beat AGENTS.md and
CLAUDE.md in their directory. Files are read only through the sandbox,
so local and remote sandboxes behave alike and nothing on the host is
read. Inside a linked worktree nested in its main checkout, the main
checkout's same-named file is skipped so it is not applied twice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(harness): instruction discovery across host, Daytona and Vercel sandboxes

One scenario runs on the host sandbox (every vp test) and on Daytona and
Vercel (test:sandbox:e2e), all against a shared artifact: nested files,
overrides, a nested git worktree, and a host-dir link whose settings turn
the plugin off while host files are never read. A relink case moves one
session Daytona -> Vercel -> host, and a real-repository case clones a
pinned fixture branch of codeworksh/69th into all three and requires the
same context per directory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Move effect and @effect/* from 4.0.0-rc.115 to stable 4.0.1. The rc pin let
@effect/platform-node resolve platform-node-shared@4.0.1 on fresh installs,
which crashes against effect rc.115.

- effect/unstable/* modules are now effect/*
- Encoding.encodeHex is Hex.encode from effect/encoding
- Schema.isStartsWith is Schema.isStartingWith
- serve the RPC server through RpcServer.layerHttp; the shared websocket
  protocol layer was built twice under 4.0.1 and RPCs over WebSocket hung

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Videos show as thumbnails until played, then swap in a youtube-nocookie
embed. The rail is full-bleed with neighbours peeking in; arrows and the
scroll bar appear once there is more than one video. The lede gets a
beating pixel heart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tiles now fill the top corners too, keeping the middle band clear. Small
screens, where tiles grow and slots are few, fill every slot, and resting
tiles are lifted a tenth from dim toward lit so their labels read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Small screens have few tile slots, each with a fixed dither threshold, so
whole corners went dark. There, tiles stay visible and each corner keeps
up to three slots nearest its own corner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sanchitrk
sanchitrk changed the base branch from canary to main October 9, 2026 05:13
@sanchitrk
sanchitrk changed the base branch from main to canary October 9, 2026 05:14
@sanchitrk
sanchitrk changed the base branch from canary to dev October 9, 2026 05:14
@sanchitrk
sanchitrk changed the base branch from dev to canary October 9, 2026 05:21
@sanchitrk
sanchitrk merged commit e4e7ce7 into canary Oct 9, 2026
@sanchitrk
sanchitrk deleted the site-logo-work branch October 9, 2026 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant