v1.0.3: v0.11 Block-First Notebook (Tracks 1–6)#7
Merged
Conversation
Every notebook cell is a draft block; Block Picker is the primary Add-Cell tile; blocks are live-referenced with bound/forked state; promotion is governance-gated; bound cells flow into lineage. - T1: unified @Metric() / @dim() resolver across notebook SQL + Block Studio - T2: Block Picker promoted to left-most palette tile; bound cell on pick - T3: semantic-aware typed pickers (Chart / Pivot / SingleValue / Filter) - T4: Save-as-Block runs BUILTIN_RULES inline; git metadata to companion YAML - T5: BlockBinding state model + green/yellow chrome + Revert/Unbind - T6: bound cells emit block:<name> → dashboard:<notebook> lineage edges Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
KKranthi6881
added a commit
that referenced
this pull request
Apr 23, 2026
…r abstraction) Closes the v1.2.1 gap audit — 9 fixes, ordered by severity. No behavior changes beyond the #2 email-delivery correction; the rest add logging, ignore patterns, and a provider-extension point. Critical: - #1 ignore .dql/runs/ and .dql/cache/ (root + `dql init` scaffold) - #2 email notifier returns delivered:false in stub mode (was lying) Bugs: - #3 GET /api/blocks/body endpoint for bound-cell reloads - #5 /api/schema returns 500 + fallback instead of silent file-only - #6 log malformed scheduler run records to stderr - #7 replace empty catches in runtime/html emitters with console.warn Smells: - #8 move LLM providers into providers/; add LLMProvider type alias - #9 `dql schedule stop` via pidfile #4 was a false-positive — bound-cell lineage is already wired via the manifest builder's pathToBlockName lookup; comment updated. Co-Authored-By: Claude Opus 4.7 <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.
Summary
Every notebook cell is a draft block; Block Picker is the primary Add-Cell tile; blocks are live-referenced with bound/forked state; promotion is governance-gated; bound cells flow into lineage.
@metric()/@dim()resolver across notebook SQL + Block Studio (fixes the 500 error on notebook cells containing semantic refs)@includeSQL# metric,∴ dimension,abc columnicons; graceful fallback + nag for unbound upstreamSave-as-BlockrunsBUILTIN_RULESinline; missing owner/domain/description blocks the save; git SHA/repo/branch auto-captured into companion YAMLBlockBinding { path, state: 'bound' | 'forked', originalContent? }on Cell; green chrome for bound, yellow for forked after edit; chip shows path · 🔒 · Revert (forked only) · Unbindblock:<name> → dashboard:<notebook>edges; draft SQL cells stay excluded (design preserved)Published to npm at 1.0.3 for all 10 packages:
@duckcodeailabs/dql-cli,dql-core,dql-compiler,dql-runtime,dql-connectors,dql-charts,dql-project,dql-governance,dql-notebook,dql-lsp.Test plan
SELECT @metric(revenue) FROM @dim(date)runs greenb→ picker → select Monthly Revenue → bound cell lands with green chromerevenuewith#icon ahead of raw columns when upstream has semantic refs/api/lineagereturnsblock:Monthly Revenue → dashboard:t5_verifyedge for a notebook with a bound cell🤖 Generated with Claude Code