Skip to content

Giux-CalcLab / Project

Project history

Giux-CalcLab Changelog

This page records features and changes that are publicly available in Giux-CalcLab.

2026-09-13 - Explicit SPICE document copy destination and menu contrast

  • Kept the SPICE Project control usable for saved documents, clearly separating their current Project from an explicitly selected Save-copy destination.
  • Added Save a copy to this Project using the existing server-validated document creation flow, with a new document ID and no change to the original document or its Project membership.
  • Corrected the New document menu contrast, hover and keyboard-focus states with the shared dark-theme tokens on desktop and mobile.
  • Versioned the shared stylesheet URL so browsers immediately load published theme corrections instead of retaining a stale cached menu.
  • Restored the graphical Schematic tab when a browser-local Netlist is active, so the circuit canvas remains reachable without creating an implicit server-side document.

2026-09-13 - Project selector for first SPICE document save

  • Added a server-backed Project selector to the existing SPICE context bar for choosing where a new standalone Schematic or Netlist is first saved.
  • Exposed the normal Project creation backend from the same save flow while keeping unsaved UI selection separate from persisted job and result provenance.
  • Locked existing documents to their stored Project for ordinary Save: changing or manipulating the selector cannot silently move a document.

2026-09-13 - True independent Project documents

  • Made Schematic and SPICE Netlist true independent Project documents with stable document IDs, their own names, content, timestamps and document-level save state.
  • Added multiple Schematic and multiple Netlist documents per Project, including standalone Netlists that never create an empty graphical companion.
  • Kept schematic-generated netlists as temporary execution inputs that are never auto-saved as documents, and recorded exact source-document provenance on simulation jobs and kept results.
  • Added automatic, backed-up compatibility conversion for legacy SPICE bundles while preserving Project UUIDs, ownership, downloads, saved Results and existing public links.
  • Kept Text, Markdown and CSV datasets in the same Project document listing without introducing hierarchy, Resources or the future Artifact system.

2026-09-13 - Project-bound SPICE documents and results

  • Added a persistent Project context bar to SPICE, separate saved/modified state for Schematic and Netlist, and document-level save actions that never overwrite the sibling document.
  • Recorded server-job provenance for the originating Project and source document, keeping temporary and saved results attached to that origin through server-validated ownership.
  • Made permanent saving of a result created outside a Project require an explicit existing Project selection, while preserving global Jobs and Results views.
  • Kept legacy SPICE projects, combined portable downloads, sharing links and existing saved content compatible without a manual migration.

2026-09-12 - Generic project containers and project documents

  • Corrected the Workspace model so a Project is now a framework-neutral container with its own Documents and Results view; SPICE is a supported document family rather than the Project type.
  • Integrated Text, Markdown and imported CSV datasets directly into their containing Project, with type-specific Text Editor and paginated CSV Viewer actions instead of an independent Files silo.
  • Kept existing SPICE saves compatible without manual migration: their stable Project ID, ownership, content, Schematic/Netlist documents, active document, open, download, sharing and deletion workflows remain supported.
  • Preserved global Jobs, temporary results, saved simulations, Keep result, result viewer, downloads, logs, deletion, quotas and storage classification, while showing existing Project relationships where current metadata provides them.
  • This correction does not implement the future Artifact system, manifests, lineage, generic Resources, scripts or arbitrary SPICE multi-document projects.

2026-09-12 - Workspace refinement and initial file tools

  • Refined My Workspace into a lighter scientific work area organized around Projects, Recent / Saved Results, Jobs, Files / Tools and Storage while preserving existing simulation, queue, viewer, sharing, download, deletion and quota workflows.
  • Added an initial server-backed UTF-8 Text Editor for small .txt and .md documents, including create, edit, save, rename, download, unsaved-change indication, search, go-to-line and confirmed deletion.
  • Added an initial quota-aware CSV Viewer with UTF-8 validation, controlled delimiter detection, header and shape information, bounded server-side parsing, paginated escaped previews, reopen, download and confirmed deletion.
  • Integrated the supplied Giux-CalcLab Workspace icon set through a centralized resource/action mapping and responsive web-sized derivatives.
  • This release does not add the future Artifact system, manifests, lineage, generic Resources or advanced CSV scientific processing.

2026-09-12 - Explicit active SPICE document

  • Prepared the SPICE interface for its document model with equal Schematic 1 and Netlist 1 tabs, an explicit active-document state, and an unambiguous simulation-source indicator.
  • Made Netlist 1 a primary editable document while keeping its text independent from Schematic 1; Run now follows the selected document and preserves the existing inputKind = schematic | netlist execution paths.
  • This is the structural UI foundation for future project documents, not an implementation of arbitrary multi-document projects.

