Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
bf9575b
build(host): pin tvm-core to tvm-wasm git rev
Jun 30, 2026
09bf15c
feat(host): add run_cli_capture for in-process query execution
Jun 30, 2026
a41f90d
feat(catalog): enrich index.json entries with full SQL function signa…
Jun 30, 2026
749ad8e
docs: add versioning & support policy (lockstep-major, generation win…
Jul 1, 2026
5c07887
docs: finalize versioning decisions (EOL 6mo; self-publish supports o…
Jul 1, 2026
6a71e46
docs: record verified backward-compat model (host runs generations <= N)
Jul 1, 2026
1f2d9d1
docs: record stable-C-ABI symbol audit result
Jul 1, 2026
3075c27
docs: decide strict within-major compat; native host tightens to match
Jul 1, 2026
59a1892
docs: add Python source-tier plan (drive pylon; arrow-columnar; run/c…
Jul 1, 2026
b8eb4f4
feat(python-sdk): add pure-Python ducklink authoring API (Phase 1a)
Jul 1, 2026
9d59c00
chore(deps): align compose-core + datalink-dynlink pins with datafiss…
Jul 3, 2026
aff11e6
chore(deps): fix datalink-dynlink pin to 80010ad (matches main)
Jul 3, 2026
c6e20e3
feat(standalone): complete the loader-stub so ducklink-core composes …
Jul 4, 2026
cae22cf
feat(host): add materialize_sub_ext_provider + sub_ext_bridge_paths f…
Jul 8, 2026
cc3eadb
fix(runtime,host): drain register-scalar-ex into pending registrations
Jul 8, 2026
ed6b981
feat(sub-ext): DUCKLINK_SUB_EXT_PREBUILT short-circuit for self-conta…
Jul 8, 2026
d634d74
fix(runtime): drain every pending_* buffer through PendingRegistratio…
Jul 8, 2026
f473238
fix(host): prefix scalar_ex registrations in apply_function_prefixes
Jul 8, 2026
6efb7be
fix(sub-ext): treat prebuilt-only config as a bridge for LOAD routing
Jul 9, 2026
a2b6cec
refactor(runtime): derive PendingKind::all via strum::EnumIter
Jul 9, 2026
1a2d2a6
fix(sub-ext): write prebuilt bytes to compose CAS in shortcut path
Jul 9, 2026
585261c
feat(native-extension/aba): pilot native DuckDB extension for aba
Jul 9, 2026
6b880f1
feat(ducklink-native): curated bundle, 15 scalars across 5 domains
Jul 9, 2026
6041f28
chore: bump native-extension/ducklink pointer for #79 LoadedComponent…
Jul 9, 2026
2207067
chore: bump native-extension/ducklink pointer for #79 C-API impl
Jul 9, 2026
1fbb601
feat(deploy): add publish-native.sh for ducklink LOAD NATIVE artifacts
Jul 9, 2026
33ef2e8
feat(sub_ext): add sub_ext_shim_alias for shared-shim sub-exts
Jul 10, 2026
7d86fd6
fix(sub_ext): has_bridge honors sub_ext_shim_alias
Jul 11, 2026
599b7b0
feat(deploy): reusable script to sync bundled snapshot to live catalog
Jul 13, 2026
dc69f8c
test(storage-boundary): add write-side WIT boundary test
Jul 13, 2026
48b913a
fix(storage-boundary-test): sync read-side WIT to duckdb:extension@4.0.0
Jul 14, 2026
267f31d
feat(wit): add write-side storage-host imports
Jul 14, 2026
9e3c5ee
feat(host): route storage-host write imports to ExtensionInstance
Jul 14, 2026
ae1e378
chore(catalog): rotate CONTRACT_DIGEST after storage-host WIT extension
Jul 14, 2026
1aa7b88
test(storage-boundary): bump write-side WIT to duckdb:extension@4.0.0
Jul 14, 2026
7184b40
chore(tooling): source duckdb-extension WIT from upstream duckdb-wit
Jul 14, 2026
e0f2ae7
fix(cli): preserve line breaks when joining multi-line SQL input
Jul 15, 2026
828561b
feat(storage): wants-rowid on scan-request + updated-columns on updat…
Jul 15, 2026
fcd7010
chore(catalog): rotate CONTRACT_DIGEST after storage-host rowid+updat…
Jul 15, 2026
d107305
chore(extensions): rebuild storage-dispatch exporters against extende…
Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ members = [
"extensions/icebergscan-component",
"extensions/autocomplete-component",
"extensions/statsduck-component",
"tools/catalog-sig-extract",
]

# talib-component carries its own `[workspace]` table (an independent lockfile —
Expand Down
8 changes: 7 additions & 1 deletion crates/ducklink-cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,13 @@ fn run_repl(conn: &duckdb::Connection) -> Result<(), String> {

statement.push_str(trimmed);
if !trimmed.ends_with(';') {
statement.push(' ');
// Preserve line breaks between joined input lines so DuckDB's
// parser correctly terminates SQL line comments (`-- ...`) at
// end-of-line. Joining with a single space instead caused
// `-- comment\nSELECT 1;` to become `-- comment SELECT 1;`,
// which the parser reads as one giant line comment that
// swallows the following statement.
statement.push('\n');
write_continuation_prompt(&out)?;
continue;
}
Expand Down
17 changes: 12 additions & 5 deletions crates/ducklink-host/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ clap = { version = "4.5", features = ["derive"] }
wasmtime = { version = "46.0.1", features = ["component-model", "cache"] }
wasmtime-wasi = "46.0.1"
# Tiered Virtual Memory: host-owned regions back DuckDB's >4 GiB spill tier.
# tvm-core is wasmtime-free, so it works with this host's pinned wasmtime (39)
# even though tvm-wasmtime targets 45; the manager/bytes host traits are
# implemented in this crate against this host's bindgen.
tvm-core = { path = "../../../tvm-wasm/crates/tvm-core" }
# tvm-core is wasmtime-free; the manager/bytes host traits are implemented in
# this crate against this host's bindgen. Sourced via a pinned git rev of
# tvm-wasm (not a local path) so ducklink builds standalone AND so ChimeraDB's
# in-process build (which links ducklink-host + sqlink-host) resolves a SINGLE
# tvm-core source — sqlink-host pins the same rev. See chimeradb/PLAN-inprocess.md PR1.
tvm-core = { git = "https://github.com/tegmentum/tvm-wasm.git", rev = "6f3bae38fad4addd4de1837ab151f4ac871d1dd4" }
# TLS for `ducklink serve` (the httpd). Blocking rustls over the accept
# loop's TcpStream; rcgen mints the --tls-self-signed cert. Mirrors the
# sqlite-wasm-httpd stack.
Expand All @@ -38,7 +40,12 @@ hex = "0.4"
# trust-gated CompileCache. Used here to HMAC-authenticate the precompiled
# `.cwasm` (a `.cwasm` deserializes to runnable machine code, so it must be
# trusted). compose-core is wasmtime-free and sqlite-free.
compose-core = { git = "https://github.com/tegmentum/webassembly-component-orchestration.git", branch = "main" }
compose-core = { git = "https://github.com/tegmentum/webassembly-component-orchestration.git", rev = "416226921cc166e98016f534a73bd6c9b7dcb33c" }
# Ergonomic error enum for the sub-ext loader (Phase D). The rest of the
# crate uses anyhow at the boundary; internally SubExtError is a `thiserror`
# enum so callers can pattern-match on `SubExtError::PlanMissing` vs a compose
# failure without stringly parsing.
thiserror = "1"
# Home-dir resolution for the per-machine HMAC key + FsBlobStore cache root.
dirs = "5"
# Shared, db-agnostic crates (also consumed by the sqlink host). datalink is
Expand Down
Loading