diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37b7705..ab05026 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -272,7 +272,7 @@ jobs: cargo nextest run --manifest-path crates/flow/Cargo.toml \ --all-features \ --test performance_regression_tests \ - -- --nocapture + --no-capture - name: Check for regressions if: failure() run: | diff --git a/REUSE.toml.license b/REUSE.toml.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/REUSE.toml.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/CONSTITUTIONAL_COMPLIANCE_REPORT.md.license b/claudedocs/CONSTITUTIONAL_COMPLIANCE_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/CONSTITUTIONAL_COMPLIANCE_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/D1_CACHE_INTEGRATION_COMPLETE.md.license b/claudedocs/D1_CACHE_INTEGRATION_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/D1_CACHE_INTEGRATION_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/D1_HTTP_POOLING.md.license b/claudedocs/D1_HTTP_POOLING.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/D1_HTTP_POOLING.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/D1_INTEGRATION_COMPLETE.md.license b/claudedocs/D1_INTEGRATION_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/D1_INTEGRATION_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/D1_PROFILING_BENCHMARKS.md.license b/claudedocs/D1_PROFILING_BENCHMARKS.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/D1_PROFILING_BENCHMARKS.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/D1_PROFILING_BENCHMARKS_COMPLETE.md.license b/claudedocs/D1_PROFILING_BENCHMARKS_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/D1_PROFILING_BENCHMARKS_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/D1_SCHEMA_OPTIMIZATION.md.license b/claudedocs/D1_SCHEMA_OPTIMIZATION.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/D1_SCHEMA_OPTIMIZATION.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DASHBOARD_CONFIGURATIONS_COMPLETE.md.license b/claudedocs/DASHBOARD_CONFIGURATIONS_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DASHBOARD_CONFIGURATIONS_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DATABASE_OPTIMIZATION_PHASE1.md.license b/claudedocs/DATABASE_OPTIMIZATION_PHASE1.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DATABASE_OPTIMIZATION_PHASE1.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DATABASE_OPTIMIZATION_ROADMAP.md.license b/claudedocs/DATABASE_OPTIMIZATION_ROADMAP.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DATABASE_OPTIMIZATION_ROADMAP.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY16_17_TEST_REPORT.md.license b/claudedocs/DAY16_17_TEST_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY16_17_TEST_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY18_DOCUMENTATION_COMPLETE.md.license b/claudedocs/DAY18_DOCUMENTATION_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY18_DOCUMENTATION_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY19_DEPLOYMENT_OPS_COMPLETE.md.license b/claudedocs/DAY19_DEPLOYMENT_OPS_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY19_DEPLOYMENT_OPS_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY20_MONITORING_COMPLETE.md.license b/claudedocs/DAY20_MONITORING_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY20_MONITORING_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY21_CICD_COMPLETE.md.license b/claudedocs/DAY21_CICD_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY21_CICD_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY22_SECURITY_COMPLETE.md.license b/claudedocs/DAY22_SECURITY_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY22_SECURITY_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY23_PERFORMANCE_COMPLETE.md.license b/claudedocs/DAY23_PERFORMANCE_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY23_PERFORMANCE_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY24_CAPACITY_COMPLETE.md.license b/claudedocs/DAY24_CAPACITY_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY24_CAPACITY_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY25_DEPLOYMENT_COMPLETE.md.license b/claudedocs/DAY25_DEPLOYMENT_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY25_DEPLOYMENT_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY26_MONITORING_COMPLETE.md.license b/claudedocs/DAY26_MONITORING_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY26_MONITORING_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY27_PROFILING_COMPLETION.md.license b/claudedocs/DAY27_PROFILING_COMPLETION.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY27_PROFILING_COMPLETION.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY28_PHASE5_COMPLETE.md.license b/claudedocs/DAY28_PHASE5_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY28_PHASE5_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAYS_13_14_EDGE_DEPLOYMENT.md.license b/claudedocs/DAYS_13_14_EDGE_DEPLOYMENT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAYS_13_14_EDGE_DEPLOYMENT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY_22_PRODUCTION_DEPLOYMENT_COMPLETE.md.license b/claudedocs/DAY_22_PRODUCTION_DEPLOYMENT_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY_22_PRODUCTION_DEPLOYMENT_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/DAY_22_PRODUCTION_VALIDATION_COMPLETE.md.license b/claudedocs/DAY_22_PRODUCTION_VALIDATION_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/DAY_22_PRODUCTION_VALIDATION_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/EXTRACTOR_COVERAGE_MAP.md.license b/claudedocs/EXTRACTOR_COVERAGE_MAP.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/EXTRACTOR_COVERAGE_MAP.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/EXTRACTOR_TESTS_SUMMARY.md.license b/claudedocs/EXTRACTOR_TESTS_SUMMARY.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/EXTRACTOR_TESTS_SUMMARY.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/HOT_PATH_OPTIMIZATIONS_COMPLETE.md.license b/claudedocs/HOT_PATH_OPTIMIZATIONS_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/HOT_PATH_OPTIMIZATIONS_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/INCREMENTAL_UPDATE_SYSTEM_DESIGN.md.license b/claudedocs/INCREMENTAL_UPDATE_SYSTEM_DESIGN.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/INCREMENTAL_UPDATE_SYSTEM_DESIGN.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/INFRASTRUCTURE_COVERAGE_REPORT.md.license b/claudedocs/INFRASTRUCTURE_COVERAGE_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/INFRASTRUCTURE_COVERAGE_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/IO_PROFILING_REPORT.md.license b/claudedocs/IO_PROFILING_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/IO_PROFILING_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/PHASE1_COMPLETE.md.license b/claudedocs/PHASE1_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/PHASE1_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/PHASE2C_BACKEND_INTEGRATION_COMPLETE.md.license b/claudedocs/PHASE2C_BACKEND_INTEGRATION_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/PHASE2C_BACKEND_INTEGRATION_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/PHASE2_COMPLETE.md.license b/claudedocs/PHASE2_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/PHASE2_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/PHASE5_COMPLETE.md.license b/claudedocs/PHASE5_COMPLETE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/PHASE5_COMPLETE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/PHASE5_QA_VALIDATION_REPORT.md.license b/claudedocs/PHASE5_QA_VALIDATION_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/PHASE5_QA_VALIDATION_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/PRODUCTION_VALIDATION_TESTS.md.license b/claudedocs/PRODUCTION_VALIDATION_TESTS.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/PRODUCTION_VALIDATION_TESTS.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/REAL_WORLD_VALIDATION.md.license b/claudedocs/REAL_WORLD_VALIDATION.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/REAL_WORLD_VALIDATION.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/RECOCO_INTEGRATION.md.license b/claudedocs/RECOCO_INTEGRATION.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/RECOCO_INTEGRATION.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/RECOCO_PATTERN_REFACTOR.md.license b/claudedocs/RECOCO_PATTERN_REFACTOR.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/RECOCO_PATTERN_REFACTOR.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/TASK_51_COMPLETION.md.license b/claudedocs/TASK_51_COMPLETION.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/TASK_51_COMPLETION.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/TASK_58_COMPLETION_SUMMARY.md.license b/claudedocs/TASK_58_COMPLETION_SUMMARY.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/TASK_58_COMPLETION_SUMMARY.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/profiling/HOT_PATHS_REFERENCE.md.license b/claudedocs/profiling/HOT_PATHS_REFERENCE.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/profiling/HOT_PATHS_REFERENCE.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/profiling/OPTIMIZATION_ROADMAP.md.license b/claudedocs/profiling/OPTIMIZATION_ROADMAP.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/profiling/OPTIMIZATION_ROADMAP.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/profiling/PERFORMANCE_PROFILING_REPORT.md.license b/claudedocs/profiling/PERFORMANCE_PROFILING_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/profiling/PERFORMANCE_PROFILING_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/profiling/PROFILING_SUMMARY.md.license b/claudedocs/profiling/PROFILING_SUMMARY.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/profiling/PROFILING_SUMMARY.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/claudedocs/profiling/README.md.license b/claudedocs/profiling/README.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/claudedocs/profiling/README.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/ast-engine/CHANGELOG.md.license b/crates/ast-engine/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/ast-engine/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/ast-engine/src/tree_sitter/mod.rs b/crates/ast-engine/src/tree_sitter/mod.rs index ff775b5..ad21149 100644 --- a/crates/ast-engine/src/tree_sitter/mod.rs +++ b/crates/ast-engine/src/tree_sitter/mod.rs @@ -42,7 +42,8 @@ //! //! ```rust,no_run //! # use thread_ast_engine::tree_sitter::{StrDoc, LanguageExt}; -//! # use thread_ast_engine::Language; +//! # use thread_ast_engine::{Language, Doc}; +//! # #[derive(Clone, Debug)] //! # struct Tsx; //! # impl Language for Tsx { //! # fn kind_to_id(&self, _: &str) -> u16 { 0 } @@ -144,6 +145,8 @@ fn parse_lang( /// /// ```rust,no_run /// # use thread_ast_engine::tree_sitter::StrDoc; +/// # use thread_ast_engine::Doc; +/// # #[derive(Clone, Debug)] /// # struct JavaScript; /// # impl thread_ast_engine::Language for JavaScript { /// # fn kind_to_id(&self, _: &str) -> u16 { 0 } diff --git a/crates/ast-engine/src/tree_sitter/traversal.rs b/crates/ast-engine/src/tree_sitter/traversal.rs index f3a5390..c9d2304 100644 --- a/crates/ast-engine/src/tree_sitter/traversal.rs +++ b/crates/ast-engine/src/tree_sitter/traversal.rs @@ -26,6 +26,7 @@ //! # use thread_ast_engine::tree_sitter::traversal::Visitor; //! # use thread_ast_engine::Language; //! # use thread_ast_engine::tree_sitter::LanguageExt; +//! # #[derive(Clone, Debug)] //! # struct Tsx; //! # impl thread_ast_engine::Language for Tsx { //! # fn kind_to_id(&self, _: &str) -> u16 { 0 } @@ -56,6 +57,7 @@ //! # use thread_ast_engine::tree_sitter::traversal::Visitor; //! # use thread_ast_engine::Language; //! # use thread_ast_engine::tree_sitter::LanguageExt; +//! # #[derive(Clone, Debug)] //! # struct Tsx; //! # impl thread_ast_engine::Language for Tsx { //! # fn kind_to_id(&self, _: &str) -> u16 { 0 } @@ -71,7 +73,7 @@ //! // Non-reentrant: only finds outer matches //! let outer_only: Vec<_> = Visitor::new("$FUNC($$$)") //! .reentrant(false) -//! .visit(root) +//! .visit(root.clone()) //! .collect(); //! //! // Reentrant: finds all matches including nested ones @@ -117,6 +119,7 @@ use std::marker::PhantomData; /// # use thread_ast_engine::tree_sitter::traversal::Visitor; /// # use thread_ast_engine::Language; /// # use thread_ast_engine::tree_sitter::LanguageExt; +/// # #[derive(Clone, Debug)] /// # struct Tsx; /// # impl thread_ast_engine::Language for Tsx { /// # fn kind_to_id(&self, _: &str) -> u16 { 0 } diff --git a/crates/flow/CHANGELOG.md.license b/crates/flow/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/flow/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/flow/claudedocs/LOAD_TEST_REPORT.md.license b/crates/flow/claudedocs/LOAD_TEST_REPORT.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/flow/claudedocs/LOAD_TEST_REPORT.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/flow/claudedocs/PHASE4_COMPLETION_SUMMARY.md.license b/crates/flow/claudedocs/PHASE4_COMPLETION_SUMMARY.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/flow/claudedocs/PHASE4_COMPLETION_SUMMARY.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/flow/claudedocs/builder_testing_analysis.md.license b/crates/flow/claudedocs/builder_testing_analysis.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/flow/claudedocs/builder_testing_analysis.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/flow/src/incremental/backends/postgres.rs b/crates/flow/src/incremental/backends/postgres.rs index 256bc36..519ce0c 100644 --- a/crates/flow/src/incremental/backends/postgres.rs +++ b/crates/flow/src/incremental/backends/postgres.rs @@ -101,7 +101,9 @@ impl PostgresIncrementalBackend { cfg.user = Some(user.to_string()); } if let Some(password) = pg_config.get_password() { - cfg.password = Some(String::from_utf8_lossy(password).to_string()); + let pwd_str = String::from_utf8(password.to_vec()) + .map_err(|e| StorageError::Backend(format!("Invalid UTF-8 in password: {e}")))?; + cfg.password = Some(pwd_str); } if let Some(dbname) = pg_config.get_dbname() { cfg.dbname = Some(dbname.to_string()); diff --git a/crates/language/CHANGELOG.md.license b/crates/language/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/language/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/language/src/html.rs b/crates/language/src/html.rs index cda0488..0cf7560 100644 --- a/crates/language/src/html.rs +++ b/crates/language/src/html.rs @@ -34,7 +34,8 @@ use thread_utilities::RapidMap; /// /// ```rust /// use thread_language::Html; -/// use thread_ast_engine::{Language, LanguageExt}; +/// use thread_ast_engine::Language; +/// use thread_ast_engine::tree_sitter::LanguageExt; /// /// let html = Html; /// let source = r#" diff --git a/crates/language/src/lib.rs b/crates/language/src/lib.rs index 721ddd6..1c155e0 100644 --- a/crates/language/src/lib.rs +++ b/crates/language/src/lib.rs @@ -26,7 +26,8 @@ //! //! ```rust //! use thread_language::{SupportLang, Rust}; -//! use thread_ast_engine::{Language, LanguageExt}; +//! use thread_ast_engine::Language; +//! use thread_ast_engine::tree_sitter::LanguageExt; //! //! // Runtime language selection //! let lang = SupportLang::from_path("main.rs").unwrap(); @@ -259,7 +260,7 @@ macro_rules! impl_lang { /// assert_eq!(result, "def hello(): pass"); /// ``` #[allow(dead_code)] -fn pre_process_pattern(expando: char, query: &str) -> std::borrow::Cow<'_, str> { +pub fn pre_process_pattern(expando: char, query: &str) -> std::borrow::Cow<'_, str> { // Fast path: check if any processing is needed let has_dollar = query.as_bytes().contains(&b'$'); if !has_dollar { @@ -672,7 +673,8 @@ impl_lang!(Yaml, language_yaml); /// # Usage with AST Analysis /// ```rust,ignore /// use thread_language::SupportLang; -/// use thread_ast_engine::{Language, LanguageExt}; +/// use thread_ast_engine::Language; +/// use thread_ast_engine::tree_sitter::LanguageExt; /// /// let lang = SupportLang::Rust; /// let tree = lang.ast_grep("fn main() {}"); @@ -1721,17 +1723,17 @@ pub fn from_extension(path: &Path) -> Option { } // Handle extensionless files or files with unknown extensions - if let Some(_file_name) = path.file_name().and_then(|n| n.to_str()) { + if let Some(file_name) = path.file_name().and_then(|n| n.to_str()) { // 1. Check if the full filename matches a known extension (e.g. .bashrc) #[cfg(any(feature = "bash", feature = "all-parsers"))] - if constants::BASH_EXTS.contains(&_file_name) { + if constants::BASH_EXTS.contains(&file_name) { return Some(SupportLang::Bash); } // 2. Check known extensionless file names #[cfg(any(feature = "bash", feature = "all-parsers", feature = "ruby"))] for (name, lang) in constants::LANG_RELATIONSHIPS_WITH_NO_EXTENSION { - if *name == _file_name { + if *name == file_name { return Some(*lang); } } diff --git a/crates/rule-engine/CHANGELOG.md.license b/crates/rule-engine/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/rule-engine/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/services/CHANGELOG.md.license b/crates/services/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/services/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/thread/CHANGELOG.md.license b/crates/thread/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/thread/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/crates/utils/CHANGELOG.md.license b/crates/utils/CHANGELOG.md.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/crates/utils/CHANGELOG.md.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/docs-site/public/thread/_headers.license b/docs-site/public/thread/_headers.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/docs-site/public/thread/_headers.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/docs-site/public/thread/robots.txt.license b/docs-site/public/thread/robots.txt.license new file mode 100644 index 0000000..c295b2b --- /dev/null +++ b/docs-site/public/thread/robots.txt.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2026 Knitli Inc. + +SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 31eead8..0c60ce2 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -7,8 +7,8 @@ use pico_args::Arguments; use std::path::Path; use std::process::{Command, exit}; -const CRATE_PATH: &str = "crates/thread-wasm"; -const PKG_PATH: &str = "crates/thread-wasm/pkg"; +const CRATE_PATH: &str = "crates/wasm"; +const PKG_PATH: &str = "crates/wasm/pkg"; const DIST_PATH: &str = "dist/thread-wasm.optimized.wasm"; const HELP: &str = r"