2026-09-12 - Bugfix: safe post-login application navigation

  • Fixed successful sign-in landing on the session JSON endpoint instead of an application page. Home, SPICE and Documentation sign-in links now preserve the originating page, with an account-page fallback when no valid return destination exists.
  • Preserved protected-page return navigation across logout/new-login flows and background API checks, without changing authentication checks or the JSON API response contract.
  • Validated return destinations server-side against internal HTML routes, rejecting external, ambiguous, authentication and API targets to prevent open redirects and JSON navigation.

2026-09-11 - NE555 monostable PWL demo and execution fixes

  • Added the validated inline numeric PWL subset for independent voltage and current sources in browser import and server validation, resolving MISS-005 while preserving point order, profile limits and external-resource restrictions.
  • Fixed local execution of top-level analysis cards: the shared ngspice worker now explicitly runs loaded analyses without duplicating existing control-block execution.
  • Fixed Quick Results annotations so measurements without an associated instant no longer display a fabricated “at 0”.
  • Published Demo 02B — NE555 monostable with its unchanged original PWL v1 netlist, browser/server results, 12 valid measurements and the documented unreachable 8 V measurement target; added it to the framework SPICE Demos index.

2026-09-10 - SPICE module visual integration

  • Removed the redundant Documentation and Licenses & Credits links from the SPICE operational header; existing account and Workspace actions are unchanged.
  • Harmonized the SPICE Circuit Simulator and shared Symbol Editor shell with Giux-CalcLab using common theme variables, branding, typography, navigation, panels, buttons and form controls.
  • Made the module header more compact on mobile, kept navigation and toolbars locally scrollable, and adapted the Symbol Editor panels to narrow screens.
  • Preserved the operational colours and light technical drawing surfaces. This is a visual/UI update; simulation, editor behaviour, Workspace and Waveform Viewer logic are unchanged.

2026-09-10 - Unified framework documentation

  • Unified Documentation under the Giux-CalcLab framework with a shared, extensible page catalogue, navigation, breadcrumbs, active-page state, global header/footer, and responsive framework styling.
  • Migrated the seven existing SPICE documentation pages, the SPICE Demos index, Demo 01A and Demo 02A into the framework, preserving technical content and the five published netlists.
  • Removed the separate SpicePad documentation sources, layout, obsolete assets, static HTML outputs and old routes, without redirects or parallel copies. This architectural migration does not constitute a full technical content audit.

2026-09-09 - SPICE block 1 compatibility and verified demos

  • Added browser/server support for SPICE + continuation lines on supported .meas/.measure directives and for positive positional BJT AREA multipliers, while preserving deny-by-default parsing and existing external-resource restrictions.
  • Added a bounded arithmetic parser for .measure ... PARAM='expression' using numeric literals, parentheses, arithmetic operators, and previously declared measurement names; expressions are structurally parsed without framework evaluation and are executed in the ngspice 44.2-compatible top-level measurement path.
  • Published the verified Demo 01A µA741 follower and Demo 02A NE555 astable pages with their original netlists, measured results, regression status, and the documented ngspice limitation for differential-voltage reductions.
  • Added the extensible SPICE Demos index for the two completed Block 1 demos and linked it from the shared SPICE Documentation sidebar.

2026-09-02 - Netlist-first server runs and dual waveform axes

  • Made imported textual netlists submit directly to server simulation without depending on a graphical canvas snapshot, while retaining the existing schematic snapshot and request-size protections for graphical projects.
  • Added engineering-unit parsing and formatting to the Waveform Viewer, with independent Left and Right Y axes per pane, explicit per-trace axis assignment, dimension-aware manual ranges, and saved dual-axis configuration compatibility.
  • Completed multipane waveform cursors with independent per-pane state, optional synchronized X scale/range and global cursors, trace-aware Left/Right Y readings, and a draggable engineering-unit Cursor Values window preserved in saved plot configurations.
  • Added a persistent Show cursors visibility control and compact, collision-free engineering axis ticks with nice linear intervals, restrained logarithmic density, and adaptive precision for narrow ranges.
  • Made waveform autorange, automatic ticks, units, and engineering prefixes depend only on visible traces for each pane and Left/Right Y axis, with empty axes no longer reusing hidden-series scale data.

2026-09-01 - Active pane context in Waveform Viewer

  • Added selected-trace-driven active-pane highlighting, an AXES target indicator, and a contextual Plotly toolbar that follows the active pane without making plot panes clickable.

2026-09-01 - Pane-specific waveform axes and legends

  • Made Waveform Viewer axis controls act only on the pane of the selected trace and added a separate legend above each pane for its assigned traces.

