docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

docs: sync documentation with recent changes - #77

Open
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01
Open

docs: sync documentation with recent changes#77
nadeem4 wants to merge 1 commit into
mainfrom
docs-sync/2026-09-01

Conversation

@nadeem4

Copy link
Copy Markdown
Owner

Review window

Prior "docs: sync documentation with recent changes" PR: #60, created 2026-08-28T12:17:56Z. This reviews everything merged into main since then: #62#75 (excluding #65/#67, which are release-please's own chore: release main PRs with no doc-relevant content beyond CHANGELOG.md, which release-please owns).

Most of those PRs (#62, #63, #64, #66, #68, #69, #70, #73, #74) already keep README.md/docs/ in sync as part of their own commits — verified by grepping the repo for every package-name reference #62 could have missed and checking each PR's own docs edits against the current code. This PR only covers what PR #75 missed, plus one API behavior change from #74 that had no doc coverage at all, plus a pre-existing nav gap that blocks mkdocs build --strict.

Corrections

  • docs/architecture/pipeline.md and docs/architecture/failure_recovery.md: both said routing "raises PipelineError" when no compatible subgraph is found for a datasource. That was the exact bug fix(pipeline): raise a real exception when no subgraph matches #75 fixed — PipelineError is a pydantic BaseModel, not an exception, so that code actually raised TypeError: exceptions must derive from BaseException (see the regression test fix(pipeline): raise a real exception when no subgraph matches #75 added, test_scan_layer_router_raise_is_a_real_exception_not_a_type_error). fix(pipeline): raise a real exception when no subgraph matches #75 introduced PipelineExecutionError (an NL2SQLError carrying the PipelineError on .error) and updated docs/architecture/subgraphs/main_pipeline_graph.md in its own commit, but missed these two other files describing the same code path. Verified against packages/nl2sql/src/nl2sql/pipeline/routes.py and packages/nl2sql/src/nl2sql/common/exceptions.py on main.

  • docs/observability/error-handling.md: opened with the blanket claim "NL2SQL represents failures as structured PipelineError objects and propagates them through state," which is now incomplete — the router path added by fix(pipeline): raise a real exception when no subgraph matches #75 raises an exception instead. Added a paragraph naming PipelineExecutionError and how run_with_graph()'s crash handler folds it back into GraphState.errors as an UNKNOWN_ERROR. Verified against packages/nl2sql/src/nl2sql/pipeline/runtime.py.

  • docs/api/core/datasource.md: DatasourceAPI.get_datasource_details returns connection args, but the docs never mentioned that secret-shaped values are masked. fix(demo): make the docker demo datasources reachable #74 added mask_connection_args() (packages/nl2sql/src/nl2sql/datasources/registry.py), which replaces any connection-arg value whose key contains password, secret, token, or api_key with "***", and wired it into get_datasource_details (packages/nl2sql/src/nl2sql/api/datasource_api.py:126) as a security fix (a pydantic ValidationError used to be able to echo a plaintext password). Documented the masking so the public API surface doc matches actual behavior.

  • mkdocs.yml: docs/getting_started/demo.md exists and is already linked from docs/getting_started/index.md ("Demo Data (CLI-first)"), but was never added to the nav: tree, which makes mkdocs build --strict fail with "pages exist... but are not included in the nav configuration." This predates the review window, but it blocks the strict build required by this task, so I registered it under Getting Started to match its existing sibling entries and its own link text in index.md.

Verification

  • Every claim above was checked against the current code on main, not just the PR diffs.
  • Grepped the whole repo for any remaining nl2sql[ / pip install nl2sql references that chore: rename the published distribution to nl2sql-engine #62's own docs commit might have missed — none found; all remaining hits are the import package name (nl2sql) or the packages/nl2sql source path, both correctly unchanged by the PyPI rename.
  • pip install -r requirements-docs.txt && python -m mkdocs build --strict: fails locally with exactly one warning — mkdocs-mermaid2-plugin can't reach unpkg.com to verify the mermaid.js CDN URL. curl -sS "$HTTPS_PROXY/__agentproxy/status" confirms unpkg.com:443 is rejected by this sandbox's outbound network policy (connect_rejected, gateway 403), not by anything in the repo. This is the identical, sandbox-only failure PR docs: sync documentation with recent changes #60 documented and it was not a regression there either — the docs CI check (real internet access) already passed on main at feat(cli): add application container to docker demo; make mssql opt-in #59/fix(ci): build the API image from the repository root #70. With the nav fix above, that CDN check is the only warning the strict build produces; every content and nav validation passes.

Not touched


Generated by Claude Code

Corrects claims left stale by PR #75 (PipelineError is a pydantic model,
not an exception, so routing now raises PipelineExecutionError), adds the
secret-masking behavior PR #74 introduced in get_datasource_details, and
registers demo.md in mkdocs nav so `mkdocs build --strict` can pass.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nadeem4@claude