Add landing page, SECURITY.md, and NichevLabs branding#10
Merged
johnnichev merged 1 commit intomainfrom Mar 21, 2026
Merged
Conversation
- Add standalone landing page (landing/index.html) with Tailwind CSS dark theme, hero section, feature grid, LangChain comparison table, code showcase, and NichevLabs branding - Update docs workflow to serve landing page as site root - Add root SECURITY.md with vulnerability disclosure policy - Brand selectools as "open source from NichevLabs" across README, docs/index.md, and pyproject.toml - Add .private/ to .gitignore for local-only assets
20efca6 to
39e0f94
Compare
johnnichev
added a commit
that referenced
this pull request
Mar 24, 2026
Security: - Path traversal in JsonFileSessionStore — validate session_id (#9) - Unicode homoglyph bypass in injection screening — NFKD + zero-width strip + homoglyph map (#13) Data integrity: - FileKnowledgeStore._save_all() atomic write via tmp + os.replace (#10) - JsonFileSessionStore.save() atomic write (#31) Agent core: - astream() uses self._effective_model (was self.config.model) (#1) - Sync _check_policy rejects async confirm_action with clear error (#2) - Sync _streaming_call isinstance(chunk, str) guard (#18) Providers: - FallbackProvider stream()/astream() record success after consumption, not before — circuit breaker now works for streaming (#3) - Gemini response.text ValueError catch for tool-call-only responses (#4) Tools: - aexecute() uses run_in_executor(None) shared executor (#5) - execute() awaits coroutines from async tools via asyncio.run (#6) RAG: - Hybrid search O(n²) → O(1) via text_to_key dict lookup (#7) - SQLiteVectorStore thread safety + WAL mode (#8) Evals: - OutputEvaluator catches re.error on invalid regex (#11) - JsonValidityEvaluator respects expect_json=False (#12) 16 new regression tests. Full suite: 2000 passed.
johnnichev
added a commit
that referenced
this pull request
Mar 24, 2026
- Bug #2: async confirm_action guard in sync _check_policy (was overwritten by Batch 2) - Bug #8: SQLiteVectorStore WAL mode + threading.Lock (was overwritten by Batch 3) - Bug #10: FileKnowledgeStore atomic write via tmp + os.replace (was overwritten by Batch 3) - Fix SQLite test cleanup for WAL mode extra files
johnnichev
added a commit
that referenced
this pull request
Apr 6, 2026
Addresses the 10 issues from Galaxy S23 testing after PR #41. Critical: header still showed full nav on mobile because Chrome's "Desktop Site" mode reports a viewport of ~1280px (not ~980px as initially assumed), which exceeded the 1024px breakpoint added in PR #41. The fix is to detect touch input via `@media (pointer: coarse)`, which the Desktop Site toggle cannot override. This is the only reliable signal for "this is a touch device, no matter what the viewport pretends to be." Issues fixed: 1. **Header nav still showing on mobile** — Added @media (pointer: coarse) block that forces hamburger + drawer regardless of reported viewport. Also removes nav-hide-on-scroll on touch (issue #10): the auto-hide stays as a desktop progressive enhancement only. 2. **Hero pill grid felt templated** — Replaced 8 generic pills with a cleaner "Works with · OpenAI Anthropic Gemini Ollama" provider strip. Each provider gets a small cyan dot prefix. Removed the redundant feature pills (Multi-Agent Graphs, 50 Evaluators, etc.) since they already appear in the dedicated features section below. 3. **Supervisor agent chips broke into 3+1 layout** — Switched .sim-agents to a 2-column CSS grid with `:last-child:nth-child(odd)` selector that spans the orphaned last item across both columns. Handles 2/3/4 agent counts gracefully. 4. **"What is Selectools?" copy too dense** — Restructured into 3 short paragraphs with a visually distinct middle line listing capabilities separated by middle-dots. Removed the redundant "Unlike LangChain..." framing (the comparison tables already make this case). Closing paragraph keeps the brand voice. 5. **Code block scroll indicator** — Added a right-edge gradient mask to .code-body matching the comparison table pattern. Signals "more content this way" for horizontally-scrollable code. Mask drops on hover/focus so users see the full content when engaging. Also reduced code font slightly on mobile (12px → 11.5px) for better fit. 6. **Feature cards too tall on mobile** — Compact card layout under @media (max-width: 768px), (pointer: coarse): 28px → 20px padding, 40 → 32px icon, 32 → 14px grid gap. Cards now feel like a tight group instead of 1/3-screen blocks with awkward gaps. 7. **"Live · no server required" chip orphaned** — Moved inline with the "Visual Agent Builder" section label so it reads as a header annotation rather than a floating chip between the description and the card. 8. **Comparison table cells wrapping to 3 lines** — Bumped .cmp-table min-width from 640px to 800px so each column has ~115px (enough for "macOS desktop app" and "No (desktop only)" to fit on 1-2 lines). Added `white-space: nowrap` to .yes/.no/.mid verdict cells so 2-3 char answers never wrap awkwardly. 9. **No gap before first builder card in "Three paths"** — Added explicit margin-bottom: 64px on the section description and padding-top: 8px on the cards container. 10. **Header should always be visible** — Removed the hide-on-scroll-down behavior on touch devices (kept on desktop where it's a thoughtful progressive enhancement). On mobile the nav now stays fixed at the top throughout scrolling, which doubles as a wayfinding aid. Approach informed by /adapt and /clarify skill guidelines. The @media (pointer: coarse) pattern is the key insight from /adapt: viewport-based responsive design is fundamentally fragile because users can override it (Desktop Site mode, Reader Mode, browser zoom). Touch input is a hardware property that cannot be spoofed.
johnnichev
added a commit
that referenced
this pull request
Apr 6, 2026
#42) Addresses the 10 issues from Galaxy S23 testing after PR #41. Critical: header still showed full nav on mobile because Chrome's "Desktop Site" mode reports a viewport of ~1280px (not ~980px as initially assumed), which exceeded the 1024px breakpoint added in PR #41. The fix is to detect touch input via `@media (pointer: coarse)`, which the Desktop Site toggle cannot override. This is the only reliable signal for "this is a touch device, no matter what the viewport pretends to be." Issues fixed: 1. **Header nav still showing on mobile** — Added @media (pointer: coarse) block that forces hamburger + drawer regardless of reported viewport. Also removes nav-hide-on-scroll on touch (issue #10): the auto-hide stays as a desktop progressive enhancement only. 2. **Hero pill grid felt templated** — Replaced 8 generic pills with a cleaner "Works with · OpenAI Anthropic Gemini Ollama" provider strip. Each provider gets a small cyan dot prefix. Removed the redundant feature pills (Multi-Agent Graphs, 50 Evaluators, etc.) since they already appear in the dedicated features section below. 3. **Supervisor agent chips broke into 3+1 layout** — Switched .sim-agents to a 2-column CSS grid with `:last-child:nth-child(odd)` selector that spans the orphaned last item across both columns. Handles 2/3/4 agent counts gracefully. 4. **"What is Selectools?" copy too dense** — Restructured into 3 short paragraphs with a visually distinct middle line listing capabilities separated by middle-dots. Removed the redundant "Unlike LangChain..." framing (the comparison tables already make this case). Closing paragraph keeps the brand voice. 5. **Code block scroll indicator** — Added a right-edge gradient mask to .code-body matching the comparison table pattern. Signals "more content this way" for horizontally-scrollable code. Mask drops on hover/focus so users see the full content when engaging. Also reduced code font slightly on mobile (12px → 11.5px) for better fit. 6. **Feature cards too tall on mobile** — Compact card layout under @media (max-width: 768px), (pointer: coarse): 28px → 20px padding, 40 → 32px icon, 32 → 14px grid gap. Cards now feel like a tight group instead of 1/3-screen blocks with awkward gaps. 7. **"Live · no server required" chip orphaned** — Moved inline with the "Visual Agent Builder" section label so it reads as a header annotation rather than a floating chip between the description and the card. 8. **Comparison table cells wrapping to 3 lines** — Bumped .cmp-table min-width from 640px to 800px so each column has ~115px (enough for "macOS desktop app" and "No (desktop only)" to fit on 1-2 lines). Added `white-space: nowrap` to .yes/.no/.mid verdict cells so 2-3 char answers never wrap awkwardly. 9. **No gap before first builder card in "Three paths"** — Added explicit margin-bottom: 64px on the section description and padding-top: 8px on the cards container. 10. **Header should always be visible** — Removed the hide-on-scroll-down behavior on touch devices (kept on desktop where it's a thoughtful progressive enhancement). On mobile the nav now stays fixed at the top throughout scrolling, which doubles as a wayfinding aid. Approach informed by /adapt and /clarify skill guidelines. The @media (pointer: coarse) pattern is the key insight from /adapt: viewport-based responsive design is fundamentally fragile because users can override it (Desktop Site mode, Reader Mode, browser zoom). Touch input is a hardware property that cannot be spoofed.
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
site/index.htmlafter MkDocs buildTest plan
mkdocs build)/QUICKSTART/,/modules/AGENT/)🤖 Generated with Claude Code