ClaudeVille: Enhanced, Improved, Refined#27
Open
TokenBrice wants to merge 542 commits into
Open
Conversation
…ants Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Lighten zenith from #1e0f08 to #241410 for a warmer, less near-black upper sky. Captures 1920x1080 baseline screenshot of the living-twilight sky. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…construction Move prefers-reduced-motion change listener from show() to the constructor so OS-pref toggles update motionScale immediately, regardless of whether show() has been called. Remove the now-redundant attachment in show(). Add skyRenderer?.dispose?.() at the end of hide() so the SkyRenderer offscreen canvas cache is released when world mode is hidden. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…er, add dispose Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Streamline CLAUDE.md and AGENTS.md with clearer formatting, remove redundant sections, and update references to reflect current workflow. Keep both files in sync per project conventions. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Opus → Valkyrie battle-seraph (pale armor, crimson wings). Sonnet → true wizard archmage (blue-violet robes, pointed hat, crystal staff). Haiku → apprentice mage (amber pointed hood, wand, spellbook). Manifest prompts updated to match; assetVersion bumped. Also adds cloud and moon atmosphere entries and removes the astrolabe sub-sprite from the observatory definition. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switched from domed research observatory to a scholarly stone clock tower with a large circular clock face, blue slate roof, and copper-blue accents. Removed the animated astrolabe sub-sprite. Updated buildings.js entrance/visitTile positions to match new footprint. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…prites AtmosphereState drives a real-time day/night phase used by SkyRenderer and the new WeatherRenderer. SkyRenderer gains multi-phase sun glow modulation (dawn rose-gold → noon white → dusk amber-red), improved horizon wash layering, and cloud parallax wind-drift decoupling. WeatherRenderer handles rain, fog, and storm overlays keyed on AtmosphereState intensity. Adds three cloud sprites (cumulus, wisp, overcast-bank) and a cool crescent moon sprite generated via Pixellab. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BuildingSprite gains a radial light bloom pass composited at each torch and brazier emission point, hearth glow intensity wired to visitor presence, and an improved lighthouse beam with soft rotation geometry. IsometricRenderer integrates AtmosphereState for ambient color shifts and wires WeatherRenderer into the clear path. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add mobile/narrow viewport breakpoints (≤700px) across all layout stylesheets: topbar wraps center nav to a scrollable second row, sidebar narrows, dashboard cards reflow to single column, activity panel and layout adjust accordingly. No layout changes on desktop widths. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… script world-enhancement-plan.md: 35-item ranked visual rendering backlog from parallel subagent audit (terrain, buildings, agents, sky, camera). weather-atmosphere-clock-system.md: implementation plan for the living sky sprint. generate-pixellab-revamp.mjs: minor prompt update. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
App.js threads devicePixelRatio (capped at 2×) through canvas sizing so sprites and labels render sharp on Retina/4K. Camera gains fractional zoom steps [1, 1.5, 2, 2.5, 3] with 150 ms ease-out animation, world- edge bounds clamping on pan/follow/center, and a reduced-motion gate that skips the animation. Minimap gains a live viewport frustum overlay. Implements T0.4 and T0.5 from the world-enhancement-plan. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… reroute Buildings: taskboard shifted south to y=33, expanded visit-tile sets for harbor and taskboard to reduce crowding around entrances. Town plan: production-row route now loops through the taskboard area, two bridges replaced by one wider central elderwood bridge at x=18 y=25. Scenery: bridge accent props updated to match the new single-bridge layout. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Agent: consolidate target-building resolution into a single _buildingForToolName() call; git read-commands (status, diff, log, etc.) now route to harbor instead of archive; archive pattern no longer claims git commands. Building: containsVisitPoint uses ±0.72 tile float tolerance instead of strict integer equality, fixing agents that arrive slightly off-center from not being recognised as present. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pathfinder: fast line-walk path now checks whether the route crosses bridge tiles; if so, it runs the full lookahead/simplify pass to ensure agents step onto the bridge walkable rather than jumping over it. _walkableCandidates returns early on the first walkable hit. SceneryEngine: _collectBuildingWalkBlocks is now called after the footprint set is ready so exclusion tiles can extend it correctly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…er trim Activate the four breathing-idle frame rows already generated in every character sprite sheet; AgentSprite now cycles through frames 0–3 at the existing 500 ms cadence instead of locking to a single cell. Remove the unused _drawStatusRibbon() method (36 lines with no call site). ParticleSystem: add reduced-motion guard before allocating particle resources. Provider trim colors extended to model sub-variants. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
IsometricRenderer: thread devicePixelRatio through all coordinate transforms (click hit-test, drag, wheel); cache per-light radial gradients keyed on (x, y, radius, color, phaseBucket) eliminating the main per-frame allocation hot-spot (T0.1). BuildingSprite: hearth glow intensity wired to visitor count; lantern-glow overlay fires on all torch/brazier props regardless of split-pass. SkyRenderer: gradient stops redistributed for perceptual depth, cloud parallax wind-drift decoupled from camera parallax, sun glow radius and warmth modulate with AtmosphereState phase. AtmosphereState: exposes shadowAngleRad and lightWarmth for downstream consumers. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New Opus valkyrie sprite sheet with corrected silhouette. AssetVersion bumped to bust browser caches across all sprite consumers. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
world-enhancement-plan.md: multi-model review pass (haiku/sonnet/opus) added Tier 0 architectural prerequisites (T0.1–T0.6), corrected misdiagnoses (vignette cache was already implemented), re-tiered several items, and added status tags (NEW/DONE/REVISED/MOVED). codex-equipment-coherence-design.md: new design document for Codex agent equipment coherence sprint. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Codex equipment is now driven by model class (spark → multitool, gpt54 → wrench, gpt55 → swordShield) instead of reasoning effort tier. Effort tier is carried by floor rings and crown accessories unchanged. Scrubber tuning is keyed by class to remove baked-in weapon stacking for each sheet variant. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
BuildingSprite gains a typed LIGHT_SOURCE_REGISTRY (beam lights for watchtower) and EMITTER_LIGHTS table; pushSource deduplicates emitters at collection time. IsometricRenderer adds StaticPropSprite.drawPart with clip-based back/front split for correct occlusion ordering. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…d equipment All six character sheets regenerated (Claude Haiku/Opus/Sonnet, Codex Spark/GPT-5.4/GPT-5.5) to match the new class-grammar equipment. Manifest bumps assetVersion. Validator and capture script updated to handle per-class scrubber parameters. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…l-rituals New plans cover the chronicle/event log feature, familiars and council NPCs, foundational feature scaffolding, and tool-ritual ceremonies. world-enhancement-plan updated to mark #39 (Codex equipment coherence) as implemented and renumber Sprint D–E items. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Codex equipment research captures (overview + per-model grids), superpowers session history, and visual debug/reference images from layering, sonnet-loki design, taskboard hero, and valkyrie sprite work. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Six rendering improvements for the north lagoon: - A1: river-kind basins now get a deepRatio (0.32 polyline, 0.40 basin), unlocking centre-darkening, depth wash, and wave amplitude for the lagoon — paths that were silently no-ops because every river was treated as uniformly shallow. - A2: animated expanding ripple ring drawn before the static pool fill in _drawTropicalWaterfalls, driven by waterFrame phase. - A3: SceneryEngine exposes lagoonWaterTiles; renderer routes lagoon water to a warm tropical teal shimmer (rgba 120,230,200) versus the existing cool blue used for harbor sea. - A4: two new gull staging waypoints + a fifth flock route that loops five birds over the north lagoon airspace. - A6: fish-school deep-tile guard is now (deep && !lagoon), so the lagoon school at (18.2, 10.4) keeps rendering after A1 makes its tile deep. - B1: lagoon-adjacent shore tiles get a soft additive foam radial wash in _drawShoreCrest, gated on adjacentLagoon to avoid affecting the harbor. - B7: lagoon water palette lerps toward a desaturated grey-teal under rain or overcast weather above intensity 0.4, with shimmer frequency scaled up proportionally. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Five new lagoon sprites generated via Pixellab map_object tool. Sizes match manifest declarations (32, 64, 32, 48, 48 px). assetVersion bumped to bust browser caches. - veg.lilypad: floating cluster, three pads with one lotus bud - prop.lakeShrine: weathered stone shrine for mid-lake landmark (asset shipped; placement deferred — see north-lagoon-sprint plan) - prop.mangroveRoot.twisted: shore root cluster - prop.mangroveRoot.arch: shore archway root - prop.driftwood.log: half-submerged bleached log with sprout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…llbacks Four reviewer-flagged fixes consolidated into one renderer pass. R3 #1 — SkyRenderer.attach() / detach() lifecycle: SkyRenderer used to install bus subscriptions in the constructor and clear them on dispose(). The renderer instance survives hide() / show() mode toggles (only its cache is invalidated), so after the first toggle the unsubscribers were dropped and aurora / shooting-star events silently stopped firing. Now subscriptions live in attach() (idempotent, clears any prior set first) and detach() (clears them). IsometricRenderer .show() calls attach(); hide() calls detach() + releaseCache(). releaseVolatileCaches() and invalidateViewportCaches() switched from dispose() to releaseCache() so resizing no longer kills listeners. dispose() still composes detach + cache release + fallback teardown. R6 #1 — SeasonalAmbience static fallback now renders: Previously _seedStaticFallback called particleSystem.spawn, but the particle system is muted at motionScale === 0, so reduced-motion users saw nothing. Added per-season staticColor/staticSize, _staticFallbackDots array, and a public drawStatic(ctx) direct-canvas pass. IsometricRenderer ._drawTerrain calls it after _drawStaticBuildingSmoke, mirroring the existing Forge/Mine static pattern. setEnabled(false) clears the array. R6 honorstudio#4 — Open-sea gulls keep at least one bird per route: _openSeaGullPositions filtered by cyclePhase <= activeSpan, and at motionScale === 0 used time=0 — birds with cycleOffset > activeSpan disappeared entirely. Under reduced motion now folds cycleOffset back into the active window (cycleOffset % activeSpan) and skips the population gate so every route renders at least one deterministic bird. R6 medium — Archive doorway static burst under reduced motion: _drawArchiveEnhancement now calls _drawArchiveStaticDoorBurst when motionScale === 0 and readIntensity > 0.6, stamping five fixed 2px dots around the doorway so the reading surge stays visible without the particle burst. Sources: R3 #1, R6 #1, R6 honorstudio#4, R6 medium. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
R6 #2 — chatBubbleAnim advanced unconditionally in update(), so the chat ellipsis dots cycled `.` `..` `...` even under reduced motion. Scaled the per-frame advancement by this.motionScale so the field pins at its reset value of 0 when motion is disabled; _drawChatEffect then renders a stable single dot. R6 medium — the idle bob math (Phase 1.13) computed Math.sin(this.frame * 0.25) * 0.4 for IDLE status. Under reduced motion, this.frame is held elsewhere, so the bob was static in practice — but the intent was implicit. Added an explicit && this.motionScale > 0 guard so the bob is unambiguously zero when reduced-motion is on, regardless of any future change to the frame-advance gate. Status emote thinking-dots animation was already gated correctly (animated = this.motionScale > 0 at the existing site); no change required there. Source: R6 #2, R6 medium. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…d + sidebar
The three new AgentStatus constants from Phase 0.4 only reached the
world-mode sprite layer; the DOM side (Formatters, AgentPresentation,
DashboardRenderer) and the CSS dot/border-left palette silently
downgraded them to "idle/grey". Reviewer R2 flagged this as the most
material architecture gap.
Formatters.statusClass — extended the whitelist so RATE_LIMITED,
ERRORED, WAITING_ON_USER produce snake-case suffixes matching the
existing --working / --idle / --waiting convention.
AgentPresentation.statusPresentation — added a statusOverrideLabel map
for the three new statuses ("Rate-limited", "Errored",
"Waiting for you") and corresponding color entries:
rate_limited #f59e0b amber
errored #ef4444 red
waiting_on_user #facc15 yellow
Overrides take precedence so a future i18n key addition stays
forward-compatible. sortAgentsByStatus priority is now
errored < waiting_on_user < working < waiting < rate_limited < idle —
the most urgent states surface to the top of the sort.
DashboardRenderer._detailCandidates extends the eager-fetch active
bucket from {working, waiting} to also include errored, rate_limited,
waiting_on_user so urgent off-screen agents still receive detail
fetches.
CSS — added matching rules in sidebar.css (.sidebar__agent-dot--*)
and dashboard.css (.dash-card--*, .dash-card__status--*) using the
same hex values the JS now emits, so the dot, border, and label colors
read distinctly under each new status. Pulse animations tuned per
urgency (errored fastest, waiting_on_user mid, rate_limited slower).
Source: R2 status presentation gap.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
R7 reviewer flagged 62 leaked planning-doc comments (`Task 2.12: ...`, `Phase 4.10 — ...`, `WU-C: ...`) violating the root CLAUDE.md policy "no task/PR/issue refs in comments". This commit removes them in place or rewrites the substantive WHY half without the prefix. Distribution: HarborTraffic (17), IsometricRenderer (22), AgentSprite (14), BuildingSprite (12), LandmarkActivity (5), plus single-spot strips in DomainEvent / theme / ChronicleMonuments / RitualConductor / AgentSimulator / gitEvents / smoke header. Net -39 lines. Conservative dead-code surgery alongside the comment pass: - AgentBehaviorState.errorBurst: removed. Never assigned anywhere; Phase 0.4 plan referenced it but no consumer wired it. The other three instrumentation fields (completedVisits, totalDwellMs, reroutes) are KEPT — they're surfaced via window.__agentBehavior and the debug snapshot. - AgentSprite._inferFacingPoint: dropped the dead `behavior.current Reservation` and `behavior.intent` fallback branches. VisitTile Allocator returns a reservation but it isn't stored on the behavior state today; the explicit-arg → building.facingPoint → visitTile. facingPoint chain handles the real data sources. - MonumentRules.enableVerifiedStones gate + _verifiedStone method + 'test-summary' branch: removed. The constructor option was never set true. Both call sites (ChronicleMonuments, MonumentPlanter) use `new MonumentRules()` with no args. - ModelVisualIdentity.js compat re-export of runtimeRoleAccessory: deleted. AgentSprite imports directly from RoleAccessory.js; no other consumer. Validation: every modified file passes `node --check`; both smoke scripts (adapters.mjs 5/5, relationship.mjs 7/7) still PASS; live API endpoints all 200. Source: R7 #1, R7 #2, R7 honorstudio#3, R7 honorstudio#4, R7 honorstudio#5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Seven specialized reviewers audited the 33-commit Phase 0-5 rollout of the world-enhancement-council plan. R4 (visual in-situ via Playwright) was aborted because the headless camera was rendering a broken viewport; the user's real-browser session validated the visuals independently. R5 returned first; R1/R2/R3/R6/R7 returned in the second batch. Verdicts: - R1 plan audit: approve (55 DELIVERED, 4 explicit DEFERRED, 1 PARTIAL acceptably narrowed, 0 MISSING). - R2 architecture: approve-with-fixes — stale event-bus table, orphan emits, and a status-presentation gap (already fixed). - R3 performance: approve-with-fixes — Phase 0/5 cache claims hold, SkyRenderer subscription-lifecycle bug (fixed). - R5 adapter+server: approve-with-fixes — smokes PASS, parser handles every edge case, server.js + WebSocketClient changes validated. - R6 reduced-motion: 4 blocking + 3 medium gaps (chat ellipsis, SeasonalAmbience static fallback, gull fallback, archive doorway static — all fixed). - R7 code quality: approve-with-fixes — 62 task/phase prefix comments + 4 dead-code surgeries (all applied). Findings reports live under agents/research/world-enhancement-council-2026-05-17-review/. The follow-on fixes from this review landed in: - d10ce0f fix(world): preserve Sky subscriptions across mode toggles - ddd258f fix(agent): gate chat ellipsis + idle bob behind motionScale - 383f98c fix(ui): surface new statuses in dashboard + sidebar - ad48b1d chore(world): strip task/phase prefix comments + dead-code Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Text was rendering at 6px in "Press Start 2P" (a bitmap font designed for 8px multiples), producing garbled glyph artifacts at zoom < 1.5. Bumped text to 10px and scaled the box, indicator glyphs (6→8px), padding, and slot stride to match for legibility. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
DeepSeek borrowed Gemini's oracle sprite, colliding with the Claude mage family. Give it a dedicated rogue/archer class across the tier ladder: - reasoner: hooded longbow ranger (apex) - pro: dual-dagger assassin (also the bare-deepseek fallback) - flash: light single-dagger scout Repoint both the frontend (ModelVisualIdentity) and server (sessionPresentation) resolvers to the per-tier sprites and a new deepseek palette; bump assetVersion. Also fix generate-character-mcp.mjs for PixelLab's new states[] export schema (backward compatible with the legacy flat layout). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I forked Claudeville and worked on it quite a bit using Claude and Codex, I figure you could be interested
