From 6531e1952c3ce8a9146465b2cd33f6200aa5ec83 Mon Sep 17 00:00:00 2001 From: heznpc Date: Mon, 1 Jun 2026 23:08:44 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20close=20pre-release=20blockers=20(br?= =?UTF-8?q?idge=20scope,=20course=20drift,=20example-q,=20release=20docs)?= =?UTF-8?q?=20=E2=80=94=20v3.5.39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [security] Scope the Puter page bridge + AI tutor to anthropic.skilljar.com. The bridge's postMessage nonce is readable by any page-world script, so it must not run on Skilljar tenants we don't control. Other AI-detected tenants keep dictionary + Google Translate; only the trusted host gets the bridge/tutor. [fix] closeSubPanel re-binds the example-question chips (handlers were lost after opening+closing a sub-panel). [fix] Wire ai-fluency-for-small-businesses (18th course) into FLASHCARD_COURSE_MAP (clears check:academy) and re-enable the 12h academy-courses-drift cron — the scraper parses the current catalog again, restoring POSITIONING.md's SLA claim. [docs] Store listing -> 18 courses (EN/ko/ja); RELEASE_CHECKLIST refreshed (icon resolved, v3.5.39, bundled zip rebuilt). Bump 3.5.38 -> 3.5.39. --- .github/workflows/academy-courses-drift.yml | 11 +++-- CHANGELOG.md | 12 ++++++ README.md | 2 +- docs/index.html | 4 +- manifest.json | 2 +- package.json | 2 +- src/content/content.js | 21 +++++++--- src/content/sidebar-chat.js | 4 ++ src/data/de.json | 2 +- src/data/es.json | 2 +- src/data/fr.json | 2 +- src/data/it.json | 2 +- src/data/ja.json | 2 +- src/data/ko.json | 2 +- src/data/pt-BR.json | 2 +- src/data/ru.json | 2 +- src/data/vi.json | 2 +- src/data/zh-CN.json | 2 +- src/data/zh-TW.json | 2 +- src/lib/constants.js | 1 + store-assets/RELEASE_CHECKLIST.md | 46 +++++++++------------ store-assets/STORE_LISTING-ja.md | 2 +- store-assets/STORE_LISTING-ko.md | 2 +- store-assets/STORE_LISTING.md | 4 +- 24 files changed, 77 insertions(+), 58 deletions(-) diff --git a/.github/workflows/academy-courses-drift.yml b/.github/workflows/academy-courses-drift.yml index 8c20185..13710ef 100644 --- a/.github/workflows/academy-courses-drift.yml +++ b/.github/workflows/academy-courses-drift.yml @@ -16,12 +16,11 @@ name: Academy course catalog drift watcher # after the existing issue closes and drift recurs. on: - # TODO(2026-05-21): cron paused — Skilljar page structure changed, scraper - # broken since 2026-05-16 (5 days, 8 consecutive fails). Re-enable after - # fixing selectors in a dedicated session. Manual dispatch still available. - # Original cadence: '15 */12 * * *' (every 12h) - # schedule: - # - cron: '15 */12 * * *' + # Re-enabled 2026-06-01: the scraper parses the current catalog correctly + # again (check-academy-courses.js passes after wiring the new course), so the + # 12-hour watch behind POSITIONING.md's "new course -> 48h" SLA is restored. + schedule: + - cron: '15 */12 * * *' workflow_dispatch: # manual trigger from Actions UI permissions: diff --git a/CHANGELOG.md b/CHANGELOG.md index d4e33c7..7ee7a27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +## [3.5.39] - 2026-06-01 + +### Security +- **Page bridge + AI tutor scoped to `anthropic.skilljar.com`.** The Puter postMessage bridge (Gemini verification + Claude tutor) uses a nonce that any page-world script can read, so it must not run on Skilljar tenants we don't control. The bridge and the tutor sidebar now initialize only on the trusted Anthropic host; other AI-detected Skilljar tenants still get the dictionary + Google Translate, just not the bridge. + +### Fixed +- Example-question chips lost their click handlers after opening and closing a sub-panel (History / Flashcards / Bookmarks / Continue) — `closeSubPanel` now re-binds them alongside the chat input. + +### Changed +- Wired `ai-fluency-for-small-businesses` (18th live course) into `FLASHCARD_COURSE_MAP`, clearing the Academy course-drift check, and re-enabled the 12-hour drift cron (the catalog scraper parses correctly again). +- Store listing updated to 18 courses; `RELEASE_CHECKLIST.md` refreshed for the current state (icon resolved, v3.5.39 artifacts). + ## [3.5.38] - 2026-06-01 ### Fixed — translation rendering & dark-mode polish (from a live debugging pass on anthropic.skilljar.com) diff --git a/README.md b/README.md index f9294f2..96007fa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ SkillBridge -# SkillBridge — AI Course Translator v3.5.38 +# SkillBridge — AI Course Translator v3.5.39 > Available in multiple languages at the [project landing page](https://heznpc.github.io/skillBridge/). diff --git a/docs/index.html b/docs/index.html index e23c88b..105425f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@ SkillBridge — AI Course Translator for <!-- LANG_COUNT_START -->32+<!-- LANG_COUNT_END --> Languages - +