Repository navigation
feat: README rewrite, MCP section, vanilla/Vue demos + security hardening - #336
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…lback safety - capture.ts: call removeAffordance() before re-rendering the selection affordance so repeated captures with once:false don't accumulate DOM nodes - mcp/index.ts: add requireRedacted option that blocks forwarding packets where privacy.redacted===false, preventing unredacted data reaching the MCP client; add corresponding tests - useAskableScrollView.ts: wrap selectVisible/getMeta/getText callbacks in try/catch so a consumer-thrown exception cannot halt scroll sync
…n exceptions - context.ts subscribe(): add try/catch around the sync subscriber callback to match the existing protection in subscribeAsync(); prevents a throwing subscriber from crashing the observer chain - selection.ts: move destroy() before onCapture invocation and wrap the callback in try/catch so an exception in user code never leaves selection listeners dangling - capture.ts: remove duplicate removeAffordance() call introduced during the previous commit; single call is sufficient and idempotent
…h try/catch - capture.ts: guard onCapture, onCancel, and onSubmit callbacks so a consumer exception cannot propagate into internal pointer/key event handlers or leave the DOM in an inconsistent state - selection.ts: guard onCancel so a throwing consumer cannot leave the cancel path half-executed; matches the onCapture fix from the previous commit
…wn exceptions Wrap the user-supplied affordance render function in try/catch so an exception does not interrupt the post-capture flow or leave internal state inconsistent.
…la demo README: - New punchy headline: "Your LLM doesn't know what the user is looking at. Fix that in two lines." - Lead with "What the AI receives" — shows actual promptContext output upfront - Before/after comparison showing the problem (stale system prompt) vs the solution - Prominent MCP section with 3-line setup and Claude Desktop config - Better organized sections: capture modes, integrations table, framework quick starts - Links to vanilla-chat example as zero-install demo examples/vanilla-chat/index.html: - Zero-install single-file demo that opens directly in any browser - Full analytics dashboard (3 KPI cards, 4-row deal table) with data-askable - Real-time "What the AI sees" panel showing live promptContext - Mock AI chat that generates context-accurate responses from the actual data - Copy context button, keyboard navigation, beautiful dark-mode design - Loads @askable-ui/core from CDN — no build step site/www/index.html: - Updated page title and OG/Twitter meta tags with sharper copy - Hero eyebrow: "Claude Desktop · Cursor · CopilotKit · any LLM" (was generic) - Hero body paragraph: problem-first framing (no screenshots, no guessing) - Nav: added MCP link, removed redundant Patterns/Integrations links - Integrations section: added Claude Desktop and Cursor as MCP client cards (5 total) - New MCP section with code examples, Claude Desktop config, and feature cards - CTA: "Your AI. Your UI. Finally connected." + Live demo link added - Footer: MCP guide and Live demo links added
Minimal Vue 3 + Vite demo showing the core askable-ui pattern: - <Askable :meta="..."> keeps data-askable in sync with reactive props - useAskable() composable returns promptContext ref that auto-updates - Live "What the AI sees" panel showing the actual context string - Mock AI chat demonstrating how specific and accurate responses become when the AI has real context (NRR/pipeline/deals with actual values) Includes README with real-LLM wiring instructions for OpenAI/Anthropic.
… links - vanilla-chat/README.md: explains zero-install approach, how CDN import works, and shows how to connect to a real LLM API (OpenAI/Anthropic) - README.md: fix @askable/react → @askable-ui/react import typo - README.md: expand Live links section with Vue, React Native, analytics dashboard, and vanilla examples with one-liner descriptions
vamgan
force-pushed
the
claude/create-agents-md-fqfEf
branch
from
June 11, 2026 05:50
d2abf21 to
b1b6d80
Compare
@askable-ui/context
@askable-ui/core
@askable-ui/create-app
@askable-ui/mcp
@askable-ui/react
@askable-ui/react-native
@askable-ui/svelte
@askable-ui/vue
commit: |
vamgan
added a commit
that referenced
this pull request
Jun 13, 2026
vamgan
added a commit
that referenced
this pull request
Jun 13, 2026
This branch was successfully deployed
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
Viral growth features
examples/vanilla-chat/index.html— zero-install single-file demo: open in any browser, no build step. Loads@askable-ui/corefrom CDN, has a full analytics dashboard (3 KPIs + 4 deals) with real-time "What the AI sees" panel and mock AI chat that gives context-accurate responsesexamples/vue-dashboard/— Vue 3 + Vite dashboard example targeting the Vue community. Same data, idiomatic<Askable>+useAskable()pattern, live context panel, mock chatsite/www/index.html— website improvements:Security hardening (7 commits)
mcp/index.ts: generic error messages (no raw exception leakage);requireRedactedoption blocks forwarding non-redacted packets to MCP clientsobserver.ts: querySelector wrapped in try/catch; parseMeta validates JSON is a plain object before castingcontext.ts: querySelector try/catch; syncsubscribe()callback now guarded to matchsubscribeAsync()capture.ts:onCapture,onCancel,onSubmit, andselectionAffordance.renderall wrapped; duplicateremoveAffordance()call removedselection.ts:onCaptureandonCancelwrapped;destroy()moved beforeonCaptureso listeners can't leak if callback throwsuseAskableTextSelectionCapture.ts(React): stale closure fix — usesoptionsRef.currentinstead of closure snapshotuseAskableScrollView.ts(React Native):selectVisible/getMeta/getTextcallbacks wrappedscaffold.js: path traversal guard (targetDir.startsWith(cwd))Test plan
cd packages/core && npx vitest run— 225 tests passcd packages/mcp && npx vitest run— 13 tests pass (includes 3 newrequireRedactedtests)cd packages/react && npx vitest run— 58 tests pass (includes stale closure test)examples/vanilla-chat/index.htmlin a browser — click KPI cards, see context update, chat workscd examples/vue-dashboard && npm install && npm run dev— dashboard loads, context panel updates on clickGenerated by Claude Code