2026-09-01 - Waveform Viewer axis controls

  • Corrected Apply range, Autoscale, and Reset across linear and logarithmic axes, manual zoom, and multiple plot panes while preserving responsive and saved-result rendering.

2026-08-31 - Documentation structure

  • Added a framework-level Documentation entry point, organized the existing SPICE documentation under SPICE Simulator while retaining its established URLs, and introduced a central Licenses & Credits page for third-party software notices.

2026-08-31 - Workspace storage display correction

  • Aligned My workspace with the account Overview so persistent numerical datasets are classified as Saved simulations rather than Logs / other, and standardized binary storage values on KiB, MiB, and GiB units.

2026-08-31 - SPICE validator compatibility fixes

  • Made netlist import validation contextual: inert comments may contain ordinary punctuation and path-like prose; valid component and node names are distinguished from commands; numeric PULSE(...) sources and top-level .meas/.measure are accepted while unsafe directives, control commands, paths, code models, and Verilog-A remain blocked.

2026-08-31 - Current release

  • Integrated the graphical SPICE editor into Giux-CalcLab with project branding and navigation. Only the graphical editor is based on a substantially modified fork of SpicePad by Eric J. Kort; the Giux-CalcLab framework and server infrastructure are not derived from SpicePad, and the upstream MIT attribution is retained.
  • Provided two distinct ngspice execution paths: local WebAssembly simulation in the browser and validated server simulation for verified principals.
  • Implemented the server job lifecycle with admission checks, a persistent queue, dispatcher leases, per-principal and global worker slots, cancellation, recovery, terminal-state reconciliation, retention, and public failure diagnostics.
  • Added scientific job execution under dedicated profile-specific service identities in sandboxed transient units with cgroup-backed CPU, RAM, runtime, process, file-output, temporary-space, and concurrency controls, plus network and host-filesystem isolation.
  • Introduced distinct Guest, Registered, and Trusted scientific profiles with profile-specific validator capacity, compute resources, result retention, temporary storage, persistent storage, and submission limits.
  • Added account registration, session authentication, email verification, account settings, password changes, and separate administrative and scientific roles. Verified Guest access uses a short-lived, rate-limited, single-use email OTP followed by a separate secure one-job capability.
  • Added account dashboards showing identity and verification state, scientific profile, CPU/RAM/runtime allowances, current and recent server jobs, persistent workspace usage, temporary-result usage, and the applicable quotas.
  • Separated expiring temporary server results from persistent workspace objects. Temporary results use their own retention and quota accounting and can be deleted without affecting persistent workspace usage.
  • Added save/open workflows for portable computer project files and owner-scoped workspace circuits, including graphical schematic data, sanitized netlists, selected models, probes, analysis settings, and viewer metadata.
  • Added explicit Keep result persistence for eligible Registered and Trusted jobs, retaining canonical numerical waveforms, the circuit or stored netlist, available sanitized logs, measurements, and viewer data subject to persistent quota.
  • Added logical workspace management for circuits, saved simulations, and saved plots with sizes, deletion, and category-based quota usage while keeping multi-volume storage paths and volume identifiers internal.
  • Added a scalable server-result pipeline that converts ngspice RAW output row by row into an indexed Float64 dataset with an integrity-checked manifest, then serves selected signals and bounded point windows with decimation instead of loading or returning the complete result for every view.
  • Added the numerical Waveform Viewer with recorded-quantity selection, up to six synchronized panes, real/imaginary, magnitude, phase and dB displays, trace styling and movement, linear/log axes, manual ranges, autoscale, two cursors with delta readings, resizable layout, maximize/restore controls, measurements, and SPICE Log views.
  • Added numerical CSV, PNG, SVG, plot-configuration, netlist, and sanitized SPICE Log exports, together with persistent saved viewer/plot configurations backed by their numerical source data.
  • Added revocable read-only sharing for saved circuits and saved plot configurations, scoped to the selected object without exposing account data, private logs, storage paths, or unrelated workspace content.
  • Added editor and server support for R/C/L passives, independent V/I sources with validated numeric, DC, AC, PULSE and SIN forms, D diodes, Q bipolar transistors, polarity-correct built-in models, and validated custom D/NPN/PNP .model statements.
  • Added the deny-by-default server analysis subset for one .op, .dc, .ac, or .tran analysis, supported .meas/.measure forms, and declarative .control input that is structurally validated and replaced with server-owned commands.
  • Added contextual, role-aware validation for imported textual netlists while keeping unsafe and unsupported constructs deny by default; the specific compatibility corrections are recorded in the dedicated entry above.