Skip to content

Releases: pondpilot/flowscope

v0.3.1

23 Jan 14:17

Choose a tag to compare

Fixed

CLI (flowscope-cli)

  • Enable serve feature by default so cargo install flowscope-cli includes the web UI server
  • Fix rust-embed asset path for embedded web UI (was incorrectly pointing to workspace root)

Full Changelog: v0.3.0...v0.3.1

v0.3.0

23 Jan 14:17

Choose a tag to compare

Highlights

  • dbt/Jinja templating: Analyze dbt models with ref(), source(), config(), var() macros
  • CLI serve mode: Run FlowScope as a local HTTP server with embedded web UI (--serve)
  • Type inference: Detect type mismatches in SQL expressions with dialect-aware rules
  • Extended lineage: COPY, ALTER TABLE RENAME, and UNLOAD statement support

Added

Core Engine (flowscope-core)

  • Jinja/dbt templating support: MiniJinja-based preprocessing for dbt projects
    • Built-in dbt macros: ref(), source(), config(), var(), is_incremental()
    • RelationEmulator for dbt Relation object attribute access (.schema, .identifier)
    • this global variable and execute flag for templates
    • Custom macro passthrough stubs for graceful handling
  • COPY statement lineage: Track source/target tables in COPY/COPY INTO (PostgreSQL, Snowflake)
  • ALTER TABLE RENAME lineage: Track table renames as dataflow edges
  • UNLOAD statement lineage: Track source tables from Redshift UNLOAD statements
  • Lateral column alias support: Resolve aliases in same SELECT list (BigQuery, Snowflake, DuckDB, etc.)
  • Backward column inference: Infer columns for SELECT * without schema from downstream usage
  • Type inference for SQL expressions with comprehensive type checking
  • New TYPE_MISMATCH warning code for detecting incompatible type comparisons and operations
  • Schema-aware column type lookup - column references now resolve types from provided schema metadata
  • CTE column type propagation to outer queries
  • Dialect-aware type compatibility rules (e.g., Boolean/Integer comparison allowed in MySQL but not PostgreSQL)
  • NULL comparison anti-pattern detection (= NULL warns to use IS NULL instead)

Completion API

  • Smart function completions with signature metadata (params, return types, categories)
  • Context-aware scoring: boost aggregates in GROUP BY, window functions in OVER clauses
  • Lateral column alias extraction with proper scope isolation
  • Type-aware column scoring in comparison contexts
  • Dialect-aware keyword parsing using sqlparser tokenizer
  • CASE expression type inference from THEN/ELSE branches

CLI (flowscope-cli)

  • --template jinja|dbt flag for templated SQL preprocessing
  • --template-var KEY=VALUE for template variable injection
  • --metadata-url for live database schema introspection (PostgreSQL, MySQL, SQLite)
  • --metadata-schema for schema filtering during introspection
  • Serve mode: Run FlowScope as a local HTTP server with embedded web UI
    • --serve flag to start HTTP server with embedded React app
    • --port <PORT> to specify server port (default: 3000)
    • --watch <DIR> for directories to watch for SQL files (repeatable)
    • --open to auto-open browser on startup
    • REST API endpoints: /api/analyze, /api/completion, /api/files, /api/export/:format
    • File watcher with 100ms debounce for automatic reload on changes
    • Assets embedded at compile time via rust-embed for single-binary deployment

React Package (@pondpilot/flowscope-react)

  • Web workers for graph/matrix/layout computations (improved UI responsiveness)
  • LayoutProgressIndicator component for visual layout feedback
  • Debug flags (GRAPH_DEBUG, LAYOUT_DEBUG) for performance diagnostics

Web App

  • Template mode selector for dbt/Jinja SQL preprocessing in the toolbar
  • Issue-to-editor navigation: click issues to jump to source location
  • Issues tab filtering: filter by severity, error code, and file
  • Stats popover: complexity dots trigger dropdown with table/column/join counts
  • Clear analysis cache option in project menu
  • Bundled "dbt Jaffle Shop" demo project showcasing ref/source/config/var
  • Backend adapter pattern for REST/WASM detection (supports serve mode)
  • Read-only mode for files loaded from CLI serve backend
  • Schema display from database introspection in serve mode

Changed

Core Engine (flowscope-core)

  • Unified type system: CanonicalType replaces internal SqlType enum with broader coverage (Time, Binary, Json, Array)
  • OutputColumn.data_type now populated with inferred types for SELECT expressions
  • Type checking now accepts dialect parameter for dialect-specific rules

Fixed

Core Engine (flowscope-core)

  • dbt model cross-statement linking with proper case normalization for Snowflake
  • DDL-seeded schema preservation (schemas no longer overwritten by later queries)
  • UTF-8 safety in should_show_for_cursor when cursor offset is mid-character

Full Changelog: v0.2.0...v0.3.0

v0.2.0

19 Jan 00:05

Choose a tag to compare

Highlights

  • First public release of the FlowScope Rust + WASM + TypeScript stack.
  • Multi-dialect SQL parsing with table/column lineage, schema validation, and editor-friendly spans.
  • Export tooling for Mermaid, JSON, HTML, CSV bundles, and XLSX across Rust and WASM.
  • React components + CLI for lineage visualization and data export workflows.
  • CTE and derived table definitions now include spans for editor navigation.
  • Export downloads in React normalize byte buffers for reliable Blob creation.

Changed

  • Breaking: Changed error code from REQUEST_PARSE_ERROR to INVALID_REQUEST for JSON parse/validation errors in analyze_sql_json().

Fixed

  • Fixed potential panic in extract_qualifier when cursor offset lands on invalid UTF-8 boundary.
  • Fixed completion logic that suppressed completions when schema metadata lacked columns but query context had valid columns.
  • Fixed potential integer overflow in completion item scoring by using saturating arithmetic.
  • Added spans for CTE and derived table definition nodes to support editor navigation.
  • Bundle reserved keyword list inside the exporter crate for publish-time builds.
  • Fixed ZIP/XLSX downloads by normalizing export byte buffers for Blob creation.

Improved

  • Added named constants for completion scoring values to improve code maintainability.
  • Added Debug derive to QualifierResolution for easier debugging.
  • Added comprehensive unit tests for string helper functions and qualifier resolution logic.