Beta#868
Conversation
Restore the `icons/webstore.svg` file that was previously missing or removed from the repository. This icon is used for the extension's Chrome Web Store listing. [auto-enhanced]
Introduce `tipjartype` and `tipjarsource` URL parameters to filter tips by unit (e.g., stars, bits) or platform (e.g., Facebook, YouTube). When a filter is active, the jar displays raw unit counts and uses separate persistent storage per filter combination. - **sources/facebook.js**: Add `donoValue` field (100 Stars = $1 USD) - **parameters.md**: Document new tip jar parameters (`tipjartype`, `tipjarunit`, `donationtype`, `tipjarsource`, `donationsource`, `tipjarunitlabel`, `persistent`, `controls`, `sound`, `hype`) - **popup.html**: Add dropdown UI for donation type and source filters - **tipjar.html**: Parse filters, update storage keys, CSV export, and history totals; adjust total display for native unit mode - **docs/event-reference.html**: Update Facebook Stars entry to mention `donoValue` [auto-enhanced]
- Introduce new "bar" display style for the tip jar/ goal meter with configurable fill colors (fillstart, fillend) and fill behavior (progress, gradient, solid) - Add recurring level support via `levelsize` parameter, enabling repeating goal increments - Implement additional customization parameters: barheight, noliquid, theme, celebration - Update popup.html UI with controls for fill color, fill mode, and recurring increment - Document all new parameters in parameters.md - Bump manifest version to 3.50.1 [auto-enhanced]
- Introduce `levelRolloverTimer` and `levelCompletionState` to display a completed level briefly before rolling over. - Modify `updateAmount()` to clear level state on non‑positive amounts or when the level hasn’t advanced, ensuring rollover only triggers on actual level changes. - Update `resetTipJarAmount()` to call `clearLevelCompletionState()`, so manual resets properly clear any pending rollover display. - Refine `renderAmount()` and `getProgressState()` to check for the completion state, enabling the brief “level complete” visual before returning to normal progress. [auto-enhanced]
Extend tipjar with three new display styles (compact bar, vertical bar, text-only) and a test donation panel that sends simulated platform donations (Facebook Stars, YouTube SuperChat, Twitch Bits, TikTok Hearts) directly from the popup. Reorganize tipjar options into separate collapsible sections (General Controls, Hype Cup Scoring, Style/Goal/Filters, Test Donations) for better UX. Update parameters.md with the new style options and the `barradius` parameter, and add corresponding UI elements in popup.html and popup.js. [auto-enhanced]
Add a new UI toggle and corresponding logic to display only the progress bar with the text embedded inside, hiding the title and meta sections. This provides a more compact visualization suitable for limited-space overlays. - popup.html: add "Only show the bar, with text inside" checkbox mapped to the `baronly` parameter - tipjar.html: apply `bar-only` CSS class to hide title/meta, adjust text rendering to include the title and progress within the bar fill [auto-enhanced]
- Add normalizeDonationTypeFilter() to convert 'cash' to 'usd' - Update nativeUnitMode to only enable if filter is not 'usd' - Use normalized filter in donationMatchesTypeFilter() - Append test tube emoji to 'Test Donations' label in popup.html [auto-enhanced]
- Store `memberLevel` in `avatarCache` from TikTok rank/grades - Add `addTikTokEventMeta` helper to attach follower flag and member level to event `data.meta` - Update `avatarCache.add` signature to accept and persist `memberLevel` - Rework TTS follower condition: check both `meta.follower` and event name keywords instead of nested `meta.tiktok.follower` - Read `meta.memberLevel` directly in `tts.js`, removing the nested `data.meta.tiktok` structure [auto-enhanced]
Reformat the `.then/.catch` chaining in the `trackSdkSendResult` function to improve readability and align with project linting rules. This follows up on the server fallback diagnostics added in e12000a. [auto-enhanced]
- Add `actions/examples/kick-channel-points-action-flow.json` as an importable Event Flow example for Kick reward redemptions. - Add `docs/kick-channel-points-event-flow.md` with detailed setup instructions, template variables, and troubleshooting. - Extend `getDockTransportHealth()` in `background.js` with `fakeMessageTransportReady` to indicate if a message transport (P2P or server fallback) is actually available. - Update `popup.js` to use the new `fakeMessageTransportReady` property when deciding whether to show the fallback banner, simplifying the conditional logic. This builds on the previous server fallback diagnostics work, ensuring the fake test message button reliably reports transport readiness. The new Kick channel points flow and documentation enable users to harness Kick reward redemptions in Event Flow. [auto-enhanced]
Add new Kick channel points/rewards event flow documentation with screenshots and update the guides in `docs/guides.html` to link to this guide from the Flow Actions and OBS setup sections. [auto-enhanced]
Reword the short answer for clarity and change the section heading from "What Steve should tell the user" to "Overview". [auto-enhanced]
… extraction plan Introduce the initial documentation structure under `docs/agents/` to support AI agents answering questions about Social Stream Ninja. - **00-inventory-and-plan.md**: catalogs existing project sources and proposes a comprehensive 12-section documentation plan - **01-extraction-checklist.md**: defines extraction levels (quick, heavy, intense), a master checklist for all components, and an extraction pass log [auto-enhanced]
- Added `13-reference/` index and cross-cutting lookup pages for commands, URL parameters, modes, free/paid boundaries, plugins/customization, support resources, and features/capabilities. - Updated extraction checklist (`01-extraction-checklist.md`) to mark numerous heavy passes as complete (source inventory, platform sources, product map, support KB mining, etc.). - Refined inventory plan (`00-inventory-and-plan.md`) with new page roles and updated open questions. [auto-enhanced]
Address a security advisory by removing the `geolocation` permission from iframes in `aioverlay.html`, `bot.html`, and `dock.html`. Only the `midi` and `microphone` permissions are retained, with the microphone kept to maintain Safari WebRTC P2P connectivity. Also expand the AI agent documentation inventory with new reference pages (glossary, surface URL cheatsheet, settings change impact matrix, public claims boundary matrix, and capability matrices) and update the extraction checklist to reflect recent heavy extraction passes. [auto-enhanced]
Increase wildcardAgentRefCount from 41 to 49 to reflect new wildcard references added in recent agent documentation updates (e.g., AI agent framework and extraction progress). Also add `docs/agents/*/SITEMAP.md` to the known wildcard patterns, confirming it as an intentional cross-reference rather than a broken link. [auto-enhanced]
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2b326254f9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <meta name="description" content="Client-side Markdown documentation viewer for Social Stream Ninja."> | ||
| <link rel="icon" href="../icons/favicon.ico" type="image/x-icon"> | ||
| <script defer src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.1/lib/marked.umd.min.js"></script> |
There was a problem hiding this comment.
Vendor the Markdown renderer instead of loading CDN JS
This new CDN <script> pulls executable JavaScript from cdnjs, but the repo instructions for /workspace/social_stream explicitly forbid static CDN script tags/remote executable logic. In packaged extension/Electron or offline contexts this dependency is not self-contained and can be blocked by MV3 CSP, so the docs viewer degrades and the release violates the packaging rules; vendor the library locally or rely on the local fallback instead.
Useful? React with 👍 / 👎.
Create a priority answer matrix offering safe support phrasing and first-check routing for major live-stream platforms (YouTube, TikTok, Twitch, Kick, Rumble, Facebook, Instagram, and Discord). Update the extraction checklist (`01-extraction-checklist.md`) and resource processing ledger (`02-resource-processing-ledger.md`) to register the new heavy pass and track its corresponding output document (`08-platform-sources/priority-platform-answer-matrix.md`). [auto-enhanced]
Add a new test source page (`testsource.html`) and content script (`testsource.js`) that dispatches custom `TestSourceMessage` events, allowing manual testing of chat overlay behavior without a live stream. The page includes predefined payloads, a custom message editor, and burst-send functionality. Updated `manifest.json` to register the new content script for the appropriate URLs. [auto-enhanced]
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 137de7bab4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
| } | ||
|
|
||
| chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { |
There was a problem hiding this comment.
Guard Chrome APIs in the test source
In Electron or standalone contexts that load sources/websocket scripts, chrome is not defined, so this top-level listener throws before the new test source can handle any messages; guard the runtime listener/settings fetch with a chrome.runtime feature check and provide the same non-extension fallback pattern used by shared websocket sources.
Useful? React with 👍 / 👎.
- Add regex filters in `filterXSS` to block event handlers (e.g., `onclick=`, `onerror=`), `javascript:` URIs, the `srcdoc` attribute, and `data:` URIs (including `data:text/html`) - Extend the WebSocket test source with false-positive test scenarios that verify safe mentions of XSS-related terms are not blocked - Strengthen initial probe detection while preserving legitimate message content [auto-enhanced]
The original logic relied on `data.textonly` being set before escaping, which could be overwritten when HTML was allowed. Introduce an `isTextOnlyMessage` flag from the initial data to ensure text-only messages always get proper HTML escaping. Also adjust the HTML processing block to skip sanitization when the message is text-only, preserving the intended behavior. This continues the XSS hardening effort from recent commits. [auto-enhanced]
Remove the intermediate `isTextOnlyMessage` variable and use `data.textonly` directly to control when chat messages are treated as plain text. This corrects the HTML escaping logic for text-only messages, ensuring they are safely escaped. Also update agent documentation: - Add customization validation ledger to extraction checklist and resource processing ledger. [auto-enhanced]
…ng docs - Add entry in extraction checklist for new API command proof ledger (`13-reference/api-command-proof-ledger.md`), documenting source-backed evidence labels, claim ledger, minimum proof packs, and update rules for command/API paths. - Update resource processing ledger to include the proof ledger under API and integrations, adjusting processing depth and remaining needs accordingly. [auto-enhanced]
Add a dedicated proof ledger entry for options and settings to the agent extraction checklist and update the resource processing ledger. - `01-extraction-checklist.md`: Add heavy options/settings evidence-ledger pass entry with full scope (URL options, popup settings, generated links, app state, provider/auth settings, page-local state, duplicate metadata) and completion checkbox. - `02-resource-processing-ledger.md`: Update the settings & storage and URL/page routing rows to record the new proof ledger and evidence labels. [auto-enhanced]
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f0bd9e855a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const raw = String(rawDonation || '').toLowerCase(); | ||
| return !(/\bjewels?\b|\bgift(?:ed|s)?\b/.test(raw)); |
There was a problem hiding this comment.
Preserve YouTube gifted memberships in tip jar totals
When a YouTube gifted-membership purchase arrives, sources/youtube.js emits it with event: "giftpurchase" and a hasDonation label like N Gifted, but this new guard rejects any YouTube donation text containing gifted before processTip can add it to currentAmount. That regresses normal USD tip jar goals for gifted memberships; narrow this exclusion to Jewel/gift-redemption payloads instead of all gift-like labels.
Useful? React with 👍 / 👎.
…ommon-question docs Update coverage map, evidence status, and proof pack to cross-reference the new `13-reference/feature-cost-claims-proof-ledger.md` for feature, cost, provider, and support proof boundaries. [auto-enhanced]
No description provided.