Open
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix Dockerfile env vars (ZNDRAW_HOST instead of ZNDRAW_SERVER_HOST, remove compose-level vars from image) - Consolidate ethanol.xyz into docker/templates/ with symlinks - Standalone: add dedicated taskiq-worker container, use LMDB storage - Production: add MongoDB, dedicated taskiq-worker, composable CLI template loading (replaces load_template.py script) - Delete docker/production/load_template.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace per-session ephemeral Redis settings with per-room persistent SQL scene objects (lights, fog, pathtracing, property inspector). Backend: - Add LightPosition, DirectionalLight, AmbientLight, HemisphereLight - Add Fog, PathTracing, PropertyInspector geometry models - Initialize default scene objects in room creation - Remove settings.py, session_settings endpoints, and Redis TTL cleanup - Remove fog fields from Floor (now standalone Fog geometry) Frontend: - Add Lights.tsx, Fog.tsx scene object renderers - Add LightPositionRenderer for Fixed/Camera toggle UI - Wire 'i' key to toggle PropertyInspector geometry active field - Remove useSettings, SettingsPanel, SceneLighting, room-config types - Remove showInfoBoxes Zustand state (replaced by geometry active) - Add overflow:auto to sidebar panel to respect progress bar height - Register LightPositionRenderer in jsonforms custom renderers
- Replace deploy.replicas with named services (zndraw-1/2/3) using YAML anchors for proper nginx ip_hash sticky sessions - Add PostgreSQL + db-init container to production compose; gate DB writes with ZNDRAW_INIT_DB_ON_STARTUP=false to avoid unique_job constraint violations when replicas start concurrently - Call ensure_internal_jobs() in init_database() so db-init seeds Job rows once; replicas only register broker tasks (no DB writes) - Bump asebytes>=0.3.0a3, zndraw-joblib>=0.1.4, add asyncpg dependency - Centralize REDIS_URL and WORKER_ENABLED in .env template - Add auth login to template-loader for both standalone and production Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Caddy's dynamic DNS upstream discovery resolves all replica IPs from Docker's internal DNS on each request, allowing clean deploy.replicas: 3 instead of named services with YAML anchors. Removes 84-line nginx.conf in favor of a 16-line Caddyfile. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
22 molecular structures from ASE's S22 benchmark set instead of a single ethanol frame. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add CircleCurve geometry — a parametric circle/ellipse path for camera orbits. Supports percentage-based angles, 3D rotation via Euler angles, and XY scale for elliptical shapes. Includes scipy dependency for Rotation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change curveRefs from CatmullRomCurve3 to Curve<Vector3> - Update resolvePosition to accept CircleCurve geometry type Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Renders parametric circle/ellipse via THREE.EllipseCurve + drei Line. Registers custom EllipseCurve3D in store for CurveAttachment resolution. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ve attachments Change CircleCurve position/rotation/scale from Vec3 to list[Vec3] with a length-1 validator so the editing system (useGeometryEditing) works out of the box. Add Vec3Renderer for the properties panel to display x-custom-type: "vec3" fields as 3 number inputs. Allow Curve/CircleCurve with active=false to stay mounted so CurveAttachment resolution still works. Update Camera geometry filter to accept CircleCurve as attachment target. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove redundant `height` field from Floor — position Y component now controls vertical placement. Sync camera `up` vector in useGeometryCameraSync so R-key rotation persists to the backend. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Vec3Renderer now supports both nested [[x,y,z]] (list[Vec3]) and flat [x,y,z] (tuple) formats, writing back in the same shape it received. Add x-custom-type vec3 to Camera.up so it renders as three inputs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Make ZnDraw client REST-only by default — socket connects lazily only when mount/jobs/wait is needed. Remove presence_sid Redis TTL keys (heartbeat mechanism), deriving frontend presence from the camera hash instead. Validate active-camera switches against room_cameras. - Remove presence_sid, heartbeat handler, Heartbeat models, presence_ttl - Rewrite VerifiedSessionDep to verify via session's own camera (SID match) - Add hexists validation to set_active_camera (target must exist) - Lazy socket: __post_init__ is REST-only, _ensure_socket_connected() gates mount/register_job/register_provider/wait/jobs property - Remove auto_connect field, __len__ queries server when socket not connected - Remove frontend heartbeat emission - Update all affected tests (788 pass, 0 new regressions) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…o ZnDraw Extract accessor classes (Bookmarks, ChatMessages, Extensions, Figures, Geometries, Screenshots, Selections, SelectionGroups, Sessions, Tasks) from client.py into accessors.py implementing collections.abc interfaces. Add APIManager methods for rooms listing, chat, screenshots, extensions, and tasks. Add ZnDraw.token field for direct JWT auth, classmethods (list_rooms, login), and properties (locked, chat, extensions, tasks). Migrate all 15 CLI command modules from Connection class to ZnDraw/ get_zndraw() with cli_error_handler() for RFC 9457 error handling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
vis.run() now accepts either a fully-qualified extension name string (pure REST, no socket needed) or an Extension instance (existing path). Simplify Extensions accessor to return raw dicts instead of dynamic pydantic classes via create_model. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Make url optional (str | None = None) on ZnDraw(), list_rooms(), and login() with PID file auto-discovery via find_running_server() - Harden cli_error_handler() to catch KeyError, PermissionError, ValueError, ZnDrawError, and RoomLockedError from raise_for_status() - Add uv run prefix to all CLI examples in SKILL.md, add molecule recipe to task mapping, add bare-CLI warning to common mistakes - Add 6 CLI extension tests and 7 auto-discovery tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Slim `geometries list` to compact summary (key/type/active/owner) instead of dumping full data blobs + schemas. Add `geometries types` and `geometries describe <Type>` for local geometry type discovery. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
e8a426c to
0302b17
Compare
|
Important Review skippedToo many files! This PR contains 163 files, which is 13 over the limit of 150. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (163)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
for more information, see https://pre-commit.ci
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.
No description provided.