diff --git a/.deploy/mta.yaml b/.deploy/mta.yaml index 22fb8372d..aaec8ea30 100644 --- a/.deploy/mta.yaml +++ b/.deploy/mta.yaml @@ -10,7 +10,7 @@ ID: tutorials-ims # Bump this on each release you deploy — it's the version shown by `cf mtas` # and in the mtar filename (tutorials-ims_.mtar). Deploy is manual: # `cd .deploy && mbt build && cf deploy mta_archives/tutorials-ims_.mtar -e ../deploy/.mtaext -f`. -version: 1.38.0 +version: 1.39.1 # Top-level parameters (overridable per-env via deploy/.mtaext). parameters: diff --git a/app/admin-shell/scripts/discover-admin-components.js b/app/admin-shell/scripts/discover-admin-components.js index 10dc0d3c5..6031a5b1d 100644 --- a/app/admin-shell/scripts/discover-admin-components.js +++ b/app/admin-shell/scripts/discover-admin-components.js @@ -36,13 +36,32 @@ function isFioriComponent(adminDir, folder) { existsSync(join(webapp, 'manifest.json')) } +// A preload-built component (the default for every discovered tile — see +// preload-components.cjs) is run through `ui5 build`, which needs the app's own +// `ui5.yaml`. copy-components.js gates the preload path on `existsSync(ui5.yaml)` +// and SILENTLY falls back to a raw cpSync when it's missing. Raw copy ships the +// unminified source with NO Component-preload.js, so at runtime UI5 resolves each +// declared lib as an individual module straight from the SAPUI5 CDN. For most +// tiles those libs are already loaded by the shell, so the gap is invisible; a +// freestyle OData-V4 tile (app/admin/health) is the first to depend on +// `sap/ui/model/odata/v4/library.js`, whose raw CDN fetch then fails with a +// ModuleError "script load error". Rather than let that degrade silently, fail +// the build the moment a non-excluded component lacks its ui5.yaml. +function hasUi5Yaml(adminDir, folder) { + return existsSync(join(adminDir, folder, 'ui5.yaml')) +} + /** + * @param {string} [adminDir] — root of the admin apps tree. + * @param {Set} [preloadExclude] — folders intentionally kept on the + * raw-copy path; these are exempt from the ui5.yaml-presence guard. Defaults + * to empty (every tile is preload-built, so every tile needs its ui5.yaml). * @returns {Array<{folder: string, appId: string, camelName: string}>} * `folder` — the on-disk directory name under `app/admin/`. * `appId` — the `sap.app.id` read from the app's own `webapp/manifest.json`. * `camelName` — the last segment of `appId`, matching the folder's camelCase form. */ -function discoverComponents(adminDir = ADMIN_DIR) { +function discoverComponents(adminDir = ADMIN_DIR, preloadExclude = new Set()) { const entries = readdirSync(adminDir, { withFileTypes: true }) .filter(e => e.isDirectory()) .map(e => e.name) @@ -70,6 +89,16 @@ function discoverComponents(adminDir = ADMIN_DIR) { `expected "${expected}" (camelCase of folder name). ` + `Fix either the folder name or the manifest id so the two agree.`) } + if (!preloadExclude.has(folder) && !hasUi5Yaml(adminDir, folder)) { + throw new Error( + `app/admin/${folder}: missing ui5.yaml. Preload-built components need it ` + + `for \`ui5 build\` to emit a Component-preload.js; without it copy-components.js ` + + `falls back to a raw copy that ships NO preload, so UI5 lazy-loads each lib ` + + `from the CDN at runtime (freestyle OData-V4 tiles then fail with a ` + + `"script load error" ModuleError on sap/ui/model/odata/v4/library.js). ` + + `Add app/admin/${folder}/ui5.yaml (copy a sibling), or add "${folder}" to ` + + `PRELOAD_EXCLUDE in preload-components.cjs to intentionally ship it raw.`) + } components.push({ folder, appId, camelName }) } diff --git a/app/admin-shell/scripts/preload-components.cjs b/app/admin-shell/scripts/preload-components.cjs index ae352734e..a043869bb 100644 --- a/app/admin-shell/scripts/preload-components.cjs +++ b/app/admin-shell/scripts/preload-components.cjs @@ -29,7 +29,9 @@ const { discoverComponents } = require('./discover-admin-components'); const PRELOAD_EXCLUDE = new Set([]); function computePreloadComponents() { - const { components } = discoverComponents(); + // Pass PRELOAD_EXCLUDE so discoverComponents' ui5.yaml-presence guard exempts + // exactly the folders we intentionally keep on the raw-copy path. + const { components } = discoverComponents(undefined, PRELOAD_EXCLUDE); return new Set( components .map(c => c.folder) diff --git a/app/admin/health/package.json b/app/admin/health/package.json new file mode 100644 index 000000000..3dd9010ac --- /dev/null +++ b/app/admin/health/package.json @@ -0,0 +1,13 @@ +{ + "name": "sap.tutorials.admin.health", + "version": "0.0.1", + "private": true, + "description": "Health - Admin UI", + "scripts": { + "start": "fiori run --open index.html", + "build": "ui5 build --clean-dest" + }, + "devDependencies": { + "@ui5/cli": "^4.0.0" + } +} diff --git a/app/admin/health/ui5.yaml b/app/admin/health/ui5.yaml new file mode 100644 index 000000000..de27d7691 --- /dev/null +++ b/app/admin/health/ui5.yaml @@ -0,0 +1,10 @@ +specVersion: "4.0" +metadata: + name: sap.tutorials.admin.health +type: application +framework: + name: SAPUI5 + version: "1.148.12" + libraries: + - name: sap.m + - name: sap.ui.core diff --git a/app/admin/health/webapp/manifest.json b/app/admin/health/webapp/manifest.json index d9f8e1c2c..5c2b73013 100644 --- a/app/admin/health/webapp/manifest.json +++ b/app/admin/health/webapp/manifest.json @@ -33,8 +33,7 @@ "minUI5Version": "1.148.0", "libs": { "sap.m": {}, - "sap.ui.core": {}, - "sap.ui.model.odata.v4": {} + "sap.ui.core": {} } }, "models": { diff --git a/hugo/data/whats_new.json b/hugo/data/whats_new.json index 848c3fd98..b6e062eed 100644 --- a/hugo/data/whats_new.json +++ b/hugo/data/whats_new.json @@ -1,10282 +1,10620 @@ -{ - "generatedAt": "2026-10-13T18:17:23.000Z", - "repos": [ - { - "key": "tutorials-ims", - "slug": "sap-tutorials/tutorials-ims", - "label": "Developer Portal" - } - ], - "entries": [ - { - "id": "tutorials-ims#2756", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2756, - "title": "Production release 1.38.0", - "summary": "Promoted this train of new features and fixes to production in the 1.38.0 release — including the SAP TechEd homepage banner, group and mission progress on detail pages, and more reliable completion tracking.", - "category": "Maintenance", - "mergedAt": "2026-10-13T18:17:23.000Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2756" - }, - { - "id": "tutorials-ims#2754", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2754, - "title": "Faster-loading admin tiles", - "summary": "Every admin tile now loads from a pre-built bundle, so the admin UI opens noticeably faster.", - "category": "Performance", - "mergedAt": "2026-10-13T16:55:22Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2754" - }, - { - "id": "tutorials-ims#2755", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2755, - "title": "SAP TechEd banner on the homepage", - "summary": "The homepage now promotes the free virtual SAP TechEd event with a live countdown, taking over automatically once Devtoberfest ends so the two never overlap.", - "category": "Feature", - "mergedAt": "2026-10-13T16:54:59Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2755" - }, - { - "id": "tutorials-ims#2753", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2753, - "title": "Tutorial-to-tutorial links go to the right page", - "summary": "Links written as a plain tutorial name inside a tutorial now jump to that tutorial instead of reloading the page you are already on.", - "category": "Fix", - "mergedAt": "2026-10-13T16:21:19Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2753" - }, - { - "id": "tutorials-ims#2750", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2750, - "title": "fix(deploy): admin-bundle guard false-drifts on preload-built puzzles", - "summary": "Hardened a deploy safety check so it no longer falsely flags the new pre-built admin bundles.", - "category": "Maintenance", - "mergedAt": "2026-10-13T14:40:17Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2750" - }, - { - "id": "tutorials-ims#2748", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2748, - "title": "feat(admin-ui): prototype UI5 Component-preload build (puzzles tile)", - "summary": "Groundwork for pre-building admin tiles, starting with the puzzles tile.", - "category": "Maintenance", - "mergedAt": "2026-10-13T13:41:01Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2748" - }, - { - "id": "tutorials-ims#2747", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2747, - "title": "See the exact update time on a tutorial", - "summary": "Hovering the “updated” date on a tutorial now shows the full update time in your own timezone, so you can tell same-day updates apart.", - "category": "Feature", - "mergedAt": "2026-10-13T13:21:04Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2747" - }, - { - "id": "tutorials-ims#2746", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2746, - "title": "fix(ci): pin unit test fork pool + retry to kill intermittent timeouts", - "summary": "Stabilized the automated test suite to remove intermittent timeouts.", - "category": "Maintenance", - "mergedAt": "2026-10-13T13:20:45Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2746" - }, - { - "id": "tutorials-ims#2744", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2744, - "title": "Group and mission completion that stays correct", - "summary": "Group and mission completion now recomputes and self-heals when the set of tutorials changes, so a finished group no longer reverts and retired tutorials no longer block completion.", - "category": "Fix", - "mergedAt": "2026-10-13T12:09:11Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2744" - }, - { - "id": "tutorials-ims#2743", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2743, - "title": "Progress now shows on group and mission pages", - "summary": "Group and mission detail pages now show your personal progress and completion, not just a plain completed badge on the browse cards.", - "category": "Feature", - "mergedAt": "2026-10-13T12:08:40Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2743" - }, - { - "id": "tutorials-ims#2742", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2742, - "title": "fix(repair-script): refresh CoCompletions after slug rename (durable follow-up to #2740)", - "summary": "Repair tooling now refreshes related completion data after a tutorial is renamed, preventing a knowledge-graph build error.", - "category": "Maintenance", - "mergedAt": "2026-10-13T12:07:38Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2742" - }, - { - "id": "tutorials-ims#2741", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2741, - "title": "fix(parser): #2720 column-zero fence healer must only fire inside list items", - "summary": "Fixed a tutorial formatting fix so it only touches code blocks inside list items, leaving other content untouched.", - "category": "Fix", - "mergedAt": "2026-10-13T08:31:05Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2741" - }, - { - "id": "tutorials-ims#2740", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2740, - "title": "fix(kg): guard coCompletedWith edge arm against vertex-less slugs (kg-communities [4907] crash)", - "summary": "Fixed a crash in the knowledge-graph build triggered by completion links to missing tutorials.", - "category": "Fix", - "mergedAt": "2026-10-13T08:30:50Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2740" - }, - { - "id": "tutorials-ims#2739", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2739, - "title": "fix(2738): identity helpers honor pinned attr.dbUserId before tiered/sapId path", - "summary": "Made user lookup more reliable so progress and favorites resolve to the correct account.", - "category": "Fix", - "mergedAt": "2026-10-13T08:08:12Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2739" - }, - { - "id": "tutorials-ims#2737", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2737, - "title": "Repair tooling for retired-tutorial completion-path slots (#2718, #2719, #2722)", - "summary": "Added tooling to clean up completion slots that pointed at retired tutorials.", - "category": "Maintenance", - "mergedAt": "2026-10-13T06:55:40Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2737" - }, - { - "id": "tutorials-ims#2736", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2736, - "title": "fix(identity): generalize #2730 fix — route all user-scoped handlers through tiered resolver", - "summary": "Routed all progress-related actions through a single reliable user resolver, fixing cases where saved progress attached to the wrong identity.", - "category": "Fix", - "mergedAt": "2026-10-13T06:55:13Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2736" - }, - { - "id": "tutorials-ims#2735", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2735, - "title": "fix(content): render-pipeline token in publish change-detection (#2727)", - "summary": "Tutorial content republishes now correctly detect rendering changes, so edits reliably show up live.", - "category": "Fix", - "mergedAt": "2026-10-13T00:23:37Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2735" - }, - { - "id": "tutorials-ims#2734", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2734, - "title": "fix(favorites): read path must use tiered resolver, not sapId-only (#2730)", - "summary": "Fixed favorites not showing for some users by using the more reliable account lookup.", - "category": "Fix", - "mergedAt": "2026-10-12T22:45:12Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2734" - }, - { - "id": "tutorials-ims#2731", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2731, - "title": "docs(ops): queue-processor stall failure mode in scheduler runbook", - "summary": "Documented how to recover from a stalled background-job queue.", - "category": "Docs", - "mergedAt": "2026-10-12T21:10:07Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2731" - }, - { - "id": "tutorials-ims#2729", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2729, - "title": "fix(parser): heal list-item code fences with column-0 body lines (#2720)", - "summary": "Fixed broken code-block rendering in tutorial steps that put the code body at the far-left margin.", - "category": "Fix", - "mergedAt": "2026-10-12T20:25:58Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2729" - }, - { - "id": "tutorials-ims#2728", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2728, - "title": "style(tutorials): restore list-child indent for OPTION blocks in substeps (#2703)", - "summary": "Restored correct indentation for multiple-choice option blocks nested inside tutorial substeps.", - "category": "Fix", - "mergedAt": "2026-10-12T19:25:34Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2728" - }, - { - "id": "tutorials-ims#2726", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2726, - "title": "ci(qa-rebuild): allow-revert must also --force past the client short-circuit (#2703)", - "summary": "Improved the QA preview rebuild so it can force stale tutorials through the content pipeline.", - "category": "Maintenance", - "mergedAt": "2026-10-12T17:08:27Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2726" - }, - { - "id": "tutorials-ims#2725", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2725, - "title": "ci(qa-rebuild): add allow-revert input to unstick #672-guarded QA slugs (#2703)", - "summary": "Added an option to the QA preview rebuild to unstick tutorials that were being skipped.", - "category": "Maintenance", - "mergedAt": "2026-10-12T16:50:21Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2725" - }, - { - "id": "tutorials-ims#2724", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2724, - "title": "fix(publish): normalize tutorial slug to lowercase at discovery + tripwire (#2714 guard)", - "summary": "Tutorial content now always publishes under a lowercase name, preventing progress tracking from breaking on tutorials whose source folder used mixed case.", - "category": "Fix", - "mergedAt": "2026-10-12T16:50:09Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2724" - }, - { - "id": "tutorials-ims#2723", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2723, - "title": "fix(progress): case-insensitive tutorial slug lookup in completeStep/reset/getProgress (#2714)", - "summary": "Progress tracking now matches tutorial names regardless of capitalization, so completing or resetting a step works on affected tutorials.", - "category": "Fix", - "mergedAt": "2026-10-12T16:02:11Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2723" - }, - { - "id": "tutorials-ims#2713", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2713, - "title": "fix(tutorials): fully dedent nested OPTION bodies + trailing substep content (#2703)", - "summary": "Fixed indentation of nested option blocks and following content so those tutorial steps render cleanly.", - "category": "Fix", - "mergedAt": "2026-10-12T13:01:40Z", - "week": "2026-W42", - "weekStart": "2026-10-12", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2713" - }, - { - "id": "tutorials-ims#2712", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2712, - "title": "Production release 1.37.2", - "summary": "Promoted the MCP sign-in reliability fix and accumulated updates to production in the 1.37.2 release.", - "category": "Maintenance", - "mergedAt": "2026-10-11T21:34:36Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2712" - }, - { - "id": "tutorials-ims#2711", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2711, - "title": "fix(mcp): DCR must return srv-mcp's clientid, not the approuter's own", - "summary": "Fixed AI-assistant client registration to return the correct service identifier so connections authorize properly.", - "category": "Fix", - "mergedAt": "2026-10-11T16:56:20Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2711" - }, - { - "id": "tutorials-ims#2710", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2710, - "title": "Automatic client registration for AI assistants", - "summary": "AI assistant connections can now register themselves automatically with the portal using a standard protocol, removing a manual setup step.", - "category": "Feature", - "mergedAt": "2026-10-11T15:55:11Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2710" - }, - { - "id": "tutorials-ims#2709", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2709, - "title": "docs(mcp): correct PROD client_id — DEV and PROD have DISTINCT IAS clients", - "summary": "Corrected documentation on the distinct AI-assistant client identifiers used in test and production.", - "category": "Docs", - "mergedAt": "2026-10-11T14:25:57Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2709" - }, - { - "id": "tutorials-ims#2708", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2708, - "title": "Production release 1.37.2 (MCP sign-in fix)", - "summary": "Promoted the AI-assistant sign-in reliability fix to production.", - "category": "Maintenance", - "mergedAt": "2026-10-10T16:31:54Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2708" - }, - { - "id": "tutorials-ims#2707", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2707, - "title": "Reliable sign-in for AI assistant (MCP) connections", - "summary": "AI clients connecting through the MCP endpoint now sign in reliably — the portal hands back a token the service can actually validate, so connections no longer fail right after a successful login.", - "category": "Fix", - "mergedAt": "2026-10-10T14:30:30Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2707" - }, - { - "id": "tutorials-ims#2706", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2706, - "title": "Production release 1.37.1", - "summary": "Promoted the accumulated fixes and docs updates to production in the 1.37.1 release.", - "category": "Maintenance", - "mergedAt": "2026-10-09T23:10:00Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2706" - }, - { - "id": "tutorials-ims#2705", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2705, - "title": "Discovery Center tutorial import tooling", - "summary": "Added internal tooling that converts SAP Discovery Center tutorials into the platform's format, making it easier for authors to bring existing content onto the portal.", - "category": "Maintenance", - "mergedAt": "2026-10-09T21:20:49Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2705" - }, - { - "id": "tutorials-ims#2704", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2704, - "title": "Correct rendering of OS options and alerts in nested tutorial steps", - "summary": "Tutorials that nest OS-specific option panels inside numbered sub-steps now render correctly — step numbering is preserved, and code blocks, images, and notes inside those panels display properly, with distinct styling for Note and Important callouts.", - "category": "Fix", - "mergedAt": "2026-10-09T20:30:02Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2704" - }, - { - "id": "tutorials-ims#2700", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2700, - "title": "Correct the MCP quickstart client ID", - "summary": "The MCP quickstart documentation now shows the correct production client ID, so new connections use the current identity client instead of a retired one.", - "category": "Docs", - "mergedAt": "2026-10-08T22:24:21Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2700" - }, - { - "id": "tutorials-ims#2701", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2701, - "title": "Keep MCP sessions connected across token refresh", - "summary": "AI clients connecting to the Developers MCP server no longer drop on reconnect — the consent proxy now honors refresh-token requests, so a session stays authenticated after the initial sign-in without a repeated login.", - "category": "Fix", - "mergedAt": "2026-10-08T22:24:06Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2701" - }, - { - "id": "tutorials-ims#2699", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2699, - "title": "Release 1.37.0", - "summary": "Internal release packaging the 1.37.0 train for promotion to production.", - "category": "Maintenance", - "mergedAt": "2026-10-08T19:57:34Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2699" - }, - { - "id": "tutorials-ims#2698", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2698, - "title": "Consent screen for the Developers MCP server (production)", - "summary": "The Application Access Request consent screen is now live on developers.sap.com production, so you review and approve what an AI client can access before connecting to the Developers MCP server.", - "category": "Feature", - "mergedAt": "2026-10-08T19:29:04Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2698" - }, - { - "id": "tutorials-ims#2697", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2697, - "title": "fix(mcp): forward client_id through idpExchange (iasClientId is not defined)", - "summary": "Fixed a sign-in failure that stopped the MCP OAuth flow from completing after you accepted the consent screen.", - "category": "Fix", - "mergedAt": "2026-10-08T18:10:57Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2697" - }, - { - "id": "tutorials-ims#2694", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2694, - "title": "Redirect a retired tutorial to an external SAP page", - "summary": "Admins can now redirect a retired tutorial to an approved external SAP page (such as a community.sap.com article), not only to another tutorial.", - "category": "Feature", - "mergedAt": "2026-10-08T18:10:42Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2694" - }, - { - "id": "tutorials-ims#2696", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2696, - "title": "chore(mcp): enable MCP_CONSENT_ENABLED on DEV approuter", - "summary": "Turned on the MCP consent screen in the development environment ahead of the production rollout.", - "category": "Maintenance", - "mergedAt": "2026-10-08T16:49:24Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2696" - }, - { - "id": "tutorials-ims#2695", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2695, - "title": "Clearer author onboarding and QA access instructions", - "summary": "Clarified the tutorial-author onboarding docs and added clear instructions for requesting QA channel access.", - "category": "Docs", - "mergedAt": "2026-10-08T16:44:55Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2695" - }, - { - "id": "tutorials-ims#2693", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2693, - "title": "fix(mcp): flip protected-resource authorization_servers to self when consent enabled", - "summary": "Fixed the MCP consent screen being skipped so it now reliably appears during sign-in.", - "category": "Fix", - "mergedAt": "2026-10-08T15:31:49Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2693" - }, - { - "id": "tutorials-ims#2691", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2691, - "title": "fix(mcp): consent proxy forwards client_id instead of pinning server config", - "summary": "Fixed the MCP sign-in flow so each AI client authenticates with its own identity instead of a single shared one.", - "category": "Fix", - "mergedAt": "2026-10-08T14:56:33Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2691" - }, - { - "id": "tutorials-ims#2689", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2689, - "title": "First-time users can join Devtoberfest", - "summary": "First-time signed-in users can now join Devtoberfest instead of hitting a sign-up error.", - "category": "Fix", - "mergedAt": "2026-10-08T13:19:10Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2689" - }, - { - "id": "tutorials-ims#2685", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2685, - "title": "fix(content): export excludedSlugsHandler from @tutorials/content barrel (#2585)", - "summary": "Fixed a crash that was taking the backend offline and returning errors across the site.", - "category": "Fix", - "mergedAt": "2026-10-07T22:47:09Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2685" - }, - { - "id": "tutorials-ims#2684", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2684, - "title": "fix(ui5): map account-merge island to ui5-me entry for ui5-text coverage (#2651)", - "summary": "Fixed a build issue that was blocking site deployments so the account-history merge page ships correctly.", - "category": "Fix", - "mergedAt": "2026-10-07T21:45:12Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2684" - }, - { - "id": "tutorials-ims#2683", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2683, - "title": "fix(hugo): restore security-reviewed marker on link safeHTML (#2680 regression)", - "summary": "Fixed a build-check regression that was blocking site deployments.", - "category": "Fix", - "mergedAt": "2026-10-07T21:37:05Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2683" - }, - { - "id": "tutorials-ims#2682", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2682, - "title": "fix(quarantine): exclude DELETED/INACTIVE tutorials from quarantine + publisher (#2585)", - "summary": "Deleted and inactive tutorials no longer show up in the admin moderation queue or get reprocessed by the publisher.", - "category": "Fix", - "mergedAt": "2026-10-07T21:26:42Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2682" - }, - { - "id": "tutorials-ims#2681", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2681, - "title": "Headless admin API access via personal access tokens", - "summary": "Admins can now reach the admin OData and GraphQL APIs from scripts and the command line using a personal access token, no shared credential needed.", - "category": "Feature", - "mergedAt": "2026-10-07T18:19:23Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2681" - }, - { - "id": "tutorials-ims#2680", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2680, - "title": "fix(app-space): make Joule dark-mode detection reactive so light gradient wins", - "summary": "Fixed the App Space hero so it correctly shows the light-mode brand gradient when you are in light mode.", - "category": "Fix", - "mergedAt": "2026-10-07T15:44:28Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2680" - }, - { - "id": "tutorials-ims#2679", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2679, - "title": "fix(app-space): true 2-stop Joule brand gradient in hero", - "summary": "Updated the App Space hero to use the correct two-color brand gradient.", - "category": "Fix", - "mergedAt": "2026-10-07T14:49:05Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2679" - }, - { - "id": "tutorials-ims#2678", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2678, - "title": "Security fix: block unsafe link schemes in tutorials", - "summary": "Closed a cross-site scripting hole in tutorial link rendering so malicious link schemes can no longer run code.", - "category": "Fix", - "mergedAt": "2026-10-07T07:06:41Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2678" - }, - { - "id": "tutorials-ims#2677", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2677, - "title": "test(account-merge): mid-merge-throw rollback unit test (#2675)", - "summary": "Added a test that verifies account-history merges roll back cleanly if they fail partway through.", - "category": "Maintenance", - "mergedAt": "2026-10-07T06:55:31Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2677" - }, - { - "id": "tutorials-ims#2676", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2676, - "title": "fix(account-merge): close email-send timing side-channel (#2674)", - "summary": "Hardened the account-merge request flow so response timing can no longer reveal whether an account exists.", - "category": "Fix", - "mergedAt": "2026-10-07T06:14:24Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2676" - }, - { - "id": "tutorials-ims#2673", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2673, - "title": "fix(navigator): guard window access in urlSync against teardown race", - "summary": "Fixed a flaky test in the tutorial browser's navigation code.", - "category": "Fix", - "mergedAt": "2026-10-07T05:29:53Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2673" - }, - { - "id": "tutorials-ims#2672", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2672, - "title": "Merge tutorial history from an old account", - "summary": "You can now merge your tutorial history from an old account into your current one through an email-verified self-service flow.", - "category": "Feature", - "mergedAt": "2026-10-07T01:16:06Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2672" - }, - { - "id": "tutorials-ims#2671", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2671, - "title": "feat(btp-audit): BTP→BAIP homepage content audit toolset", - "summary": "Added internal tooling to audit and rename older BTP references in homepage text to SAP Business AI Platform.", - "category": "Maintenance", - "mergedAt": "2026-10-06T18:53:06Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2671" - }, - { - "id": "tutorials-ims#2670", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2670, - "title": "docs: add CONTRIBUTING, ACCESSIBILITY, and PR template", - "summary": "Added contributing, accessibility, and pull-request guidance to the repository.", - "category": "Docs", - "mergedAt": "2026-10-06T17:21:16Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2670" - }, - { - "id": "tutorials-ims#2669", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2669, - "title": "docs: add CONTRIBUTING, ACCESSIBILITY, and PR template", - "summary": "Added contributing, accessibility, and pull-request guidance to the repository.", - "category": "Docs", - "mergedAt": "2026-10-06T17:16:40Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2669" - }, - { - "id": "tutorials-ims#2668", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2668, - "title": "Application Access Request consent screen for MCP", - "summary": "Added the Application Access Request consent screen to the MCP sign-in flow so you can review and approve AI access before connecting.", - "category": "Feature", - "mergedAt": "2026-10-06T15:58:39Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2668" - }, - { - "id": "tutorials-ims#2667", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2667, - "title": "docs(mcp): Option B consent-screen spike design spec", - "summary": "Design spec for the planned MCP sign-in consent screen.", - "category": "Docs", - "mergedAt": "2026-10-06T14:57:14Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2667" - }, - { - "id": "tutorials-ims#2666", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2666, - "title": "fix: skip post-publish setImmediate jobs under VITEST to unblock unit-tests", - "summary": "Fixed a test-environment timing issue that was causing continuous-integration runs to fail even when all tests passed.", - "category": "Maintenance", - "mergedAt": "2026-10-05T23:01:45Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2666" - }, - { - "id": "tutorials-ims#2665", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2665, - "title": "docs: register gameboard + identity-dedup runbooks in sidebar (fix Deploy Docs CI)", - "summary": "Registered two operator runbooks in the documentation sidebar so they appear in navigation.", - "category": "Docs", - "mergedAt": "2026-10-05T22:45:10Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2665" - }, - { - "id": "tutorials-ims#2664", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2664, - "title": "docs(ops): gameboard cat-game PROD data troubleshooting runbook", - "summary": "Added an operator runbook for troubleshooting the Devtoberfest cat-game counter and leaderboard.", - "category": "Docs", - "mergedAt": "2026-10-05T22:33:43Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2664" - }, - { - "id": "tutorials-ims#2662", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2662, - "title": "docs(ops): identity dedup reconciliation runbook (#2651)", - "summary": "Added an operator runbook for reconciling duplicate-account identity records.", - "category": "Docs", - "mergedAt": "2026-10-05T20:01:31Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2662" - }, - { - "id": "tutorials-ims#2663", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2663, - "title": "Release 1.36.0 — Admin UI CDN outage fix + A2A prod auth + sign-in/identity (DEV→main)", - "summary": "Release 1.36.0 to production, including the Admin UI outage fix and sign-in and identity improvements.", - "category": "Maintenance", - "mergedAt": "2026-10-05T20:00:54Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2663" - }, - { - "id": "tutorials-ims#2657", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2657, - "title": "fix(a2a): resolve prod /a2a 401 — label-based XSUAA resolution + IAS-only degrade (#2649)", - "summary": "Fixed authentication on the agent-to-agent endpoint so machine-to-machine clients can connect reliably in production.", - "category": "Fix", - "mergedAt": "2026-10-05T19:02:11Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2657" - }, - { - "id": "tutorials-ims#2661", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2661, - "title": "fix(identity): resolve + reconcile duplicate Users rows — cat-game counter/leaderboard desync (#2651)", - "summary": "Signing in with SAP ID no longer creates a duplicate profile, so your Devtoberfest points and leaderboard standing stay in sync.", - "category": "Fix", - "mergedAt": "2026-10-05T19:01:45Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2661" - }, - { - "id": "tutorials-ims#2660", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2660, - "title": "fix(ci): unbreak Docs Deploy + unit tests", - "summary": "Fixed broken documentation builds and a flaky search test to keep the platform's quality checks green.", - "category": "Fix", - "mergedAt": "2026-10-05T18:19:45Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2660" - }, - { - "id": "tutorials-ims#2659", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2659, - "title": "Single source of truth for the Admin UI's SAPUI5 version", - "summary": "The Admin UI's SAPUI5 version now lives in one place with an automatic drift check, so a future version bump can't silently break the admin tools.", - "category": "Maintenance", - "mergedAt": "2026-10-05T17:51:56Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2659" - }, - { - "id": "tutorials-ims#2658", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2658, - "title": "fix(admin): UI5 CDN pin 1.136.0 → 1.148.12 — PROD Admin UI outage", - "summary": "Restored the Admin UI after an SAPUI5 version was removed from SAP's CDN, repinning to the current long-term-support release.", - "category": "Fix", - "mergedAt": "2026-10-05T17:27:38Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2658" - }, - { - "id": "tutorials-ims#2656", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2656, - "title": "feat(rebuild-content): add allow-revert input to clear #672-guarded source-hash drift", - "summary": "Added an option to the content-rebuild workflow that clears a stuck content-drift check.", - "category": "Maintenance", - "mergedAt": "2026-10-05T14:49:12Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2656" - }, - { - "id": "tutorials-ims#2655", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2655, - "title": "feat(rebuild-content): add allow-revert input to clear #672-guarded source-hash drift", - "summary": "Added an option to the content-rebuild workflow that clears a stuck content-drift check.", - "category": "Maintenance", - "mergedAt": "2026-10-05T14:06:30Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2655" - }, - { - "id": "tutorials-ims#2653", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2653, - "title": "feat(signin): warn SAP-ID holders a mismatched social login forks progress #2651", - "summary": "The sign-in screen now warns SAP ID holders that choosing a different social login can fork their progress onto a separate profile.", - "category": "Feature", - "mergedAt": "2026-10-05T13:13:28Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2653" - }, - { - "id": "tutorials-ims#2652", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2652, - "title": "feat(signin): move SAP ID to top of provider list", - "summary": "Continue with SAP ID now appears first on the sign-in screen, ahead of the other login providers.", - "category": "Feature", - "mergedAt": "2026-10-05T10:39:29Z", - "week": "2026-W41", - "weekStart": "2026-10-05", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2652" - }, - { - "id": "tutorials-ims#2648", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2648, - "title": "Release 1.35.0 promoted to production", - "summary": "Shipped the 1.35.0 release train, restoring developer-portal sign-in and moving agent-to-agent authentication onto SAP IAS.", - "category": "Maintenance", - "mergedAt": "2026-10-04T22:17:01Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2648" - }, - { - "id": "tutorials-ims#2647", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2647, - "title": "fix(deploy): correct MCP mtar build flag (-f) in docs; parallelize asset-retention smoke", - "summary": "Corrected an internal deployment command and sped up a post-release health check that was intermittently reporting healthy deployments as failed.", - "category": "Fix", - "mergedAt": "2026-10-04T21:48:23Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2647" - }, - { - "id": "tutorials-ims#2646", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2646, - "title": "fix(auth): scope IAS to /a2a; restore XSUAA browser login (#2593 regression)", - "summary": "Restored sign-in on the developer portal after a recent change had broken logins for everyone on the DEV environment.", - "category": "Fix", - "mergedAt": "2026-10-04T20:44:45Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2646" - }, - { - "id": "tutorials-ims#2645", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2645, - "title": "fix(content): export quarantineIngestHandler from barrel index.js", - "summary": "Fixed a startup crash in the backend service that was blocking deployments.", - "category": "Fix", - "mergedAt": "2026-10-04T18:45:28Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2645" - }, - { - "id": "tutorials-ims#2644", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2644, - "title": "fix(db): add missing migration=5 for Users.pictureUrl", - "summary": "Added a missing database update so profile pictures can be stored, unblocking the deployment.", - "category": "Fix", - "mergedAt": "2026-10-04T18:00:27Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2644" - }, - { - "id": "tutorials-ims#2643", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2643, - "title": "feat(a2a): migrate agent auth from XSUAA client-credentials to SAP IAS (#2593)", - "summary": "Migrated the agent-to-agent integration endpoint to SAP's Identity Authentication sign-in, with existing tokens kept working through the transition.", - "category": "Feature", - "mergedAt": "2026-10-04T17:15:31Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2643" - }, - { - "id": "tutorials-ims#2642", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2642, - "title": "feat(#2586): surface rebuild quarantine outcome on Tutorials OP", - "summary": "The admin 'Rebuild this tutorial' action now honestly reports when a rebuild was blocked by validation instead of always showing success, with the reasons shown on the tutorial's page.", - "category": "Feature", - "mergedAt": "2026-10-04T16:38:32Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2642" - }, - { - "id": "tutorials-ims#2639", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2639, - "title": "feat(auth): login-provider profile picture (#2628)", - "summary": "Social logins can now supply a profile picture, with the SAP Community avatar taking precedence and initials shown as a fallback.", - "category": "Feature", - "mergedAt": "2026-10-04T16:15:17Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2639" - }, - { - "id": "tutorials-ims#2640", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2640, - "title": "feat(#2585): persistent quarantine — HANA persistence + Admin UI", - "summary": "Tutorials that fail pre-publish validation are now recorded centrally and listed in a new 'Quarantined Tutorials' admin screen, so blocked content is visible instead of lost.", - "category": "Feature", - "mergedAt": "2026-10-04T15:35:31Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2640" - }, - { - "id": "tutorials-ims#2638", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2638, - "title": "fix(test): stop semantic-search unit tests leaking via shared cds-caching store", - "summary": "Fixed an intermittently failing semantic-search test caused by a shared cache leaking between test runs.", - "category": "Fix", - "mergedAt": "2026-10-04T14:43:28Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2638" - }, - { - "id": "tutorials-ims#2635", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2635, - "title": "fix(mcp): pin attr.dbUserId on PAT synthetic user so resolvers resolve (#2630)", - "summary": "Fixed personal-access-token access to the hosted developer tools returning 'unable to resolve user' or silently empty results for valid tokens.", - "category": "Fix", - "mergedAt": "2026-10-04T14:00:57Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2635" - }, - { - "id": "tutorials-ims#2637", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2637, - "title": "fix(content): serve-side underscore-slug 404 + document 3b/3c republishes (#2587)", - "summary": "Fixed tutorials with underscores in their address returning 'not found' even though the content was published and healthy.", - "category": "Fix", - "mergedAt": "2026-10-04T13:48:56Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2637" - }, - { - "id": "tutorials-ims#2636", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2636, - "title": "docs: register signin-sso-reauth-followup in sidebar (fix Deploy Docs CI)", - "summary": "Registered a new operations page in the documentation sidebar so the docs site builds again.", - "category": "Docs", - "mergedAt": "2026-10-04T13:13:20Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2636" - }, - { - "id": "tutorials-ims#2634", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2634, - "title": "feat(signin): nudge to sign out before switching IdP over an active IAS session (#2626 follow-up)", - "summary": "The sign-in page now shows a hint to sign out first when you're already signed in and want to switch to a different login provider.", - "category": "Feature", - "mergedAt": "2026-10-04T12:55:31Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2634" - }, - { - "id": "tutorials-ims#2633", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2633, - "title": "fix(mcp): stop anonymous search surfacing deleted/unpublished tutorials (#2631)", - "summary": "Stopped anonymous tutorial search from returning deleted or unpublished tutorials whose links lead to a 'not found' page.", - "category": "Fix", - "mergedAt": "2026-10-04T12:48:29Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2633" - }, - { - "id": "tutorials-ims#2626", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2626, - "title": "docs: follow-up for /signin IdP re-selection over active IAS SSO session", - "summary": "Documented a known limitation where picking a provider on the sign-in page can reuse an existing session instead of switching providers, and the planned fix path.", - "category": "Docs", - "mergedAt": "2026-10-04T12:26:31Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2626" - }, - { - "id": "tutorials-ims#2632", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2632, - "title": "docs(auth): document shipped 5-provider social login + IAS admin setup", - "summary": "Brought the authentication documentation in line with the shipped five-provider social login and its admin-console setup steps.", - "category": "Docs", - "mergedAt": "2026-10-04T12:25:55Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2632" - }, - { - "id": "tutorials-ims#2625", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2625, - "title": "Release 1.34.0 — GitHub login + RPT sign-in page (DEV→main)", - "summary": "Release 1.34.0 to production, including GitHub login and the redesigned sign-in page.", - "category": "Maintenance", - "mergedAt": "2026-10-04T00:16:26Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2625" - }, - { - "id": "tutorials-ims#2624", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2624, - "title": "chore(release): bump deploy version to 1.34.0", - "summary": "Version bump for the GitHub-login and sign-in-page release.", - "category": "Maintenance", - "mergedAt": "2026-10-04T00:12:14Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2624" - }, - { - "id": "tutorials-ims#2623", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2623, - "title": "chore(deploy): enable GITHUB_OIDC_ENABLED on the PROD approuter", - "summary": "Enabled GitHub login on the production environment.", - "category": "Maintenance", - "mergedAt": "2026-10-04T00:00:32Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2623" - }, - { - "id": "tutorials-ims#2622", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2622, - "title": "Redesigned sign-in page with working per-provider buttons", - "summary": "Redesigned the sign-in page with per-provider buttons and fixed the routing so each button signs you in with the provider you picked.", - "category": "Feature", - "mergedAt": "2026-10-03T23:15:18Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2622" - }, - { - "id": "tutorials-ims#2621", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2621, - "title": "Per-provider buttons on the sign-in page", - "summary": "Added per-provider sign-in buttons that take you straight to your chosen identity provider.", - "category": "Feature", - "mergedAt": "2026-10-03T22:00:22Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2621" - }, - { - "id": "tutorials-ims#2620", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2620, - "title": "GitHub logins linked to your identity", - "summary": "Signing in with GitHub now links durably to your developer-portal identity so your progress stays with your account.", - "category": "Feature", - "mergedAt": "2026-10-03T18:05:29Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2620" - }, - { - "id": "tutorials-ims#2619", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2619, - "title": "chore(deploy): enable GITHUB_OIDC_ENABLED on DEV approuter", - "summary": "Enabled GitHub login on the development environment.", - "category": "Maintenance", - "mergedAt": "2026-10-03T16:39:05Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2619" - }, - { - "id": "tutorials-ims#2618", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2618, - "title": "Sign in with GitHub (foundation)", - "summary": "Added the groundwork for Sign in with GitHub, letting SAP identity federate GitHub as a login provider.", - "category": "Feature", - "mergedAt": "2026-10-03T16:25:52Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2618" - }, - { - "id": "tutorials-ims#2616", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2616, - "title": "chore(auth): IAS instance params cover all prod approuter hosts (#2610)", - "summary": "Internal identity configuration update so sign-in covers all production host names.", - "category": "Maintenance", - "mergedAt": "2026-10-03T15:03:59Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2616" - }, - { - "id": "tutorials-ims#2617", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2617, - "title": "feat(header): make \"Manage my Account\" link IdP-aware (#2615)", - "summary": "The Manage my Account link now points to the right account page based on how you signed in.", - "category": "Fix", - "mergedAt": "2026-10-03T14:26:16Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2617" - }, - { - "id": "tutorials-ims#2614", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2614, - "title": "fix(approuter): routes back to XSUAA login, keep IAS binding for logout (#2610)", - "summary": "Restored working login after an identity-service change had broken sign-in.", - "category": "Fix", - "mergedAt": "2026-10-03T12:24:33Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2614" - }, - { - "id": "tutorials-ims#2613", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2613, - "title": "test(smoke): accept IAS /oauth2/authorize redirect (#2610 follow-up)", - "summary": "Updated post-deploy smoke tests to match the new identity-service sign-in redirect.", - "category": "Maintenance", - "mergedAt": "2026-10-03T12:04:34Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2613" - }, - { - "id": "tutorials-ims#2612", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2612, - "title": "Clean logout on shared machines", - "summary": "Reworked sign-in to run through SAP Identity Authentication so logging out fully clears your session, which matters on shared and event machines.", - "category": "Feature", - "mergedAt": "2026-10-03T08:24:08Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2612" - }, - { - "id": "tutorials-ims#2609", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2609, - "title": "chore(approuter): upgrade @sap/approuter 16.9.0 → 23.3.0 (security)", - "summary": "Upgraded the application router to a current version for important security hardening in the authentication path.", - "category": "Maintenance", - "mergedAt": "2026-10-03T06:10:27Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2609" - }, - { - "id": "tutorials-ims#2608", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2608, - "title": "fix(signin): relabel chooser options for clarity", - "summary": "Relabeled the sign-in page options to make the two sign-in paths clearer.", - "category": "Fix", - "mergedAt": "2026-10-03T05:54:55Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2608" - }, - { - "id": "tutorials-ims#2607", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2607, - "title": "fix(signin): exempt /signin chooser from silent auto-login", - "summary": "Fixed the sign-in page so returning visitors actually see the provider chooser instead of being signed in silently.", - "category": "Fix", - "mergedAt": "2026-10-02T21:42:04Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2607" - }, - { - "id": "tutorials-ims#2605", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2605, - "title": "fix(petoberfest-admin): uploader email fallback + photo on detail page", - "summary": "In the Petoberfest admin moderation screen, the uploader is now always shown and full-size photos appear on the detail page.", - "category": "Fix", - "mergedAt": "2026-10-02T20:42:59Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2605" - }, - { - "id": "tutorials-ims#2606", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2606, - "title": "Provider chooser wired into the login flow", - "summary": "Wired the sign-in provider chooser into the login flow so clicking sign in lets you pick an identity provider.", - "category": "Feature", - "mergedAt": "2026-10-02T20:42:27Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2606" - }, - { - "id": "tutorials-ims#2604", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2604, - "title": "Social login via a themed sign-in page", - "summary": "Added a themed sign-in page letting you log in with SAP ID or SAP Universal ID including social providers, without seeing a separate provider chooser.", - "category": "Feature", - "mergedAt": "2026-10-02T19:00:35Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2604" - }, - { - "id": "tutorials-ims#2603", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2603, - "title": "fix(admin-shell): finish BTP→SAP Business AI Platform rename for Subaccount nav item (#2588)", - "summary": "Finished renaming an admin navigation item from BTP to SAP Business AI Platform.", - "category": "Fix", - "mergedAt": "2026-10-02T18:59:18Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2603" - }, - { - "id": "tutorials-ims#2602", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2602, - "title": "fix(app-space): FK-first tutorial resolution in event/app-space progress (#1866)", - "summary": "Fixed empty tutorial cards on the App Space event pages so titles, links, and descriptions now show.", - "category": "Fix", - "mergedAt": "2026-10-02T18:54:48Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2602" - }, - { - "id": "tutorials-ims#2599", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2599, - "title": "docs: sync architecture docs to the split MTA (MCP now separate) (#2589)", - "summary": "Updated the architecture docs to reflect that the MCP service now runs as its own deployment.", - "category": "Docs", - "mergedAt": "2026-10-02T18:35:12Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2599" - }, - { - "id": "tutorials-ims#2601", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2601, - "title": "Colored alert callouts in tutorials", - "summary": "Tutorial authors can now opt into colored note, tip, warning, and caution callouts in blockquotes, with the familiar blue note staying the default.", - "category": "Feature", - "mergedAt": "2026-10-02T18:34:54Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2601" - }, - { - "id": "tutorials-ims#2600", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2600, - "title": "SAP BTP renamed to SAP Business AI Platform", - "summary": "Renamed SAP BTP to SAP Business AI Platform across the developer portal's user-facing text.", - "category": "Feature", - "mergedAt": "2026-10-02T18:29:01Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2600" - }, - { - "id": "tutorials-ims#2598", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2598, - "title": "Petoberfest moderation queue improvements", - "summary": "Petoberfest moderators get enlargeable photos, the uploader's email, a one-click pending filter, and submission notifications in the admin queue.", - "category": "Feature", - "mergedAt": "2026-10-02T17:29:33Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2598" - }, - { - "id": "tutorials-ims#2596", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2596, - "title": "fix(identity): run identity-pin on request tx to end SQLite CI deadlock (#2552)", - "summary": "Fixed a database contention bug in the identity layer that was causing test runs to hang.", - "category": "Fix", - "mergedAt": "2026-10-02T15:30:02Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2596" - }, - { - "id": "tutorials-ims#2594", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2594, - "title": "fix(173): load os-toggle.ts on object-page layout so OS picker hydrates", - "summary": "Fixed the operating-system picker on tutorials so Windows, macOS, and Linux content switches properly instead of showing all at once.", - "category": "Fix", - "mergedAt": "2026-10-02T15:11:53Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2594" - }, - { - "id": "tutorials-ims#2592", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2592, - "title": "docs(api): update MCP signed-in auth to IAS native-HTTP OAuth", - "summary": "Updated the API docs so the signed-in MCP tier reflects the current SAP Identity Authentication OAuth sign-in.", - "category": "Docs", - "mergedAt": "2026-10-02T14:37:19Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2592" - }, - { - "id": "tutorials-ims#2591", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2591, - "title": "Promote DEV→main: preserve /llms-full.txt across catalog-only rebuilds (#2584)", - "summary": "Promoted the fix that preserves the full llms.txt catalog across content rebuilds to production.", - "category": "Maintenance", - "mergedAt": "2026-10-02T14:14:12Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2591" - }, - { - "id": "tutorials-ims#2590", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2590, - "title": "Preserve the full llms.txt catalog across rebuilds", - "summary": "Fixed content rebuilds wiping the full llms.txt listing used by AI crawlers, so the complete tutorial catalog is preserved.", - "category": "Fix", - "mergedAt": "2026-10-02T12:59:25Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2590" - }, - { - "id": "tutorials-ims#2582", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2582, - "title": "Release: mcp-prod.mtaext → main (final MCP prereq for 1.33.0 PROD deploy)", - "summary": "Internal deployment configuration for the production MCP service.", - "category": "Maintenance", - "mergedAt": "2026-10-02T00:53:21Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2582" - }, - { - "id": "tutorials-ims#2581", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2581, - "title": "fix(deploy): add mcp-prod.mtaext — xsuaa-imsprod binding for prod MCP MTA", - "summary": "Internal deployment configuration fix for the production MCP service binding.", - "category": "Maintenance", - "mergedAt": "2026-10-02T00:47:15Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2581" - }, - { - "id": "tutorials-ims#2580", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2580, - "title": "Release: prod.mtaext srv-mcp-url fix → main (unblocks 1.33.0 PROD deploy)", - "summary": "Promoted a production deployment configuration fix that unblocks the 1.33.0 release.", - "category": "Maintenance", - "mergedAt": "2026-10-02T00:40:05Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2580" - }, - { - "id": "tutorials-ims#2579", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2579, - "title": "fix(deploy): prod.mtaext missing srv-mcp-url + MCP OAuth params (prod approuter boot crash)", - "summary": "Fixed a production configuration gap that was crash-looping the application router on deploy.", - "category": "Fix", - "mergedAt": "2026-10-02T00:35:26Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2579" - }, - { - "id": "tutorials-ims#2578", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2578, - "title": "Release 1.33.0 → main (production)", - "summary": "Release 1.33.0 to production, bundling identity, MCP sign-in, and quiz and content fixes.", - "category": "Maintenance", - "mergedAt": "2026-10-01T21:52:00Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2578" - }, - { - "id": "tutorials-ims#2577", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2577, - "title": "fix(docs): register api-consumption in VitePress sidebar (#2539)", - "summary": "Registered the API-consumption guide in the documentation sidebar.", - "category": "Docs", - "mergedAt": "2026-10-01T21:28:08Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2577" - }, - { - "id": "tutorials-ims#2576", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2576, - "title": "New API consumption guide for programmatic access", - "summary": "Adds a developer-facing guide mapping the portal's programmatic API surfaces (MCP, A2A, Admin OData, GraphQL), explaining how to authenticate each and being candid about which ones are headless-consumable today versus browser-only.", - "category": "Docs", - "mergedAt": "2026-10-01T21:18:22Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2576" - }, - { - "id": "tutorials-ims#2573", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2573, - "title": "fix(identity): undeploy stale UserIdentities.hdbtable for migration-table transition (#2552)", - "summary": "Internal database-migration fix so the user-identity table deploys correctly.", - "category": "Fix", - "mergedAt": "2026-10-01T18:58:10Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2573" - }, - { - "id": "tutorials-ims#2572", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2572, - "title": "fix(identity): journal UserIdentities so it deploys to HANA (#2552)", - "summary": "Internal database-migration fix so the user-identity table is created in the database.", - "category": "Fix", - "mergedAt": "2026-10-01T17:49:47Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2572" - }, - { - "id": "tutorials-ims#2571", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2571, - "title": "More reliable account matching across login providers", - "summary": "Reworks how your sign-in is matched to your account so that logins from SAP Universal ID and other identity providers reliably resolve to your real profile and progress, even when they don't carry an SAP employee ID.", - "category": "Feature", - "mergedAt": "2026-10-01T16:55:12Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2571" - }, - { - "id": "tutorials-ims#2570", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2570, - "title": "MCP developer tools now work over HTTP", - "summary": "Fixes the deployed MCP service so its developer tools actually respond to calls instead of failing with a missing-handler error.", - "category": "Fix", - "mergedAt": "2026-10-01T13:52:20Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2570" - }, - { - "id": "tutorials-ims#2568", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2568, - "title": "MCP identity resolution for SAP Universal ID logins", - "summary": "Lets developers connecting through the MCP tier with an SAP Universal ID login resolve to their real SAP account so personal data like tutorial progress comes back correctly.", - "category": "Feature", - "mergedAt": "2026-10-01T12:23:49Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2568" - }, - { - "id": "tutorials-ims#2566", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2566, - "title": "fix(mcp-auth): repoint IAS MCP wiring alzmza7li → atxgsg7zi (#2550)", - "summary": "Repointed the MCP sign-in configuration to the current SAP identity tenant so sign-in discovery works.", - "category": "Fix", - "mergedAt": "2026-10-01T07:34:54Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2566" - }, - { - "id": "tutorials-ims#2565", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2565, - "title": "MCP sign-in works with standard MCP clients", - "summary": "Fixes the MCP OAuth login so standards-compliant MCP clients like mcp-remote can complete sign-in without an issuer-mismatch error.", - "category": "Fix", - "mergedAt": "2026-09-30T21:37:50Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2565" - }, - { - "id": "tutorials-ims#2564", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2564, - "title": "fix(mcp-auth): advertise IAS issuer in OAuth discovery (RFC 9207) (#2550)", - "summary": "Fixes an issuer-validation failure that blocked MCP clients from completing login right after a successful sign-in.", - "category": "Fix", - "mergedAt": "2026-09-30T20:57:07Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2564" - }, - { - "id": "tutorials-ims#2563", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2563, - "title": "fix(deploy): replace bogus --parallel-resource-upload flag with MULTIAPPS_UPLOAD_CHUNKS_SEQUENTIALLY env var", - "summary": "Fixed a bad deploy flag that was breaking scripted deployments.", - "category": "Fix", - "mergedAt": "2026-09-30T20:56:57Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2563" - }, - { - "id": "tutorials-ims#2562", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2562, - "title": "Quiz answers now appear in random order", - "summary": "Randomizes the order of multiple-choice answers in tutorial quizzes on every page load, so sharing answers by position no longer works.", - "category": "Feature", - "mergedAt": "2026-09-30T19:34:47Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2562" - }, - { - "id": "tutorials-ims#2561", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2561, - "title": "fix(app-space): expand subtitle to include Agent Lab (#2560)", - "summary": "Updates the App Space hero subtitle to also mention Agent Lab so it reflects all the available experiences.", - "category": "Fix", - "mergedAt": "2026-09-30T19:03:05Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2561" - }, - { - "id": "tutorials-ims#2559", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2559, - "title": "fix(mcp-auth): repoint IAS public-PKCE OAuth to new tenant alzmza7li (#2550)", - "summary": "Repointed the MCP sign-in configuration to a new SAP identity tenant.", - "category": "Fix", - "mergedAt": "2026-09-30T18:51:06Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2559" - }, - { - "id": "tutorials-ims#2557", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2557, - "title": "Tutorial sections no longer over-capture content", - "summary": "Fixes a tutorial parsing bug where a Prerequisites or You-will-learn section could swallow the rest of the page when no later heading bounded it.", - "category": "Fix", - "mergedAt": "2026-09-30T17:52:49Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2557" - }, - { - "id": "tutorials-ims#2556", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2556, - "title": "Fix duplicated Prerequisites heading on tutorials", - "summary": "Removes the duplicated Prerequisites heading that appeared on many tutorials and automatically hides the Prerequisites and Steps sections when they are empty.", - "category": "Fix", - "mergedAt": "2026-09-30T17:23:23Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2556" - }, - { - "id": "tutorials-ims#2554", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2554, - "title": "fix(admin-ui): point IAS Admin Console link to new tenant alzmza7li (#2551)", - "summary": "Points the admin console's IAS link to the current identity tenant so it opens the right destination.", - "category": "Fix", - "mergedAt": "2026-09-30T16:08:46Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2554" - }, - { - "id": "tutorials-ims#2553", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2553, - "title": "perf(deploy): parallelize cf deploy resource upload", - "summary": "Sped up deployments by uploading resources in parallel.", - "category": "Performance", - "mergedAt": "2026-09-30T15:29:42Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2553" - }, - { - "id": "tutorials-ims#2549", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2549, - "title": "Reliable real-time updates across backend instances", - "summary": "Fixes real-time updates such as tutorial-completion events so they reliably reach every connected client even when the backend runs on multiple instances.", - "category": "Fix", - "mergedAt": "2026-09-30T10:55:48Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2549" - }, - { - "id": "tutorials-ims#2548", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2548, - "title": "Prevent broken asset links from missing downloads", - "summary": "Stops the build from advertising downloadable assets that failed to download, so links no longer 404.", - "category": "Fix", - "mergedAt": "2026-09-29T20:21:16Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2548" - }, - { - "id": "tutorials-ims#2546", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2546, - "title": "Faster Concepts list page", - "summary": "Trims the data embedded in the Concepts list page so it loads and parses roughly twice as fast.", - "category": "Performance", - "mergedAt": "2026-09-29T19:35:27Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2546" - }, - { - "id": "tutorials-ims#2545", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2545, - "title": "fix(mcp-auth): adopt tutorials-identity as existing-service (stable client_id)", - "summary": "Internal configuration fix to keep the MCP sign-in client identifier stable across deployments.", - "category": "Fix", - "mergedAt": "2026-09-29T19:29:14Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2545" - }, - { - "id": "tutorials-ims#2544", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2544, - "title": "Secretless MCP OAuth sign-in", - "summary": "Enables MCP sign-in through a secretless IAS public-PKCE client so tools like mcp-remote can authenticate without a client secret.", - "category": "Feature", - "mergedAt": "2026-09-29T19:03:26Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2544" - }, - { - "id": "tutorials-ims#2543", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2543, - "title": "Add IAS Admin Console link to BAIP folder (#2540)", - "summary": "Adds an IAS Admin Console shortcut to the Admin UI sidebar.", - "category": "Feature", - "mergedAt": "2026-09-29T18:28:53Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2543" - }, - { - "id": "tutorials-ims#2542", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2542, - "title": "Faster, clearer 3D Explore view", - "summary": "Tightens the Explore 3D graph's default filter to tutorials and missions so the view is faster to render and easier to read.", - "category": "Feature", - "mergedAt": "2026-09-29T18:24:11Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2542" - }, - { - "id": "tutorials-ims#2537", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2537, - "title": "fix(deploy): add cheerio to srv-mcp deps + widen bundle-externals guard", - "summary": "Fixed a startup crash in the MCP service caused by a missing dependency.", - "category": "Fix", - "mergedAt": "2026-09-29T06:18:14Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2537" - }, - { - "id": "tutorials-ims#2536", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2536, - "title": "fix(srv-mcp + ci): CF boot crash ERR_MODULE_NOT_FOUND + CI bundle-guard failures", - "summary": "Fixed a startup crash in the MCP service and the related test failures.", - "category": "Fix", - "mergedAt": "2026-09-29T05:23:03Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2536" - }, - { - "id": "tutorials-ims#2534", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2534, - "title": "fix(srv-mcp): shim bare @tutorials/core static import in server.js (CF boot crash)", - "summary": "Fixed a startup crash in the MCP service caused by an unresolved internal import.", - "category": "Fix", - "mergedAt": "2026-09-29T05:01:21Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2534" - }, - { - "id": "tutorials-ims#2531", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2531, - "title": "fix(deploy): declare @sap-ai-sdk externals in srv-qa + srv-mcp (boot crash)", - "summary": "Fixed a startup crash caused by undeclared AI SDK dependencies in two backend modules.", - "category": "Fix", - "mergedAt": "2026-09-28T23:57:07Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2531" - }, - { - "id": "tutorials-ims#2530", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2530, - "title": "fix(deploy): strip @tutorials/* from gen/srv-qa so it stages on CF (T16 blocker)", - "summary": "Fixed a deployment-staging failure in the QA backend module.", - "category": "Fix", - "mergedAt": "2026-09-28T22:34:46Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2530" - }, - { - "id": "tutorials-ims#2528", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2528, - "title": "fix(cjs-shims): _shared fallback so srv boots at CF (2nd MODULE_NOT_FOUND crash)", - "summary": "Fixed a backend startup crash caused by unresolved shared-module imports.", - "category": "Fix", - "mergedAt": "2026-09-28T21:13:25Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2528" - }, - { - "id": "tutorials-ims#2526", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2526, - "title": "fix(bundle): alias createRequire banner to prevent srv/srv-qa CF boot crash", - "summary": "Fixed a backend startup crash caused by a duplicate import in a shared code bundle.", - "category": "Fix", - "mergedAt": "2026-09-28T20:02:02Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2526" - }, - { - "id": "tutorials-ims#2525", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2525, - "title": "Secure sign-in for the MCP server", - "summary": "External developers can now authenticate to the portal's MCP server using secure browser-based PKCE sign-in, so tools like get_my_tutorials work with your own account.", - "category": "Feature", - "mergedAt": "2026-09-28T16:58:22Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2525" - }, - { - "id": "tutorials-ims#2523", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2523, - "title": "chore(deploy): scale prod srv 4→2 instances", - "summary": "Scaled production backend instances down to match actual usage, freeing capacity.", - "category": "Maintenance", - "mergedAt": "2026-09-28T11:25:44Z", - "week": "2026-W40", - "weekStart": "2026-09-28", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2523" - }, - { - "id": "tutorials-ims#2521", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2521, - "title": "MCP auth modularization — foundation (workspace + core + esbuild bundling)", - "summary": "Internal groundwork to modularize the MCP authentication code into shared packages.", - "category": "Maintenance", - "mergedAt": "2026-09-27T17:31:19Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2521" - }, - { - "id": "tutorials-ims#2520", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2520, - "title": "Optional 3D view in the knowledge graph explorer", - "summary": "Added an optional 3D force-directed view to the knowledge graph explorer, letting you visualize tutorial and concept relationships in interactive 3D on desktop.", - "category": "Feature", - "mergedAt": "2026-09-27T17:16:22Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2520" - }, - { - "id": "tutorials-ims#2519", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2519, - "title": "Multi-question tutorial steps now work correctly", - "summary": "Fixed multi-question tutorial steps so each question can be answered and graded independently instead of colliding onto a single answer.", - "category": "Fix", - "mergedAt": "2026-09-27T13:36:56Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2519" - }, - { - "id": "tutorials-ims#2518", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2518, - "title": "Glossary terms no longer break quiz question layout", - "summary": "Fixed a layout glitch where glossary terms appearing inside tutorial quiz questions broke the question's formatting.", - "category": "Fix", - "mergedAt": "2026-09-27T13:30:30Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2518" - }, - { - "id": "tutorials-ims#2513", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2513, - "title": "Release 1.32.0 — Devtoberfest leaderboard improvements (DEV→main promotion)", - "summary": "Release 1.32.0 to production, including the live Devtoberfest leaderboard improvements.", - "category": "Maintenance", - "mergedAt": "2026-09-26T07:32:13Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2513" - }, - { - "id": "tutorials-ims#2512", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2512, - "title": "Leaderboard correctly highlights only your row", - "summary": "Fixed the Devtoberfest leaderboard so only your own row is marked (you) when scores are tied.", - "category": "Fix", - "mergedAt": "2026-09-26T06:46:22Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2512" - }, - { - "id": "tutorials-ims#2511", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2511, - "title": "Devtoberfest leaderboard: shared ranks, paging, and your own standing", - "summary": "The live Devtoberfest leaderboard now shows tied scores at the same rank (and no longer reshuffles them on refresh), lets you page through the whole field, shows the total number of participants, and highlights your own row — with a pinned \"you\" row and your rank out of the field even when you're below the visible page.", - "category": "Feature", - "mergedAt": "2026-09-26T05:44:08Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2511" - }, - { - "id": "tutorials-ims#2508", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2508, - "title": "Release 1.31.5 — Job Board admin fix (DEV→main promotion)", - "summary": "Release 1.31.5 to production, restoring the admin Job Board screen.", - "category": "Maintenance", - "mergedAt": "2026-09-25T19:21:34Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2508" - }, - { - "id": "tutorials-ims#2507", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2507, - "title": "chore(release): 1.31.5", - "summary": "Version bump for the 1.31.5 release.", - "category": "Maintenance", - "mergedAt": "2026-09-25T19:08:15Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2507" - }, - { - "id": "tutorials-ims#2502", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2502, - "title": "Job Board admin screen opens again", - "summary": "Fixed a regression that stopped the admin Job Board screen from loading, so scheduled-job status and controls are reachable again.", - "category": "Fix", - "mergedAt": "2026-09-24T16:54:42Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2502" - }, - { - "id": "tutorials-ims#2501", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2501, - "title": "Release 1.31.4 — durable USE_GITHUB_APP runtime flag (DEV→main promotion)", - "summary": "Routine release promotion of the previous version to production.", - "category": "Maintenance", - "mergedAt": "2026-09-24T13:57:03Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2501" - }, - { - "id": "tutorials-ims#2500", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2500, - "title": "chore(release): 1.31.4", - "summary": "Routine version bump for the release.", - "category": "Maintenance", - "mergedAt": "2026-09-24T13:51:46Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2500" - }, - { - "id": "tutorials-ims#2499", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2499, - "title": "Topic pages load reliably", - "summary": "Fixed topic landing pages so individual topic pages like /topics/java/ reliably load after a content rebuild.", - "category": "Fix", - "mergedAt": "2026-09-24T13:00:21Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2499" - }, - { - "id": "tutorials-ims#2498", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2498, - "title": "Sort the admin job board by name or date", - "summary": "Added a Name/Date sort toggle to the admin job board so operators can order scheduled jobs alphabetically or by next run time.", - "category": "Feature", - "mergedAt": "2026-09-24T12:38:23Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2498" - }, - { - "id": "tutorials-ims#2497", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2497, - "title": "feat(github-app): durable USE_GITHUB_APP runtime flag (#1154)", - "summary": "Made the GitHub App the durable credential path for background content jobs so it survives redeployments.", - "category": "Maintenance", - "mergedAt": "2026-09-24T12:22:06Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2497" - }, - { - "id": "tutorials-ims#2496", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2496, - "title": "Knowledge graph nightly jobs no longer crash on duplicate tags", - "summary": "Fixed a nightly knowledge-graph processing job that crashed on duplicate tag entries, keeping graph features current.", - "category": "Fix", - "mergedAt": "2026-09-24T12:05:10Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2496" - }, - { - "id": "tutorials-ims#2492", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2492, - "title": "Release 1.31.3 — Semaphore taxonomy auto-sync (DEV→main promotion)", - "summary": "Release 1.31.3 to production, including the Semaphore taxonomy auto-sync.", - "category": "Maintenance", - "mergedAt": "2026-09-23T17:56:38Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2492" - }, - { - "id": "tutorials-ims#2491", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2491, - "title": "chore(release): 1.31.3", - "summary": "Version bump for the 1.31.3 release.", - "category": "Maintenance", - "mergedAt": "2026-09-23T17:52:30Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2491" - }, - { - "id": "tutorials-ims#2490", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2490, - "title": "fix(semaphore-sync): assign legacyId on Tier-2 tag inserts (#2479)", - "summary": "Fixed newly synced taxonomy tags showing a blank ID in the admin Tags list.", - "category": "Fix", - "mergedAt": "2026-09-23T16:59:14Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2490" - }, - { - "id": "tutorials-ims#2487", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2487, - "title": "Challenge-widget cost-sizing page added to docs sidebar", - "summary": "Fixed the developer docs site build by registering a reference page in the sidebar navigation.", - "category": "Docs", - "mergedAt": "2026-09-23T14:37:03Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2487" - }, - { - "id": "tutorials-ims#2486", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2486, - "title": "fix(admin): route semaphoreConfig nav-key (#2477)", - "summary": "Fixed a non-working \"Semaphore Config\" entry in the admin settings sidebar so clicking it now opens the right panel instead of doing nothing.", - "category": "Fix", - "mergedAt": "2026-09-23T13:55:42Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2486" - }, - { - "id": "tutorials-ims#2485", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2485, - "title": "New authors guide: branch protection and pull requests", - "summary": "Added an authors guide explaining the new pull-request workflow and branch-protection rules, so tutorial contributors know exactly how to propose and get their changes reviewed.", - "category": "Docs", - "mergedAt": "2026-09-23T13:54:48Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2485" - }, - { - "id": "tutorials-ims#2484", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2484, - "title": "Admin panel for taxonomy tag-sync settings", - "summary": "Added an admin panel to configure the taxonomy tag-sync job directly in the UI, so operators no longer have to hand-edit database rows to tune it.", - "category": "Feature", - "mergedAt": "2026-09-23T13:33:46Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2484" - }, - { - "id": "tutorials-ims#2483", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2483, - "title": "fix(scheduler): record FAILED when a job returns ok:false (#2478)", - "summary": "Fixed scheduled jobs so that a job which fails quietly is now correctly recorded as FAILED and raises an alert, instead of misleadingly showing as successful in the run history.", - "category": "Fix", - "mergedAt": "2026-09-23T13:03:55Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2483" - }, - { - "id": "tutorials-ims#2480", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2480, - "title": "Smarter, safer taxonomy tag synchronization", - "summary": "Reworked the automatic taxonomy tag sync so it safely adopts existing tags and only adds genuinely new ones under an explicit allowlist, keeping the tag corpus accurate without flooding it.", - "category": "Feature", - "mergedAt": "2026-09-22T21:23:04Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2480" - }, - { - "id": "tutorials-ims#2475", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2475, - "title": "Release 1.31.2 → PROD (DEV→main)", - "summary": "Release 1.31.2 to production.", - "category": "Maintenance", - "mergedAt": "2026-09-22T18:19:52Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2475" - }, - { - "id": "tutorials-ims#2474", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2474, - "title": "chore(release): 1.31.2", - "summary": "Version bump for the 1.31.2 release.", - "category": "Maintenance", - "mergedAt": "2026-09-22T18:18:45Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2474" - }, - { - "id": "tutorials-ims#2472", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2472, - "title": "chore(release): 1.31.1", - "summary": "Version bump for the 1.31.1 release.", - "category": "Maintenance", - "mergedAt": "2026-09-22T18:03:42Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2472" - }, - { - "id": "tutorials-ims#2473", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2473, - "title": "fix(approuter): allow anonymous getAppSpaceProgress so ?eventId= works logged-out", - "summary": "Fixed App-Space links so that opening one with a specific event ID now shows that event even when you are not logged in, instead of defaulting to the wrong event.", - "category": "Fix", - "mergedAt": "2026-09-22T18:03:26Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2473" - }, - { - "id": "tutorials-ims#2471", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2471, - "title": "fix(progress): stamp completionDate for single-step tutorial completions", - "summary": "Fixed point scoring for single-step tutorials in Devtoberfest so completing them now counts correctly, resolving the mismatched totals between the arcade and schedule pages.", - "category": "Fix", - "mergedAt": "2026-09-22T16:48:03Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2471" - }, - { - "id": "tutorials-ims#2470", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2470, - "title": "feat(semaphore): PDC two-step auth + key self-rotation (#2184)", - "summary": "Added automatic two-step authentication and key self-rotation for the Semaphore taxonomy sync.", - "category": "Feature", - "mergedAt": "2026-09-22T15:46:39Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2470" - }, - { - "id": "tutorials-ims#2469", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2469, - "title": "test(schedule): fix flaky TechEd/Devtoberfest schedule tests (shared URL leak from #2461)", - "summary": "Fixed flaky TechEd and Devtoberfest schedule tests caused by shared state leaking between runs.", - "category": "Maintenance", - "mergedAt": "2026-09-22T15:46:31Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2469" - }, - { - "id": "tutorials-ims#2468", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2468, - "title": "Block broken AI concept definitions from appearing", - "summary": "Added a guardrail that blocks garbled AI-generated concept definitions (like refusal messages or the literal word \"undefined\") from appearing on concept pages, so you now see real definitions or a clean fallback.", - "category": "Fix", - "mergedAt": "2026-09-22T15:24:28Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2468" - }, - { - "id": "tutorials-ims#2467", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2467, - "title": "Shareable filter links for Devtoberfest and TechEd schedules", - "summary": "Added shareable, bookmarkable filter links to the Devtoberfest and TechEd schedules, and made activity links open in a new tab.", - "category": "Feature", - "mergedAt": "2026-09-22T13:58:12Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2467" - }, - { - "id": "tutorials-ims#2466", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2466, - "title": "perf(publish): bulk sidecar endpoints + hash-skip (#2463, #2464)", - "summary": "Sped up content publishing by only re-sending contributor and validation-rule data that actually changed, in batched requests, making tutorial updates land much faster.", - "category": "Performance", - "mergedAt": "2026-09-22T13:32:49Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2466" - }, - { - "id": "tutorials-ims#2465", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2465, - "title": "perf(publish): filter + parallelize sidecar publishes (#2462)", - "summary": "Made single-tutorial content publishes dramatically faster by skipping unrelated data and running the remaining uploads in parallel, cutting a hotfix publish from thousands of requests to a couple.", - "category": "Performance", - "mergedAt": "2026-09-22T12:41:22Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2465" - }, - { - "id": "tutorials-ims#2460", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2460, - "title": "Release 1.31.0 → main (production): ContentFiles.sourceRepo migration hotfix", - "summary": "Fixed a database schema gap that was causing production tutorial content rebuilds to fail.", - "category": "Fix", - "mergedAt": "2026-09-22T08:02:12Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2460" - }, - { - "id": "tutorials-ims#2459", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2459, - "title": "fix(content): add missing migration=4 for ContentFiles.sourceRepo (unbreaks PROD rebuilds)", - "summary": "Restored broken tutorial content rebuilds by adding a missing database schema update, so new and updated tutorials publish successfully again.", - "category": "Fix", - "mergedAt": "2026-09-22T07:09:55Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2459" - }, - { - "id": "tutorials-ims#2458", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2458, - "title": "fix(reset): reject reset of a not-yet-completed tutorial (#2446)", - "summary": "Fixed progress reset so a tutorial that hasn't been fully completed can no longer be reset via the API, preventing inconsistent completion state and points.", - "category": "Fix", - "mergedAt": "2026-09-22T06:59:52Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2458" - }, - { - "id": "tutorials-ims#2457", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2457, - "title": "fix(devtoberfest): Kasimir bonus points + activity count in schedule/sessions banner (#2455)", - "summary": "Fixed the Devtoberfest schedule and sessions banner to include Kasimir \"Hit the Cat\" bonus points and show the correct count of completed activities, matching the arcade total.", - "category": "Fix", - "mergedAt": "2026-09-22T06:47:19Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2457" - }, - { - "id": "tutorials-ims#2454", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2454, - "title": "release: DEV → main — Devtoberfest SUPERSEDED points fix #2446 (+ #2451 publish guard)", - "summary": "Fixed the Devtoberfest schedule awarding points for tutorial steps you had reset.", - "category": "Fix", - "mergedAt": "2026-09-22T01:03:38Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2454" - }, - { - "id": "tutorials-ims#2452", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2452, - "title": "fix(devtoberfest): don't award points for SUPERSEDED (reset) completions (#2446)", - "summary": "Fixed Devtoberfest scoring so points are no longer awarded for tutorials that were started and then reset without being completed.", - "category": "Fix", - "mergedAt": "2026-09-22T00:48:23Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2452" - }, - { - "id": "tutorials-ims#2451", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2451, - "title": "Prevent QA-only tutorials from publishing to the public site", - "summary": "Added a safeguard that prevents tutorials sourced from private contribution/QA repos from accidentally going live in the public catalog.", - "category": "Fix", - "mergedAt": "2026-09-22T00:34:36Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2451" - }, - { - "id": "tutorials-ims#2450", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2450, - "title": "Release 1.30.0 → main (production)", - "summary": "Fixed Devtoberfest gameboard participation matching by adding the email key the gameboard needs.", - "category": "Fix", - "mergedAt": "2026-09-21T20:59:40Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2450" - }, - { - "id": "tutorials-ims#2449", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2449, - "title": "Devtoberfest gameboard recognizes joined players (email match)", - "summary": "The Devtoberfest arcade and gameboard now reliably recognize players who've joined, showing their score and level instead of prompting them to join again.", - "category": "Fix", - "mergedAt": "2026-09-21T20:27:44Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2449" - }, - { - "id": "tutorials-ims#2448", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2448, - "title": "Release 1.29.0 → main (production)", - "summary": "Production release 1.29.0.", - "category": "Maintenance", - "mergedAt": "2026-09-21T16:59:54Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2448" - }, - { - "id": "tutorials-ims#2447", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2447, - "title": "Devtoberfest gameboard recognizes joined players", - "summary": "The Devtoberfest arcade and gameboard now correctly recognize players who've joined the event, showing their score, level, and avatar instead of prompting them to join again.", - "category": "Fix", - "mergedAt": "2026-09-21T16:19:48Z", - "week": "2026-W39", - "weekStart": "2026-09-21", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2447" - }, - { - "id": "tutorials-ims#2444", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2444, - "title": "Interactive challenge grading", - "summary": "Tutorial challenge widgets now grade both free-text and multiple-choice answers inline, giving you immediate feedback as you work through a challenge.", - "category": "Feature", - "mergedAt": "2026-09-20T21:22:04Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2444" - }, - { - "id": "tutorials-ims#2445", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2445, - "title": "Sharper tutorial step videos", - "summary": "Video thumbnails inside collapsed tutorial steps now load at full resolution, so previews no longer look blurry before you expand a step.", - "category": "Fix", - "mergedAt": "2026-09-20T21:05:55Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2445" - }, - { - "id": "tutorials-ims#2442", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2442, - "title": "Knowledge-graph learning-path controls", - "summary": "Administrators can now toggle knowledge-graph learning paths and concept definitions directly from the admin console.", - "category": "Feature", - "mergedAt": "2026-09-20T18:14:52Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2442" - }, - { - "id": "tutorials-ims#2438", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2438, - "title": "Release 1.28.0 → main (production)", - "summary": "Routine production release promotion.", - "category": "Maintenance", - "mergedAt": "2026-09-20T13:15:58Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2438" - }, - { - "id": "tutorials-ims#2437", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2437, - "title": "chore(release): 1.28.0 — What's New digest + version bump", - "summary": "Version bump and What's New digest for the 1.28.0 release.", - "category": "Maintenance", - "mergedAt": "2026-09-20T13:04:11Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2437" - }, - { - "id": "tutorials-ims#2436", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2436, - "title": "Challenge widget renders cleanly with a styled panel", - "summary": "The tutorial challenge panel no longer shows a broken, escaped \"Done\" button, and its multiple-choice options and answer box now render as a properly styled card.", - "category": "Fix", - "mergedAt": "2026-09-19T21:41:45Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2436" - }, - { - "id": "tutorials-ims#2435", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2435, - "title": "Favorite TechEd and Devtoberfest sessions", - "summary": "Signed-in users can now star their favorite TechEd and Devtoberfest sessions and filter any session view down to just their favorites.", - "category": "Feature", - "mergedAt": "2026-09-19T18:53:19Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2435" - }, - { - "id": "tutorials-ims#2434", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2434, - "title": "Concept-definition feature flag registered", - "summary": "Registered the new concept-definitions feature flag and scheduled job so it appears in the admin Feature Flag Viewer and no longer breaks the build checks.", - "category": "Fix", - "mergedAt": "2026-09-19T17:23:50Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2434" - }, - { - "id": "tutorials-ims#2433", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2433, - "title": "Content rebuild can bake challenge panels", - "summary": "The content rebuild workflow can now optionally generate and bake tutorial challenge panels when the challenge widget is turned on.", - "category": "Maintenance", - "mergedAt": "2026-09-19T17:04:23Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2433" - }, - { - "id": "tutorials-ims#2432", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2432, - "title": "ABAP concept pages link to the Keyword Documentation", - "summary": "ABAP concept pages now link out to the authoritative ABAP Keyword Documentation for topics like ABAP SQL, the Data Dictionary, and internal tables.", - "category": "Feature", - "mergedAt": "2026-09-19T15:48:44Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2432" - }, - { - "id": "tutorials-ims#2431", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2431, - "title": "AI-drafted concept definitions (admin-reviewed)", - "summary": "Concept pages can now be filled with AI-drafted definitions grounded only in already-linked documentation and held for admin approval, so no unreviewed text ever goes live.", - "category": "Feature", - "mergedAt": "2026-09-19T15:28:52Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2431" - }, - { - "id": "tutorials-ims#2430", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2430, - "title": "Concept pages get a real explanation above the links", - "summary": "Every concept page can now show a proper written definition above its link tiles, rendered from markdown and gated behind admin review before it publishes.", - "category": "Feature", - "mergedAt": "2026-09-19T15:28:43Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2430" - }, - { - "id": "tutorials-ims#2428", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2428, - "title": "Interactive challenge widget wired into tutorials", - "summary": "The experimental interactive challenge widget is now wired end-to-end so it can render on a real tutorial page behind a feature flag for testing.", - "category": "Feature", - "mergedAt": "2026-09-19T15:28:33Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2428" - }, - { - "id": "tutorials-ims#2427", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2427, - "title": "\"Open SQL\" renamed to \"ABAP SQL\"", - "summary": "Corrected the outdated \"Open SQL\" wording to \"ABAP SQL\" across concept pages, while keeping the old term searchable so existing links still find it.", - "category": "Fix", - "mergedAt": "2026-09-19T15:28:21Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2427" - }, - { - "id": "tutorials-ims#2425", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2425, - "title": "Related Devtoberfest sessions show in the TechEd detail panel", - "summary": "Opening a TechEd session's detail panel now shows its related Devtoberfest sessions, not just related TechEd ones.", - "category": "Fix", - "mergedAt": "2026-09-19T15:28:13Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2425" - }, - { - "id": "tutorials-ims#2424", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2424, - "title": "Release 1.27.2", - "summary": "Promoted the Devtoberfest/TechEd cross-link render fix to production as release 1.27.2.", - "category": "Maintenance", - "mergedAt": "2026-09-19T05:50:34Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2424" - }, - { - "id": "tutorials-ims#2423", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2423, - "title": "Devtoberfest and TechEd cross-links render both ways", - "summary": "Related-session links between Devtoberfest and TechEd now show in both directions instead of appearing empty.", - "category": "Fix", - "mergedAt": "2026-09-18T22:52:03Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2423" - }, - { - "id": "tutorials-ims#2422", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2422, - "title": "Release 1.27.1", - "summary": "Promoted the TechEd homepage and cross-link session fixes to production as release 1.27.1.", - "category": "Maintenance", - "mergedAt": "2026-09-18T20:57:58Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2422" - }, - { - "id": "tutorials-ims#2420", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2420, - "title": "TechEd ↔ Devtoberfest session cross-links populated", - "summary": "TechEd and Devtoberfest sessions now correctly find their related counterparts by matching on shared topics, filling in cross-links that previously came up empty.", - "category": "Fix", - "mergedAt": "2026-09-18T19:58:22Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2420" - }, - { - "id": "tutorials-ims#2418", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2418, - "title": "TechEd sessions shown as virtual on the homepage", - "summary": "Individual TechEd 2026 sessions now appear as virtual (watchable online) on the homepage events band instead of being mislabeled as in-person regional events.", - "category": "Fix", - "mergedAt": "2026-09-18T19:55:03Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2418" - }, - { - "id": "tutorials-ims#2415", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2415, - "title": "Production release 1.27.0", - "summary": "Promoted the TechEd session browser and accompanying fixes to production as release 1.27.0.", - "category": "Maintenance", - "mergedAt": "2026-09-18T14:53:41Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2415" - }, - { - "id": "tutorials-ims#2414", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2414, - "title": "Release 1.27.0 prep", - "summary": "Version bump and What's New digest ahead of the 1.27.0 production release.", - "category": "Maintenance", - "mergedAt": "2026-09-18T14:45:42Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2414" - }, - { - "id": "tutorials-ims#2413", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2413, - "title": "AI-authoring meta-tutorials relisted", - "summary": "Author documentation again lists the restored AI-assisted authoring tutorials (AutoAuthor, CodeCheck, Validate).", - "category": "Docs", - "mergedAt": "2026-09-18T14:43:37Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2413" - }, - { - "id": "tutorials-ims#2412", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2412, - "title": "fix(advocates): rename adv-* CSS namespace so ad blockers stop hiding the header (#2405)", - "summary": "The Developer Advocates page header, filters, and search box no longer disappear for visitors who browse with an ad blocker.", - "category": "Fix", - "mergedAt": "2026-09-18T13:28:20Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2412" - }, - { - "id": "tutorials-ims#2410", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2410, - "title": "fix(devtoberfest): Sign in from Devtoberfest pages returns to current page (#2409)", - "summary": "Signing in from a Devtoberfest schedule, sessions, or calendar page now returns you to the page you were on instead of dumping you back at the homepage.", - "category": "Fix", - "mergedAt": "2026-09-18T12:54:04Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2410" - }, - { - "id": "tutorials-ims#2408", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2408, - "title": "fix(teched): link speakers to their developer-advocate page (#2392)", - "summary": "TechEd speaker names now link to a speaker's Developer Advocate page even when they haven't authored tutorials, so you can more easily explore who is presenting.", - "category": "Fix", - "mergedAt": "2026-09-18T05:35:21Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2408" - }, - { - "id": "tutorials-ims#2407", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2407, - "title": "fix(teched): allow static.rainfocus.com in CSP img-src for speaker photos (#2392)", - "summary": "TechEd speaker photos now load correctly in the session browser instead of appearing blank.", - "category": "Fix", - "mergedAt": "2026-09-18T05:35:10Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2407" - }, - { - "id": "tutorials-ims#2406", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2406, - "title": "fix(teched): correct approuter target for /teched/schedule + /teched/calendar (#2392)", - "summary": "The TechEd schedule and calendar pages now load correctly instead of returning a not-found error.", - "category": "Fix", - "mergedAt": "2026-09-18T04:28:55Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2406" - }, - { - "id": "tutorials-ims#2404", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2404, - "title": "fix(teched): surface all 19 all-day activities + speaker photos in schedule/calendar (#2392)", - "summary": "The TechEd schedule and calendar now show all 19 all-day activities (like the Developer Garage) and display speaker photos in the session detail panels.", - "category": "Fix", - "mergedAt": "2026-09-18T00:58:58Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2404" - }, - { - "id": "tutorials-ims#2403", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2403, - "title": "fix(teched): dedup cross-venue speakers + serve schedule/calendar from HANA", - "summary": "TechEd speakers who appear at both the Berlin and Virtual events are no longer listed twice, and the schedule and calendar views now show sessions reliably.", - "category": "Fix", - "mergedAt": "2026-09-17T21:13:58Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2403" - }, - { - "id": "tutorials-ims#2402", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2402, - "title": "fix(teched): make /build/teched feed query HANA-compatible", - "summary": "The TechEd session grid, schedule, and calendar now load real session data reliably instead of falling back to an empty view.", - "category": "Fix", - "mergedAt": "2026-09-17T19:34:18Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2402" - }, - { - "id": "tutorials-ims#2399", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2399, - "title": "feat(teched): Community Clubhouse session filter (#2392 item 5)", - "summary": "You can now filter the TechEd session browser to show only Community Clubhouse sessions, with the filter preserved in shareable links.", - "category": "Feature", - "mergedAt": "2026-09-17T17:56:39Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2399" - }, - { - "id": "tutorials-ims#2400", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2400, - "title": "feat(teched): list all-day activities like Developer Garage (issue #2392 item 6)", - "summary": "The TechEd session browser now lists all-day activities such as the Developer Garage in their own clearly-badged section above the timed sessions.", - "category": "Feature", - "mergedAt": "2026-09-17T17:46:22Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2400" - }, - { - "id": "tutorials-ims#2397", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2397, - "title": "feat(teched): speaker dropdown sorted by last name, shown \"Last, First\" (#2392 item 4)", - "summary": "The TechEd speaker filter is now sorted by last name and shows names as \"Last, First\" so you can find a presenter more quickly.", - "category": "Feature", - "mergedAt": "2026-09-17T17:46:01Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2397" - }, - { - "id": "tutorials-ims#2398", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2398, - "title": "fix(teched): construct sap.com session URL from sourceId+venue (items 2+8, #2392)", - "summary": "Every TechEd session now has a working link to its official session page, which also appears in the add-to-calendar details.", - "category": "Fix", - "mergedAt": "2026-09-17T17:31:39Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2398" - }, - { - "id": "tutorials-ims#2396", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2396, - "title": "feat(teched): speaker author-links + bio tooltip in detail pane (#2392 items 3, 9, 10)", - "summary": "TechEd session detail panels now link speaker names to their author pages and show a short bio when you hover over a name.", - "category": "Feature", - "mergedAt": "2026-09-17T17:31:20Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2396" - }, - { - "id": "tutorials-ims#2395", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2395, - "title": "feat(teched): consolidate track color legend into filter chips (item 7/10)", - "summary": "The TechEd session browser now shows each track's color directly on its filter chip, removing the separate legend for a cleaner layout.", - "category": "Feature", - "mergedAt": "2026-09-17T17:31:07Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2395" - }, - { - "id": "tutorials-ims#2394", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2394, - "title": "fix(teched): calendar subnav consistency — Unit A #2392", - "summary": "The Sessions, Schedule, and Calendar links now stay visible and consistent as you move between the different TechEd views.", - "category": "Fix", - "mergedAt": "2026-09-17T17:30:03Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2394" - }, - { - "id": "tutorials-ims#2391", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2391, - "title": "fix(qa-rebuild): owner-qualify source repo + guard author login (#2384 follow-up)", - "summary": "When a tutorial from a contributor repo has a content problem, the author is now correctly notified with a helpful issue instead of the fix silently failing.", - "category": "Fix", - "mergedAt": "2026-09-17T13:12:21Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2391" - }, - { - "id": "tutorials-ims#2388", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2388, - "title": "fix(qa-rebuild): skip missing/misnamed source tutorials instead of failing the job (#2384)", - "summary": "A single tutorial with a missing or misnamed source file no longer blocks the whole content rebuild; the healthy tutorials still publish and the author is notified about the broken one.", - "category": "Fix", - "mergedAt": "2026-09-17T12:36:35Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2388" - }, - { - "id": "tutorials-ims#2380", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2380, - "title": "feat(teched): Add-to-calendar (.ics + Google/Outlook) for TechEd sessions (#2312)", - "summary": "You can now add a TechEd session to your calendar with a downloadable file or a one-click Google or Outlook link.", - "category": "Feature", - "mergedAt": "2026-09-16T22:44:30Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2380" - }, - { - "id": "tutorials-ims#2379", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2379, - "title": "fix(ci): run fetch-teched before Hugo build in rebuild-content (#2312)", - "summary": "The TechEd page now reliably shows real session data with linked speaker names instead of failing to load.", - "category": "Fix", - "mergedAt": "2026-09-16T21:24:09Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2379" - }, - { - "id": "tutorials-ims#2378", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2378, - "title": "fix(teched): guard loadFeed against Hugo jsonify-of-nil \"null\" blob (#2312)", - "summary": "The TechEd session pages no longer show a load error when session data is briefly unavailable, quietly fetching it live instead.", - "category": "Fix", - "mergedAt": "2026-09-16T21:23:58Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2378" - }, - { - "id": "tutorials-ims#2377", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2377, - "title": "fix(db): add migration=5 for Events location/eventUrl/attendanceMode (#2370)", - "summary": "Fixes a deployment problem so that new location, event URL, and attendance-mode fields for events work correctly.", - "category": "Fix", - "mergedAt": "2026-09-16T19:19:06Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2377" - }, - { - "id": "tutorials-ims#2376", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2376, - "title": "docs: register generative-ui-research page in sidebar (fixes Deploy Docs CI)", - "summary": "Registers a new reference page in the documentation site's navigation so it builds and appears correctly.", - "category": "Docs", - "mergedAt": "2026-09-16T18:31:30Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2376" - }, - { - "id": "tutorials-ims#2373", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2373, - "title": "feat(events): location, event URL & attendance mode for Upcoming Events tile (#2370)", - "summary": "Events can now carry a location, an event URL, and a virtual/in-person indicator, so Upcoming Events tiles on the homepage link straight to the event's own page.", - "category": "Feature", - "mergedAt": "2026-09-16T18:19:50Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2373" - }, - { - "id": "tutorials-ims#2372", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2372, - "title": "feat(ai-quiz): quizzes from a YouTube video transcript (#2345)", - "summary": "Tutorial authors can now generate a quiz from a YouTube video's transcript, letting learners be tested on video content and graded with that context.", - "category": "Feature", - "mergedAt": "2026-09-16T18:02:13Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2372" - }, - { - "id": "tutorials-ims#2371", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2371, - "title": "Explore generative-UI approaches for interactive tutorial widgets", - "summary": "Adds a research spike and small proof-of-concept exploring schema-driven generative UI for building richer interactive tutorial widgets in the future.", - "category": "Feature", - "mergedAt": "2026-09-16T17:50:30Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2371" - }, - { - "id": "tutorials-ims#2369", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2369, - "title": "feat(teched,dtf): link speakers to author pages (#2355 unit 8)", - "summary": "TechEd and Devtoberfest speaker names now link to the speaker's author page so you can discover their tutorials.", - "category": "Feature", - "mergedAt": "2026-09-16T17:02:04Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2369" - }, - { - "id": "tutorials-ims#2367", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2367, - "title": "feat(teched): clickable cards open detail side panel (#2355 unit 2)", - "summary": "TechEd session cards are now clickable and open a detail side panel with full session information, and each session can be deep-linked.", - "category": "Feature", - "mergedAt": "2026-09-16T16:52:09Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2367" - }, - { - "id": "tutorials-ims#2366", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2366, - "title": "feat(teched): render related Devtoberfest sessions on TechEd cards (#2355 Unit 4)", - "summary": "TechEd session cards can now show related Devtoberfest sessions, helping you discover connected content across both events.", - "category": "Feature", - "mergedAt": "2026-09-16T16:46:38Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2366" - }, - { - "id": "tutorials-ims#2365", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2365, - "title": "feat(teched): TechEd schedule table view — island + Hugo page (#2355 Unit 6)", - "summary": "Adds a sortable, filterable table view of all TechEd sessions so you can scan the whole schedule by venue, track, time, and room.", - "category": "Feature", - "mergedAt": "2026-09-16T16:41:41Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2365" - }, - { - "id": "tutorials-ims#2364", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2364, - "title": "feat(teched): color-code track badges + legend (#2355 Unit 3)", - "summary": "TechEd session cards now have color-coded track badges with a matching legend so you can tell tracks apart at a glance.", - "category": "Feature", - "mergedAt": "2026-09-16T16:41:30Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2364" - }, - { - "id": "tutorials-ims#2361", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2361, - "title": "feat(teched): add calendar view — Week+Day only (#2355 unit 7)", - "summary": "Adds a Week and Day calendar view for TechEd sessions, with track, venue, and text filters and clickable session details.", - "category": "Feature", - "mergedAt": "2026-09-16T16:24:07Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2361" - }, - { - "id": "tutorials-ims#2360", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2360, - "title": "feat(devtoberfest): render related TechEd sessions in Devtoberfest detail panel (#2355 Unit 5)", - "summary": "Devtoberfest session detail panels can now show related TechEd sessions, linking connected content across both events.", - "category": "Feature", - "mergedAt": "2026-09-16T16:23:54Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2360" - }, - { - "id": "tutorials-ims#2359", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2359, - "title": "feat(teched): collapse Berlin/Virtual sections into one unified grid (#2355 unit 1)", - "summary": "The TechEd session page now shows one unified session grid with a venue toggle instead of separate Berlin and Virtual sections, reducing clutter.", - "category": "Feature", - "mergedAt": "2026-09-16T16:23:38Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2359" - }, - { - "id": "tutorials-ims#2368", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2368, - "title": "feat: TechEd + Devtoberfest session cards on author & advocate pages (#2354)", - "summary": "Author and Developer Advocate pages now show cards for the TechEd and Devtoberfest sessions where that person is speaking, with one consistent card design.", - "category": "Feature", - "mergedAt": "2026-09-16T16:14:15Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2368" - }, - { - "id": "tutorials-ims#2363", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2363, - "title": "feat(devtoberfest): breadcrumb back to main page on sub-pages", - "summary": "Devtoberfest sub-pages now show a breadcrumb so you can navigate back to the main Devtoberfest page easily.", - "category": "Feature", - "mergedAt": "2026-09-16T15:59:51Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2363" - }, - { - "id": "tutorials-ims#2357", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2357, - "title": "fix(feedback-email): working dashboard link + per-item tutorial/admin links (#2356)", - "summary": "The daily tutorial-feedback digest email now has a working dashboard link plus per-item links straight to each tutorial and its editor.", - "category": "Fix", - "mergedAt": "2026-09-16T14:11:11Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2357" - }, - { - "id": "tutorials-ims#2353", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2353, - "title": "chore: remove stray empty file", - "summary": "Removes a stray empty file that was accidentally committed to the project root.", - "category": "Maintenance", - "mergedAt": "2026-09-16T12:49:55Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2353" - }, - { - "id": "tutorials-ims#2352", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2352, - "title": "fix(quiz): relax AI free-text grader + let partial unlock progression (#2348)", - "summary": "The AI free-text quiz grader is now more forgiving, accepting answers that capture the main idea so you can continue instead of being blocked over minor omissions.", - "category": "Fix", - "mergedAt": "2026-09-16T12:11:33Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2352" - }, - { - "id": "tutorials-ims#2351", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2351, - "title": "feat(content): unpublish tutorials deleted upstream (#2349)", - "summary": "Deleting a tutorial's source content now automatically removes it from the site instead of leaving the old page live.", - "category": "Feature", - "mergedAt": "2026-09-16T07:25:55Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2351" - }, - { - "id": "tutorials-ims#2350", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2350, - "title": "fix(images): process in-place image edits on tutorial rebuilds (#2346)", - "summary": "Editing a tutorial screenshot in place now updates the image on the site within minutes instead of continuing to show the old picture for days.", - "category": "Fix", - "mergedAt": "2026-09-16T07:25:20Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2350" - }, - { - "id": "tutorials-ims#2347", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2347, - "title": "Stop content-freshness checks from falsely failing deployments", - "summary": "Deployments are no longer falsely blocked by content-freshness checks that belonged to the separate content-publishing step.", - "category": "Fix", - "mergedAt": "2026-09-16T06:50:59Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2347" - }, - { - "id": "tutorials-ims#2343", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2343, - "title": "feat(teched): add SAP TechEd to Community nav after Devtoberfest", - "summary": "Adds an SAP TechEd entry to the Community navigation menu (and the command palette) so you can jump straight to the session catalog.", - "category": "Feature", - "mergedAt": "2026-09-16T04:47:44Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2343" - }, - { - "id": "tutorials-ims#2342", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2342, - "title": "fix(teched): repair /teched page 404 (blob id/shape + approuter allowlist)", - "summary": "Fixes the TechEd page so it loads the session catalog correctly instead of showing a not-found error.", - "category": "Fix", - "mergedAt": "2026-09-16T04:29:03Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2342" - }, - { - "id": "tutorials-ims#2341", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2341, - "title": "perf: parallelize independent ingestion SELECTs + batch TechEd abstract N+1", - "summary": "Speeds up TechEd and Devtoberfest session data loading by running independent queries in parallel and batching a repeated lookup.", - "category": "Performance", - "mergedAt": "2026-09-16T00:30:34Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2341" - }, - { - "id": "tutorials-ims#2340", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2340, - "title": "fix(teched): escalate TOTAL RainFocus fetch failure loudly", - "summary": "If the TechEd session feed ever fails to load entirely, the system now raises a loud alert instead of silently freezing the catalog for weeks.", - "category": "Fix", - "mergedAt": "2026-09-15T23:38:56Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2340" - }, - { - "id": "tutorials-ims#2339", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2339, - "title": "fix(freshness): fault-isolate DevtoberfestSessions embedding arm", - "summary": "Makes the search-indexing job more resilient so a problem with Devtoberfest session data no longer stops TechEd and other content from being indexed.", - "category": "Fix", - "mergedAt": "2026-09-15T23:38:50Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2339" - }, - { - "id": "tutorials-ims#2338", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2338, - "title": "fix(teched): correctness fixes (pagination partial-page skip, MCP venue over-broad, parseTrack subtrack leak)", - "summary": "Fixes three TechEd catalog bugs so all sessions are fetched, venue filtering behaves correctly, and tracks are assigned accurately.", - "category": "Fix", - "mergedAt": "2026-09-15T22:44:07Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2338" - }, - { - "id": "tutorials-ims#2337", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2337, - "title": "fix(kg): community-event/devtoberfest/teched concept extractors produced 0 links in prod (callModel contract mismatch)", - "summary": "Community event, Devtoberfest, and TechEd sessions are now correctly linked to related concepts, improving related-content and knowledge-graph connections.", - "category": "Fix", - "mergedAt": "2026-09-15T22:22:50Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2337" - }, - { - "id": "tutorials-ims#2336", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2336, - "title": "fix(teched): bound public /build/teched feed (#2312)", - "summary": "Hardens the TechEd session feed with sensible limits and optional venue and upcoming-only filtering while keeping its output unchanged.", - "category": "Fix", - "mergedAt": "2026-09-15T22:22:41Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2336" - }, - { - "id": "tutorials-ims#2335", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2335, - "title": "fix(teched): don't prune session speaker links on incomplete seed input (#2312)", - "summary": "A partial TechEd data refresh no longer accidentally drops a session's speaker links when the incoming data is incomplete.", - "category": "Fix", - "mergedAt": "2026-09-15T22:22:33Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2335" - }, - { - "id": "tutorials-ims#2334", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2334, - "title": "docs(teched): fix DEV docs-build (sidebar) + reconcile RainFocus contract (#2312)", - "summary": "Updates the TechEd documentation to match the confirmed live session-catalog data source and fixes the docs site build.", - "category": "Docs", - "mergedAt": "2026-09-15T21:54:38Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2334" - }, - { - "id": "tutorials-ims#2326", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2326, - "title": "feat(teched): bidirectional TechEd <-> Devtoberfest session cross-links (#2312)", - "summary": "Links TechEd and Devtoberfest sessions to each other based on shared topics, so you can discover related talks across both events.", - "category": "Feature", - "mergedAt": "2026-09-15T21:54:27Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2326" - }, - { - "id": "tutorials-ims#2325", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2325, - "title": "feat(kg): project SAP TechEd sessions into the RDF/SPARQL graph (#2312 Unit 3)", - "summary": "Adds TechEd sessions to the queryable knowledge graph, connecting them to concepts, tracks, and speakers.", - "category": "Feature", - "mergedAt": "2026-09-15T21:54:12Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2325" - }, - { - "id": "tutorials-ims#2323", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2323, - "title": "docs(teched): document TechEd sessions subsystem (#2312, Unit 11)", - "summary": "Adds developer documentation describing how the TechEd sessions feature works.", - "category": "Docs", - "mergedAt": "2026-09-15T21:33:23Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2323" - }, - { - "id": "tutorials-ims#2324", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2324, - "title": "feat(homepage): surface TechEd 2026 sessions in the events band (#2312)", - "summary": "Upcoming SAP TechEd 2026 sessions can now appear in the homepage events band, each linking to its session page.", - "category": "Feature", - "mergedAt": "2026-09-15T21:33:15Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2324" - }, - { - "id": "tutorials-ims#2327", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2327, - "title": "feat(search): add search_teched MCP tool on SearchService (#2312)", - "summary": "Adds a search tool that lets AI assistants query the TechEd 2026 session catalog by venue, track, and keyword.", - "category": "Feature", - "mergedAt": "2026-09-15T21:32:51Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2327" - }, - { - "id": "tutorials-ims#2328", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2328, - "title": "feat(teched): teched-sessions-grid Vue island (#2312)", - "summary": "Adds the TechEd session browser with filtering by venue, track, and speaker plus text search, all reflected in shareable links.", - "category": "Feature", - "mergedAt": "2026-09-15T21:32:42Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2328" - }, - { - "id": "tutorials-ims#2329", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2329, - "title": "feat(kg): add TechEd sessions to HANA property graph (#2312)", - "summary": "Adds TechEd sessions, tracks, and speakers to the knowledge graph so they connect to related concepts and content.", - "category": "Feature", - "mergedAt": "2026-09-15T21:32:34Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2329" - }, - { - "id": "tutorials-ims#2330", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2330, - "title": "feat(teched): /teched/ top-level page (Unit 7, #2312)", - "summary": "Adds the top-level SAP TechEd 2026 sessions page that hosts the filterable session browser.", - "category": "Feature", - "mergedAt": "2026-09-15T21:32:24Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2330" - }, - { - "id": "tutorials-ims#2331", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2331, - "title": "feat(teched): TechEd sessions in semantic search + embedding backfill (#2312)", - "summary": "TechEd sessions are now discoverable through the site's semantic search so you can find relevant talks by meaning, not just keywords.", - "category": "Feature", - "mergedAt": "2026-09-15T21:32:14Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2331" - }, - { - "id": "tutorials-ims#2332", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2332, - "title": "feat(teched): real RainFocus /api/sessions fetcher + delta cron jobs (#2312 Unit 2)", - "summary": "Adds the real TechEd session fetcher and scheduled updates so the session catalog stays current across the Berlin and Virtual events.", - "category": "Feature", - "mergedAt": "2026-09-15T21:32:04Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2332" - }, - { - "id": "tutorials-ims#2322", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2322, - "title": "feat(teched): RainFocus fetcher + data model + seed + /build/teched feed (Unit F, #2312)", - "summary": "Lays the foundation for TechEd 2026 sessions on the site, including the session data model, fetcher, and public session feed.", - "category": "Feature", - "mergedAt": "2026-09-15T20:08:17Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2322" - }, - { - "id": "tutorials-ims#2321", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2321, - "title": "feat(kg): Devtoberfest sessions as first-class KG + semantic-search nodes (#2311)", - "summary": "Devtoberfest sessions are now first-class entries in the knowledge graph and semantic search, connecting talks to the tutorials and topics they cover.", - "category": "Feature", - "mergedAt": "2026-09-15T18:47:19Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2321" - }, - { - "id": "tutorials-ims#2319", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2319, - "title": "feat(skills): tutorial-qa-to-prod author skill (#2310)", - "summary": "Adds a helper that lets tutorial authors promote a QA-previewed tutorial to production with a single request.", - "category": "Feature", - "mergedAt": "2026-09-15T17:30:04Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2319" - }, - { - "id": "tutorials-ims#2318", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2318, - "title": "fix(ord): serve ORD discovery endpoints at runtime (#2307)", - "summary": "The Open Resource Discovery endpoints now respond correctly at runtime instead of returning a not-found error.", - "category": "Fix", - "mergedAt": "2026-09-15T16:07:16Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2318" - }, - { - "id": "tutorials-ims#2317", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2317, - "title": "fix(provenance): read signing key credstore-first via resolveSecret (#2308)", - "summary": "Fixes the signed tutorial provenance feature so its signing key is read from secure storage, letting the provenance endpoints work correctly.", - "category": "Fix", - "mergedAt": "2026-09-15T16:06:33Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2317" - }, - { - "id": "tutorials-ims#2316", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2316, - "title": "fix(display-app): pin websocket-only transport (#2306)", - "summary": "The event display app now stays reliably connected instead of getting stuck reconnecting.", - "category": "Fix", - "mergedAt": "2026-09-15T15:07:18Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2316" - }, - { - "id": "tutorials-ims#2315", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2315, - "title": "fix(app-space): correct event for anonymous visitors + no default-event flash (#2314)", - "summary": "The App Space kiosk page now shows the correct event for anonymous visitors using an event link, with no brief flash of the wrong event name.", - "category": "Fix", - "mergedAt": "2026-09-15T14:48:48Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2315" - }, - { - "id": "tutorials-ims#2305", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2305, - "title": "Release 1.26.0 — DEV → main (PROD promotion)", - "summary": "Promotes the accumulated changes to production as the 1.26.0 release.", - "category": "Maintenance", - "mergedAt": "2026-09-14T20:21:44Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2305" - }, - { - "id": "tutorials-ims#2304", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2304, - "title": "chore(release): 1.26.0 — What's New digest + version bump", - "summary": "Prepares the 1.26.0 release by refreshing the What's New digest and bumping the version.", - "category": "Maintenance", - "mergedAt": "2026-09-14T20:09:12Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2304" - }, - { - "id": "tutorials-ims#2303", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2303, - "title": "Copy Mission — one-click deep copy", - "summary": "Admins can duplicate an entire mission, including all its nested content, as a starting point for a new one.", - "category": "Feature", - "mergedAt": "2026-09-14T19:22:55Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2303" - }, - { - "id": "tutorials-ims#2301", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2301, - "title": "Markdown formatting in event descriptions", - "summary": "Event descriptions now render Markdown as clean, safe HTML in the App Space.", - "category": "Feature", - "mergedAt": "2026-09-14T18:55:26Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2301" - }, - { - "id": "tutorials-ims#2302", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2302, - "title": "Faster concept-page builds", - "summary": "Concept pages build faster by reading their link tables in parallel.", - "category": "Performance", - "mergedAt": "2026-09-14T18:49:07Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2302" - }, - { - "id": "tutorials-ims#2298", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2298, - "title": "Event QR codes open the right event", - "summary": "Scanning an event's QR code now takes you straight to that event's App Space.", - "category": "Fix", - "mergedAt": "2026-09-14T18:44:02Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2298" - }, - { - "id": "tutorials-ims#2297", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2297, - "title": "Correct no-access contact info", - "summary": "The 'no access' page now shows the correct contact information.", - "category": "Fix", - "mergedAt": "2026-09-14T18:43:21Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2297" - }, - { - "id": "tutorials-ims#2299", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2299, - "title": "Event displays handle zero completions", - "summary": "Event display screens now handle events with no completions yet instead of breaking.", - "category": "Fix", - "mergedAt": "2026-09-14T18:43:00Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2299" - }, - { - "id": "tutorials-ims#2292", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2292, - "title": "Edited images republish on rebuild", - "summary": "Editing a tutorial image in place now correctly republishes the updated image.", - "category": "Fix", - "mergedAt": "2026-09-14T17:30:34Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2292" - }, - { - "id": "tutorials-ims#2291", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2291, - "title": "Indented list code blocks render", - "summary": "Tutorials with code blocks nested inside list items now render correctly.", - "category": "Fix", - "mergedAt": "2026-09-14T16:34:53Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2291" - }, - { - "id": "tutorials-ims#2290", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2290, - "title": "Publishing retries transient DB timeouts", - "summary": "Content publishing now retries automatically through transient database timeouts instead of failing.", - "category": "Fix", - "mergedAt": "2026-09-14T16:24:54Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2290" - }, - { - "id": "tutorials-ims#2289", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2289, - "title": "New acronym-trainer lessons: ABAP, BDC, SAP & AI", - "summary": "The acronym trainer gains new lessons covering ABAP, BDC, and a new unit on SAP & AI.", - "category": "Feature", - "mergedAt": "2026-09-14T15:55:07Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2289" - }, - { - "id": "tutorials-ims#2284", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2284, - "title": "Acronym trainer: mastery gating and XP", - "summary": "The acronym trainer now requires a 70% score for mastery and surfaces your XP level and streak.", - "category": "Fix", - "mergedAt": "2026-09-14T12:29:00Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2284" - }, - { - "id": "tutorials-ims#2282", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2282, - "title": "Acronym trainer dark-mode and navigation polish", - "summary": "Better dark-mode contrast, a lesson back button, and clearer labels in the acronym trainer.", - "category": "Fix", - "mergedAt": "2026-09-14T06:50:06Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2282" - }, - { - "id": "tutorials-ims#2281", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2281, - "title": "Acronym trainer backend routing", - "summary": "Adds the routing the acronym trainer needs to reach its backend service.", - "category": "Fix", - "mergedAt": "2026-09-14T05:53:45Z", - "week": "2026-W38", - "weekStart": "2026-09-14", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2281" - }, - { - "id": "tutorials-ims#2280", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2280, - "title": "Acronym trainer landing-page layout", - "summary": "Polishes the acronym trainer's landing page layout and mascot sizing.", - "category": "Fix", - "mergedAt": "2026-09-13T22:18:01Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2280" - }, - { - "id": "tutorials-ims#2279", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2279, - "title": "Interactive widgets load after rebuilds", - "summary": "Interactive page widgets no longer fail to load after a rebuild because of missing shared code bundles.", - "category": "Fix", - "mergedAt": "2026-09-13T19:57:49Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2279" - }, - { - "id": "tutorials-ims#2278", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2278, - "title": "Fix a service startup crash", - "summary": "Resolves a backend startup crash caused by a missing runtime dependency.", - "category": "Fix", - "mergedAt": "2026-09-13T17:37:45Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2278" - }, - { - "id": "tutorials-ims#2277", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2277, - "title": "Chat semantic-search setting migration", - "summary": "Corrects the database migration for the chat semantic-search setting.", - "category": "Fix", - "mergedAt": "2026-09-13T16:36:24Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2277" - }, - { - "id": "tutorials-ims#2276", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2276, - "title": "Deploy-watcher descriptor", - "summary": "Adds a descriptor used by the automated deploy-watcher tooling.", - "category": "Maintenance", - "mergedAt": "2026-09-13T14:15:47Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2276" - }, - { - "id": "tutorials-ims#2274", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2274, - "title": "Load-shedding guard", - "summary": "A load-shedding guard keeps the site responsive under sudden traffic spikes.", - "category": "Feature", - "mergedAt": "2026-09-13T03:05:36Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2274" - }, - { - "id": "tutorials-ims#2273", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2273, - "title": "Input validation and GraphQL query limits", - "summary": "Hardens the platform with WAF-style input validation and limits on GraphQL query depth and complexity.", - "category": "Feature", - "mergedAt": "2026-09-12T21:53:28Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2273" - }, - { - "id": "tutorials-ims#2269", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2269, - "title": "Development tooling improvements", - "summary": "Internal tooling: quieter build logs and token-efficiency rules for development agents.", - "category": "Maintenance", - "mergedAt": "2026-09-12T17:32:53Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2269" - }, - { - "id": "tutorials-ims#2264", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2264, - "title": "Edge-cache fast purge", - "summary": "An edge-cache fast-purge hook gets updated content to visitors sooner after a publish.", - "category": "Feature", - "mergedAt": "2026-09-12T17:26:45Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2264" - }, - { - "id": "tutorials-ims#2263", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2263, - "title": "Origin-side rate limiter", - "summary": "Introduces an origin-side rate limiter (off by default) to protect the backend from abusive traffic.", - "category": "Feature", - "mergedAt": "2026-09-12T17:24:39Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2263" - }, - { - "id": "tutorials-ims#2262", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2262, - "title": "Kasimir Teaches TLAs — acronym trainer", - "summary": "Adds Kasimir Teaches TLAs, a gamified SAP acronym trainer (preview, off by default).", - "category": "Feature", - "mergedAt": "2026-09-12T16:08:44Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2262" - }, - { - "id": "tutorials-ims#2261", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2261, - "title": "Installable Skill bundle endpoint", - "summary": "A new endpoint serves an installable Skill bundle for AI assistants.", - "category": "Feature", - "mergedAt": "2026-09-12T04:00:18Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2261" - }, - { - "id": "tutorials-ims#2260", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2260, - "title": "Learning-path prerequisite reasoning", - "summary": "Prerequisite-chain reasoning can suggest a learning path across related tutorials (preview).", - "category": "Feature", - "mergedAt": "2026-09-12T03:45:18Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2260" - }, - { - "id": "tutorials-ims#2259", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2259, - "title": "Parse and store assertion blocks", - "summary": "Assertion blocks in tutorial source are now parsed and persisted for downstream features.", - "category": "Feature", - "mergedAt": "2026-09-12T01:15:07Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2259" - }, - { - "id": "tutorials-ims#2257", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2257, - "title": "HCQL on authenticated services", - "summary": "Re-enables HCQL query support on five authenticated services on CAP 10.1.0.", - "category": "Feature", - "mergedAt": "2026-09-11T23:46:38Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2257" - }, - { - "id": "tutorials-ims#2256", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2256, - "title": "Signed provenance for served tutorials", - "summary": "Served tutorials can carry a signed provenance envelope so consumers can verify their source.", - "category": "Feature", - "mergedAt": "2026-09-11T22:31:26Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2256" - }, - { - "id": "tutorials-ims#2255", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2255, - "title": "MCP surfaces in the ORD catalog", - "summary": "The ORD catalog document now lists the platform's MCP surfaces.", - "category": "Fix", - "mergedAt": "2026-09-11T22:13:29Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2255" - }, - { - "id": "tutorials-ims#2254", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2254, - "title": "Machine-readable /sitemap.md", - "summary": "A navigable /sitemap.md helps AI tools discover and traverse the site's content.", - "category": "Feature", - "mergedAt": "2026-09-11T19:13:29Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2254" - }, - { - "id": "tutorials-ims#2253", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2253, - "title": "Public semantic search", - "summary": "Public semantic search across the tutorial corpus is now available without signing in.", - "category": "Feature", - "mergedAt": "2026-09-11T18:58:28Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2253" - }, - { - "id": "tutorials-ims#2252", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2252, - "title": "Markdown content negotiation", - "summary": "Tutorial URLs can return raw Markdown when a client asks for it, which suits AI tools and automation.", - "category": "Feature", - "mergedAt": "2026-09-11T18:52:05Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2252" - }, - { - "id": "tutorials-ims#2248", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2248, - "title": "Per-step Markdown over MCP", - "summary": "The MCP server can return individual tutorial steps as Markdown in your chosen format.", - "category": "Feature", - "mergedAt": "2026-09-11T18:51:37Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2248" - }, - { - "id": "tutorials-ims#2243", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2243, - "title": "Devtoberfest session survey links", - "summary": "Devtoberfest session details now include a link to the session survey.", - "category": "Feature", - "mergedAt": "2026-09-11T17:28:01Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2243" - }, - { - "id": "tutorials-ims#2242", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2242, - "title": "Absolute image URLs in tutorial Markdown", - "summary": "Images in served tutorial Markdown now use absolute URLs so they load correctly everywhere.", - "category": "Feature", - "mergedAt": "2026-09-11T15:49:58Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2242" - }, - { - "id": "tutorials-ims#2241", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2241, - "title": "Automatic re-auth on expired sessions", - "summary": "Stale sessions now re-authenticate automatically on expiry instead of showing an error.", - "category": "Fix", - "mergedAt": "2026-09-11T15:40:51Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2241" - }, - { - "id": "tutorials-ims#2238", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2238, - "title": "Release 1.25.0 to production", - "summary": "Promotes the 1.25.0 release from DEV to production.", - "category": "Maintenance", - "mergedAt": "2026-09-10T23:35:11Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2238" - }, - { - "id": "tutorials-ims#2237", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2237, - "title": "Release 1.25.0 digest and version bump", - "summary": "Refreshes the What's New digest and bumps the version for the 1.25.0 release.", - "category": "Maintenance", - "mergedAt": "2026-09-10T23:29:28Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2237" - }, - { - "id": "tutorials-ims#2236", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2236, - "title": "fix(highlight-cds): show every step in tutorials with long code blocks", - "summary": "Tutorials that contain a long, collapsible code block no longer drop the steps that follow it, so every step of a walkthrough now renders correctly.", - "category": "Fix", - "mergedAt": "2026-09-10T21:49:19Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2236" - }, - { - "id": "tutorials-ims#2234", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2234, - "title": "feat(agent-readiness): Markdown source, MCP manifest, and improved discovery for AI agents", - "summary": "Tutorials are now easier for AI assistants and agents to consume: each tutorial exposes its Markdown source, an MCP manifest is published, and llms.txt and sitemap discovery were fixed so tools can find the content reliably.", - "category": "Feature", - "mergedAt": "2026-09-10T21:44:20Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2234" - }, - { - "id": "tutorials-ims#2233", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2233, - "title": "fix(content): stale content now self-heals within a short window", - "summary": "Added a time-based backstop to the content cache so that if a refresh signal is ever missed, recently updated pages correct themselves automatically instead of staying stale.", - "category": "Fix", - "mergedAt": "2026-09-10T20:26:39Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2233" - }, - { - "id": "tutorials-ims#2231", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2231, - "title": "fix(graphql-docs): runnable examples and downloadable schema", - "summary": "The GraphQL documentation now offers working, runnable examples and serves the schema file directly, making it easier to explore and try the API.", - "category": "Docs", - "mergedAt": "2026-09-10T19:59:58Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2231" - }, - { - "id": "tutorials-ims#2230", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2230, - "title": "fix: Copy button on code blocks works outside tutorial pages", - "summary": "The copy-to-clipboard button on code snippets now works on pages beyond tutorials, so code can be copied anywhere it appears on the site.", - "category": "Fix", - "mergedAt": "2026-09-10T18:27:56Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2230" - }, - { - "id": "tutorials-ims#2225", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2225, - "title": "fix(author): correct tutorial attribution when a user record lacks an identity", - "summary": "Author dashboards no longer misattribute tutorials to the wrong person when some legacy user records are missing identity details.", - "category": "Fix", - "mergedAt": "2026-09-09T22:46:08Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2225" - }, - { - "id": "tutorials-ims#2224", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2224, - "title": "Release 1.24.0 — What's New refresh + version bump", - "summary": "Promoted the accumulated DEV changes to production as release 1.24.0, refreshing the What's New digest and version.", - "category": "Maintenance", - "mergedAt": "2026-09-09T17:16:03Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2224" - }, - { - "id": "tutorials-ims#2222", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2222, - "title": "fix(deploy): guard prepare hook so CF staging doesn't fail", - "summary": "Deployments to Cloud Foundry no longer fail during staging when an optional developer git-hook script isn't shipped, making releases more reliable.", - "category": "Maintenance", - "mergedAt": "2026-09-09T15:24:54Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2222" - }, - { - "id": "tutorials-ims#2221", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2221, - "title": "feat(skills): provision-tutorial-repo skill + script", - "summary": "A new guided skill and script make it easy to provision a fresh tutorial source repository with the right structure and settings.", - "category": "Feature", - "mergedAt": "2026-09-09T15:15:52Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2221" - }, - { - "id": "tutorials-ims#2220", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2220, - "title": "fix(puzzles): assign legacyId to admin-authored puzzles", - "summary": "Puzzles created in the admin tools now receive a proper identifier, so they track and display consistently alongside imported puzzles.", - "category": "Fix", - "mergedAt": "2026-09-09T15:12:53Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2220" - }, - { - "id": "tutorials-ims#2218", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2218, - "title": "promote(DEV→main): product-ID meta-tag emit-all fix + queued DEV changes", - "summary": "Promoted a batch of queued DEV changes to production, including a fix that emits product-ID meta tags for every tag on a page.", - "category": "Maintenance", - "mergedAt": "2026-09-09T04:18:24Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2218" - }, - { - "id": "tutorials-ims#2217", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2217, - "title": "fix(sm_tech_ids): emit semaphoreId for every tag", - "summary": "Product-ID meta tags are now emitted for every tag on a page rather than only primary ones, improving downstream content classification.", - "category": "Fix", - "mergedAt": "2026-09-09T04:10:42Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2217" - }, - { - "id": "tutorials-ims#2216", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2216, - "title": "feat(admin): surface feedback-email digest flag in Feature Flags UI", - "summary": "Admins can now toggle the feedback-email digest directly from the Feature Flags screen instead of changing configuration by hand.", - "category": "Feature", - "mergedAt": "2026-09-09T03:25:09Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2216" - }, - { - "id": "tutorials-ims#2215", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2215, - "title": "docs(a2a): document A2A agent + add quickstart", - "summary": "New documentation and a quickstart on the API docs page explain the agent-to-agent (A2A) integration and how to get started with it.", - "category": "Docs", - "mergedAt": "2026-09-09T02:05:38Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2215" - }, - { - "id": "tutorials-ims#2214", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2214, - "title": "ci: split unit tests from static guards", - "summary": "Continuous-integration now runs unit tests separately from static checks, so build failures are clearer and faster to diagnose.", - "category": "Maintenance", - "mergedAt": "2026-09-09T01:02:57Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2214" - }, - { - "id": "tutorials-ims#2213", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2213, - "title": "Release 1.23.0 to production", - "summary": "Promotes the 1.23.0 release with a What's New refresh and version bump.", - "category": "Maintenance", - "mergedAt": "2026-09-08T22:12:34Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2213" - }, - { - "id": "tutorials-ims#2212", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2212, - "title": "fix(admin): categorical week axis for Devtoberfest Signups report", - "summary": "The Devtoberfest Signups admin report now uses a categorical week axis and a trimmed layout for clearer reading.", - "category": "Fix", - "mergedAt": "2026-09-08T21:41:06Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2212" - }, - { - "id": "tutorials-ims#2211", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2211, - "title": "feat(mcp): add search_channels curated tool (#2205)", - "summary": "MCP clients can now discover the external-channels catalog through a new anonymous search_channels tool, searchable by name, category, and platform.", - "category": "Feature", - "mergedAt": "2026-09-08T21:22:33Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2211" - }, - { - "id": "tutorials-ims#2210", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2210, - "title": "docs(skills): add sap-developers-mcp skill for the hosted MCP server", - "summary": "A published guide explains how to connect any MCP client — Claude, Joule, Cursor, and others — to the SAP Developers hosted MCP server across anonymous, PAT, and OAuth access.", - "category": "Docs", - "mergedAt": "2026-09-08T21:21:59Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2210" - }, - { - "id": "tutorials-ims#2208", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2208, - "title": "fix(feedback-digest): mark pre-canonicalized slug lookup (fix DEV unit tests)", - "summary": "Tidied an internal slug lookup in the feedback digest so it passes the build's static checks; no behavior change.", - "category": "Maintenance", - "mergedAt": "2026-09-08T21:04:45Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2208" - }, - { - "id": "tutorials-ims#2207", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2207, - "title": "fix(admin-shell): restore dropped _loadNotificationConfig header (#2199)", - "summary": "Restored a controller method in the Tutorial Health dashboard that had been accidentally broken, so admin builds and notifications work again.", - "category": "Fix", - "mergedAt": "2026-09-08T20:51:25Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2207" - }, - { - "id": "tutorials-ims#2204", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2204, - "title": "feat(#2199): personal watch list in Tutorial Health dashboard", - "summary": "Authors can now build a personal watch list to monitor tutorials they don't own, with the health report scoped to owned, watched, or both.", - "category": "Feature", - "mergedAt": "2026-09-08T20:22:54Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2204" - }, - { - "id": "tutorials-ims#2203", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2203, - "title": "fix(users): backfill email from token subject when JWT email claim is absent (#2199)", - "summary": "An author's email is now backfilled from their sign-in identity when the login token omits it, so their ownership and monitoring dashboards report tutorials correctly.", - "category": "Fix", - "mergedAt": "2026-09-08T20:20:34Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2203" - }, - { - "id": "tutorials-ims#2202", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2202, - "title": "test: fix stale lockstep counts for #2184 semaphore sync (flag + job)", - "summary": "Updated internal test counts to match the newly added taxonomy-sync flag and job.", - "category": "Maintenance", - "mergedAt": "2026-09-08T19:56:03Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2202" - }, - { - "id": "tutorials-ims#2201", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2201, - "title": "feat(channels): alert on new channel submissions awaiting approval (#2198)", - "summary": "DevRel now receives an alert whenever a new external-channel submission is waiting in the moderation queue, so proposals don't sit unnoticed.", - "category": "Feature", - "mergedAt": "2026-09-08T18:18:10Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2201" - }, - { - "id": "tutorials-ims#2200", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2200, - "title": "test(smoke): make the deploy smoke gate a reliable green set", - "summary": "Made the deploy smoke checks a reliably green set by fixing test-only defects, so a red run once again signals a real problem.", - "category": "Maintenance", - "mergedAt": "2026-09-08T18:01:51Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2200" - }, - { - "id": "tutorials-ims#2197", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2197, - "title": "feat(tags): automate Semaphore taxonomy sync (#2184)", - "summary": "A weekly automated sync keeps the tag taxonomy aligned with the central Semaphore model, updating renamed terms in place instead of duplicating them.", - "category": "Feature", - "mergedAt": "2026-09-08T13:56:44Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2197" - }, - { - "id": "tutorials-ims#2196", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2196, - "title": "test: fix two stale unit tests failing CI", - "summary": "Refreshed two stale tests to match earlier source changes.", - "category": "Maintenance", - "mergedAt": "2026-09-08T13:30:49Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2196" - }, - { - "id": "tutorials-ims#2195", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2195, - "title": "fix(scavenger-hunt): correct Shilpa clue string", - "summary": "Corrected the API-docs scavenger hunt clue so it matches the current site snippet.", - "category": "Fix", - "mergedAt": "2026-09-08T12:57:16Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2195" - }, - { - "id": "tutorials-ims#2191", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2191, - "title": "test(sm-tech-ids): env-gate tutorial-page sm_tech_ids smoke assertion", - "summary": "Made a tutorial product-ID smoke check opt-in via configuration so it no longer fails on environments lacking that data.", - "category": "Maintenance", - "mergedAt": "2026-09-08T04:00:49Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2191" - }, - { - "id": "tutorials-ims#2190", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2190, - "title": "feat(feedback): email tutorial owners new commented feedback (#2188)", - "summary": "Tutorial owners now receive a daily email digest of new commented feedback on their tutorials.", - "category": "Feature", - "mergedAt": "2026-09-08T03:51:16Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2190" - }, - { - "id": "tutorials-ims#2189", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2189, - "title": "fix(attachments): base64url-encode source URLs to dodge Akamai WAF 403 (#1931 follow-up)", - "summary": "Tutorial attachment downloads work again by encoding source URLs so they no longer trip a content-delivery security block.", - "category": "Fix", - "mergedAt": "2026-09-08T03:23:22Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2189" - }, - { - "id": "tutorials-ims#2187", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2187, - "title": "Restore sm_tech_ids product-ID meta tags across content pages", - "summary": "Content pages once again emit product-ID meta tags so the site search crawler can filter migrated documents by product.", - "category": "Feature", - "mergedAt": "2026-09-08T02:38:08Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2187" - }, - { - "id": "tutorials-ims#2186", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2186, - "title": "fix(puzzles): wire Submit button as the completion finalizer (#2185)", - "summary": "The puzzle solver's Submit button now works as the completion step, so solving and submitting a puzzle records it correctly.", - "category": "Fix", - "mergedAt": "2026-09-07T23:00:30Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2186" - }, - { - "id": "tutorials-ims#2183", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2183, - "title": "fix(tutorial-author): relabel 'Created by' to 'Created on' (#2177)", - "summary": "Relabeled a tutorial's date line from 'Created by' to 'Created on' since it shows only a date, not a person.", - "category": "Fix", - "mergedAt": "2026-09-07T11:12:56Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2183" - }, - { - "id": "tutorials-ims#2182", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2182, - "title": "fix(author): stop mixing named authors with last-changed-by identity (#2181)", - "summary": "Fixed tutorial bylines so a named author is no longer paired with a different person's photo and profile link when the author profile is missing.", - "category": "Fix", - "mergedAt": "2026-09-07T11:07:34Z", - "week": "2026-W37", - "weekStart": "2026-09-07", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2182" - }, - { - "id": "tutorials-ims#2176", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2176, - "title": "Release 1.22.0 — What's New refresh + version bump", - "summary": "Promoted the accumulated DEV changes to production as release 1.22.0, refreshing the What's New digest and version.", - "category": "Maintenance", - "mergedAt": "2026-09-06T19:08:20Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2176" - }, - { - "id": "tutorials-ims#2175", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2175, - "title": "fix(channel-atlas): dark-mode theming — legible text + visible filter selection", - "summary": "The Channel Atlas now reads correctly in dark mode, with legible text and clearly highlighted filter selections.", - "category": "Fix", - "mergedAt": "2026-09-06T17:44:52Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2175" - }, - { - "id": "tutorials-ims#2174", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2174, - "title": "fix(channel-atlas): recover from double-encoded inline payload (blank Atlas)", - "summary": "Fixed a bug that left the Channel Atlas showing a blank page, so the channel ecosystem graph now loads reliably.", - "category": "Fix", - "mergedAt": "2026-09-06T16:53:00Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2174" - }, - { - "id": "tutorials-ims#2173", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2173, - "title": "fix(channels): hub UX — crosswalk 404, media-diet layout, health enrichment", - "summary": "Polished the Channels hub — removed a dead link, gave the Build-Your-Media-Diet page a clearer two-column layout with a live match count, and made the Ecosystem Health view easier to read at a glance.", - "category": "Fix", - "mergedAt": "2026-09-06T15:25:17Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2173" - }, - { - "id": "tutorials-ims#2172", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2172, - "title": "fix(ci): mark pre-canonicalized slug lookup in build-channel-detail", - "summary": "Internal build-guard adjustment for the channels publishing pipeline.", - "category": "Maintenance", - "mergedAt": "2026-09-06T15:25:02Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2172" - }, - { - "id": "tutorials-ims#2171", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2171, - "title": "fix(channels): chunk ChannelTopicMap AI seed to avoid token-cap zero-result", - "summary": "Channels are now reliably tagged with the topics they cover, so topic pages surface the right related channels.", - "category": "Fix", - "mergedAt": "2026-09-06T14:44:43Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2171" - }, - { - "id": "tutorials-ims#2170", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2170, - "title": "fix(ci): allowlist GET /content/channel-detail/:slug (route-drift guard)", - "summary": "Internal route-parity guard update for the channels content service.", - "category": "Maintenance", - "mergedAt": "2026-09-06T13:46:35Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2170" - }, - { - "id": "tutorials-ims#2169", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2169, - "title": "feat(channels): Phase 3 — Channel Atlas SPA (/channels/atlas/)", - "summary": "New interactive Channel Atlas maps the SAP developer channel ecosystem as a visual graph you can explore and filter by owner type.", - "category": "Feature", - "mergedAt": "2026-09-06T12:04:55Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2169" - }, - { - "id": "tutorials-ims#2168", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2168, - "title": "feat(channels-hub): Phase 2 — crosswalk Direction 2, media-diet signed-in + export", - "summary": "Added per-channel detail pages, a Learn-to-Follow crosswalk between topics and channels, and the ability to build and export a personalized media diet of channels.", - "category": "Feature", - "mergedAt": "2026-09-06T11:59:20Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2168" - }, - { - "id": "tutorials-ims#2167", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2167, - "title": "fix(channels): health page baked empty stats — data-key filename mismatch", - "summary": "Fixed the Channels Ecosystem Health page that was showing zero channels; it now displays the real totals.", - "category": "Fix", - "mergedAt": "2026-09-06T00:40:48Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2167" - }, - { - "id": "tutorials-ims#2166", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2166, - "title": "feat(channels): Channels Hub Phase 1 — hub band + ecosystem-health + media-diet", - "summary": "Turned the Channels page into a hub with an Ecosystem Health view and a Build-Your-Media-Diet tool for discovering channels by focus area.", - "category": "Feature", - "mergedAt": "2026-09-05T22:37:58Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2166" - }, - { - "id": "tutorials-ims#2165", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2165, - "title": "feat(channels): Phase 0 foundation — slug+feedUrl schema, migration, ingest", - "summary": "Behind-the-scenes foundation for the Channels hub, adding stable channel permalinks and feed links.", - "category": "Maintenance", - "mergedAt": "2026-09-05T21:01:10Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2165" - }, - { - "id": "tutorials-ims#2164", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2164, - "title": "fix(admin-ui): restore FE list→object navigation in headless shell (unblocks Channels Edit)", - "summary": "Fixed the admin console so clicking a list row opens its detail page for editing across the Channels and other management screens.", - "category": "Fix", - "mergedAt": "2026-09-05T18:03:50Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2164" - }, - { - "id": "tutorials-ims#2163", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2163, - "title": "fix(admin): enable Edit — Channels list rows now navigate to object page", - "summary": "Enabled editing of Channels, Channel Collections, and Channel Topic Maps in the admin console by wiring list rows to their detail pages.", - "category": "Fix", - "mergedAt": "2026-09-05T16:41:30Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2163" - }, - { - "id": "tutorials-ims#2162", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2162, - "title": "fix(nav): remember open folder, Tutorial Navigator first, fix palette + channels", - "summary": "Navigation improvements — the menu now remembers your open section, the command palette and Channels page are fixed, and Tutorial Navigator is listed first.", - "category": "Fix", - "mergedAt": "2026-09-05T14:25:45Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2162" - }, - { - "id": "tutorials-ims#2161", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2161, - "title": "feat(nav): restore 'About the Knowledge Graph' (/explore/about/) menu item", - "summary": "Restored the 'About the Knowledge Graph' entry in the navigation menu alongside the interactive Explorer.", - "category": "Feature", - "mergedAt": "2026-09-05T12:39:10Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2161" - }, - { - "id": "tutorials-ims#2160", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2160, - "title": "feat(nav+channels): shared nav data + two-level menu, palette wiring, channels admin + suggest-form", - "summary": "Unified the top navigation and command palette from a single source so Channels, Topics, Browse, What's New, and more appear consistently in a cleaner two-level menu.", - "category": "Feature", - "mergedAt": "2026-09-05T12:29:36Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2160" - }, - { - "id": "tutorials-ims#2159", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2159, - "title": "fix(channels): make seed runnable + widen platform (unblocks DEV channel data load)", - "summary": "Internal reliability fixes to the channels data-loading pipeline so the full channel dataset loads cleanly.", - "category": "Maintenance", - "mergedAt": "2026-09-05T08:20:16Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2159" - }, - { - "id": "tutorials-ims#2158", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2158, - "title": "polish(channels): tighten P4 submit-service contract (405 READ + EDIT/REMOVE target guard)", - "summary": "Hardening of the community channel-submission service for more predictable behavior.", - "category": "Maintenance", - "mergedAt": "2026-09-04T23:03:51Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2158" - }, - { - "id": "tutorials-ims#2157", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2157, - "title": "feat(channels): P4 community submission loop", - "summary": "Community members can now suggest adding, editing, or removing channels, with an admin moderation queue to review each submission.", - "category": "Feature", - "mergedAt": "2026-09-04T22:52:55Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2157" - }, - { - "id": "tutorials-ims#2156", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2156, - "title": "fix(#2138): report filter value help + labels, legible survey charts", - "summary": "Report filters for Mission and Group now show proper labels and value help, and the Survey report charts are legible.", - "category": "Fix", - "mergedAt": "2026-09-04T21:49:24Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2156" - }, - { - "id": "tutorials-ims#2155", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2155, - "title": "fix(devtoberfest): unblock promo video (CSP host) + side-by-side layout (#2144)", - "summary": "Fixed the Devtoberfest promo video that was blocked from playing and corrected its side-by-side layout.", - "category": "Fix", - "mergedAt": "2026-09-04T21:30:33Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2155" - }, - { - "id": "tutorials-ims#2154", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2154, - "title": "fix(homepage): Joule purple→pink brand gradient on Devtoberfest banner (#2131)", - "summary": "Updated the homepage Devtoberfest banner to the Joule purple-to-pink brand gradient with accessible contrast.", - "category": "Fix", - "mergedAt": "2026-09-04T21:27:31Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2154" - }, - { - "id": "tutorials-ims#2153", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2153, - "title": "feat(channels): Surface C — related-channels band on /topics/* (P3)", - "summary": "Topic pages now show a 'Related channels' band linking out to relevant SAP developer channels.", - "category": "Feature", - "mergedAt": "2026-09-04T21:00:55Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2153" - }, - { - "id": "tutorials-ims#2152", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2152, - "title": "fix(channels): unbreak unit-tests slug-lookup guard after PR #2151", - "summary": "Internal build-guard fix for the channel collections pipeline.", - "category": "Maintenance", - "mergedAt": "2026-09-04T20:17:55Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2152" - }, - { - "id": "tutorials-ims#2151", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2151, - "title": "feat(channels): P2 — clustering & editorial collections", - "summary": "Added curated editorial collections that group related channels and lead the Channels directory.", - "category": "Feature", - "mergedAt": "2026-09-04T19:37:24Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2151" - }, - { - "id": "tutorials-ims#2150", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2150, - "title": "feat(#2138) standard reports in Admin UI Reporting folder", - "summary": "New standard reports in the admin Reporting folder — Tutorial Engagement, Tutorial Completions, and a Tutorial Survey view — replacing the retired Power BI dashboard.", - "category": "Feature", - "mergedAt": "2026-09-04T19:36:43Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2150" - }, - { - "id": "tutorials-ims#2149", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2149, - "title": "docs(mcp): add Joule Work Desktop MCP connection instructions", - "summary": "Added instructions for connecting to the platform's MCP server from Joule Work Desktop.", - "category": "Docs", - "mergedAt": "2026-09-04T18:56:00Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2149" - }, - { - "id": "tutorials-ims#2148", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2148, - "title": "feat(me): show partial completions in Recent Activity (#2146)", - "summary": "Your Recent Activity on the My Completions page now shows in-progress tutorials so you can pick up where you left off.", - "category": "Feature", - "mergedAt": "2026-09-04T18:23:03Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2148" - }, - { - "id": "tutorials-ims#2147", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2147, - "title": "External channels P1 follow-ups: facets, owner badges, feed hardening", - "summary": "Enhanced the Channels directory with more filters (focus area and status), clearer owner badges, and related links on each channel.", - "category": "Feature", - "mergedAt": "2026-09-04T18:07:22Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2147" - }, - { - "id": "tutorials-ims#2145", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2145, - "title": "feat(devtoberfest): embed promo video in content gap (#2144)", - "summary": "Added the Devtoberfest promo video to the event home page.", - "category": "Feature", - "mergedAt": "2026-09-04T18:06:10Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2145" - }, - { - "id": "tutorials-ims#2143", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2143, - "title": "fix(docs): register channels reference page in sidebar", - "summary": "Registered the External Channels reference page in the documentation sidebar.", - "category": "Docs", - "mergedAt": "2026-09-04T17:53:15Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2143" - }, - { - "id": "tutorials-ims#2142", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2142, - "title": "feat: external SAP channels P1 foundation", - "summary": "Introduced the external SAP channels directory at /channels, bringing hundreds of curated developer channels into the site with search, filters, and admin management.", - "category": "Feature", - "mergedAt": "2026-09-04T17:42:09Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2142" - }, - { - "id": "tutorials-ims#2141", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2141, - "title": "fix(puzzles): sort admin clue lists by number, not grid position (#2140)", - "summary": "Fixed the crossword puzzle builder so Down clues are listed in numeric order.", - "category": "Fix", - "mergedAt": "2026-09-04T15:51:32Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2141" - }, - { - "id": "tutorials-ims#2136", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2136, - "title": "docs(mcp): fix OAuth quickstart to use prod client_id", - "summary": "Corrected the MCP OAuth quickstart to use the production client ID.", - "category": "Docs", - "mergedAt": "2026-09-04T13:27:00Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2136" - }, - { - "id": "tutorials-ims#2137", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2137, - "title": "fix(mcp-oauth): advertise approuter as authorization server (self-issuer)", - "summary": "Fixed the MCP server OAuth sign-in flow so the token exchange completes correctly.", - "category": "Fix", - "mergedAt": "2026-09-04T08:14:40Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2137" - }, - { - "id": "tutorials-ims#2135", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2135, - "title": "feat(events): per-event name, description & logo on event-display + app-space (#2133)", - "summary": "Event display and App Space pages now show each event's real name, description, and logo instead of a hardcoded label.", - "category": "Feature", - "mergedAt": "2026-09-04T07:42:07Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2135" - }, - { - "id": "tutorials-ims#2134", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2134, - "title": "feat(homepage): Devtoberfest banner with live countdown (#2131)", - "summary": "Added a homepage Devtoberfest banner with a live countdown to the event.", - "category": "Feature", - "mergedAt": "2026-09-04T06:40:22Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2134" - }, - { - "id": "tutorials-ims#2132", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2132, - "title": "Update Devtoberfest scavenger hunt clue captions (#2130)", - "summary": "Updated the Devtoberfest scavenger hunt clue captions.", - "category": "Maintenance", - "mergedAt": "2026-09-04T06:17:42Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2132" - }, - { - "id": "tutorials-ims#2129", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2129, - "title": "fix(api-docs): sap-devs CLI install no longer on npm (#2123)", - "summary": "Updated the API Docs page with current install instructions for the sap-devs CLI (Homebrew, Scoop, and GitHub Releases) now that it's no longer on npm.", - "category": "Fix", - "mergedAt": "2026-09-03T18:00:37Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2129" - }, - { - "id": "tutorials-ims#2128", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2128, - "title": "fix(tutorials): support no-step + commented-out-step validation tutorials (#2127)", - "summary": "Fixed rendering of Devtoberfest validation tutorials that intentionally ship with no steps or commented-out steps yet.", - "category": "Fix", - "mergedAt": "2026-09-03T17:40:43Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2128" - }, - { - "id": "tutorials-ims#2126", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2126, - "title": "fix(sitemap): guard catalog-only rebuilds from wiping /tutorials/ URLs", - "summary": "Fixed an issue where catalog-only content rebuilds could strip tutorial URLs from the sitemap, restoring full search-crawler coverage.", - "category": "Fix", - "mergedAt": "2026-09-03T15:15:59Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2126" - }, - { - "id": "tutorials-ims#2122", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2122, - "title": "promote: rebuild-content phantom-step fix (#2121) to main", - "summary": "Promoted a content-rebuild pipeline fix to production.", - "category": "Maintenance", - "mergedAt": "2026-09-03T02:49:28Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2122" - }, - { - "id": "tutorials-ims#2121", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2121, - "title": "fix(rebuild-content): drop phantom 'Fetch topics gallery' step (breaks all full rebuilds)", - "summary": "Fixed the content rebuild pipeline that was failing on a missing step, restoring full content publishes.", - "category": "Maintenance", - "mergedAt": "2026-09-03T02:47:30Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2121" - }, - { - "id": "tutorials-ims#2119", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2119, - "title": "Release 1.21.0 → PROD", - "summary": "Release 1.21.0 promotion to production.", - "category": "Maintenance", - "mergedAt": "2026-09-03T01:33:17Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2119" - }, - { - "id": "tutorials-ims#2118", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2118, - "title": "chore(release): bump MTA 1.20.1 → 1.21.0 + refresh What's New digest", - "summary": "Version bump and What's New digest refresh for the 1.21.0 release.", - "category": "Maintenance", - "mergedAt": "2026-09-03T01:31:30Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2118" - }, - { - "id": "tutorials-ims#2117", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2117, - "title": "fix(topics): nest /topics/ tree by parsing real titlePath separators", - "summary": "The Topics browser now nests into proper drill-in folders instead of showing every tag as a single flat entry.", - "category": "Fix", - "mergedAt": "2026-09-02T16:47:28Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2117" - }, - { - "id": "tutorials-ims#2116", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2116, - "title": "feat(devtoberfest): Live vs Prerecorded session tag + format filter (#2110)", - "summary": "Devtoberfest sessions now carry a Live vs Prerecorded badge, with a new Format filter across the grid, calendar, and schedule views.", - "category": "Feature", - "mergedAt": "2026-09-02T16:30:44Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2116" - }, - { - "id": "tutorials-ims#2115", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2115, - "title": "fix(tutorial): make Overview tags clickable (#2112)", - "summary": "Tags in a tutorial's Overview section are now clickable links to browse related tutorials, matching the header chips.", - "category": "Fix", - "mergedAt": "2026-09-02T16:26:08Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2115" - }, - { - "id": "tutorials-ims#2114", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2114, - "title": "fix(admin): stop prompting non-SuperAdmin for publish rights on description edits (#2111)", - "summary": "Authors and admins can again save a group's description or title edit without hitting a false 'SuperAdmin only' publish-rights error.", - "category": "Fix", - "mergedAt": "2026-09-02T16:09:53Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2114" - }, - { - "id": "tutorials-ims#2109", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2109, - "title": "feat(cross-container): ADVOCATE_VALUE_HELP_V1 view for planner Session.host (#2102)", - "summary": "The active SAP Developer Advocate roster is now shared as an authoritative value-help source, letting the Devtoberfest planner pick session hosts from the real list.", - "category": "Feature", - "mergedAt": "2026-09-02T12:15:09Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2109" - }, - { - "id": "tutorials-ims#2108", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2108, - "title": "fix(ci): allowlist /content/topics* in srv-qa route-drift guard", - "summary": "Build-guard update so the new Topics content routes pass continuous integration.", - "category": "Maintenance", - "mergedAt": "2026-09-02T11:41:19Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2108" - }, - { - "id": "tutorials-ims#2107", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2107, - "title": "feat(devtoberfest): schedule-consistency check across planner + external assets (#2103)", - "summary": "A new admin check flags Devtoberfest sessions whose planner time disagrees with their YouTube livestream or community-event schedule.", - "category": "Feature", - "mergedAt": "2026-09-02T11:23:34Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2107" - }, - { - "id": "tutorials-ims#2106", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2106, - "title": "fix(topics): URL-safe topic slugs so /topics/ serves (#2099 follow-up)", - "summary": "Topic detail pages now resolve correctly — topic slugs are made URL-safe so /topics/ no longer returns 404.", - "category": "Fix", - "mergedAt": "2026-09-02T11:09:44Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2106" - }, - { - "id": "tutorials-ims#2100", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2100, - "title": "fix(approuter): /search 301 via middleware — unblock DEV approuter boot", - "summary": "Restored the site frontend after a bad redirect setting; the /search shortcut now redirects reliably.", - "category": "Fix", - "mergedAt": "2026-09-02T00:43:35Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2100" - }, - { - "id": "tutorials-ims#2099", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2099, - "title": "feat(topics): tag-tree topics — CAP-served index + detail, concept enrichment, search fix", - "summary": "Rebuilt the Topics area with a browsable tag tree, per-topic detail pages enriched with related concepts, and a smarter search redirect.", - "category": "Feature", - "mergedAt": "2026-09-01T22:02:12Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2099" - }, - { - "id": "tutorials-ims#2098", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2098, - "title": "fix(#2097): scope QA notify workflow to default branch", - "summary": "The QA content-rebuild automation no longer misfires when work is pushed to non-default branches.", - "category": "Maintenance", - "mergedAt": "2026-09-01T20:10:29Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2098" - }, - { - "id": "tutorials-ims#2096", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2096, - "title": "feat(admin-ui): make Tutorials OP facets readable (concepts/community/images)", - "summary": "The admin Tutorials page now shows readable concept names, community descriptions, and image links instead of raw IDs.", - "category": "Feature", - "mergedAt": "2026-09-01T18:39:29Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2096" - }, - { - "id": "tutorials-ims#2095", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2095, - "title": "fix(categories): resolve namespaced entities for HANA backfill + seed classifier descriptions", - "summary": "Fixed the Categories facet staying empty by resolving entities correctly against SAP HANA and seeding classifier descriptions.", - "category": "Fix", - "mergedAt": "2026-09-01T18:39:11Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2095" - }, - { - "id": "tutorials-ims#2093", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2093, - "title": "fix(publish): gate category self-heal to avoid OOM on bulk publishes", - "summary": "Full content publishes no longer risk exhausting backend memory while auto-categorizing tutorials.", - "category": "Fix", - "mergedAt": "2026-09-01T15:15:27Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2093" - }, - { - "id": "tutorials-ims#2092", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2092, - "title": "fix(srv-qa): lazy-import category-classifier-llm to unbreak srv-qa boot", - "summary": "Deploy-stability fix so the QA content container boots reliably.", - "category": "Maintenance", - "mergedAt": "2026-08-31T21:29:34Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2092" - }, - { - "id": "tutorials-ims#2091", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2091, - "title": "fix(ci): allowlist srv-only publish-contributors + publish-validation-rules routes", - "summary": "Build-guard update covering the new contributor and validation-rule publish routes.", - "category": "Maintenance", - "mergedAt": "2026-08-31T21:29:22Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2091" - }, - { - "id": "tutorials-ims#2090", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2090, - "title": "Admin OP Phase 3: Knowledge-Graph facet", - "summary": "The admin Tutorials page gains a Knowledge-Graph facet surfacing the graph relationships computed nightly.", - "category": "Feature", - "mergedAt": "2026-08-31T20:30:02Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2090" - }, - { - "id": "tutorials-ims#2089", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2089, - "title": "Admin OP Phase 2: Media facet + Freshness report header", - "summary": "The admin Tutorials page adds a Media facet with object-store visibility plus a freshness run-history header.", - "category": "Feature", - "mergedAt": "2026-08-31T19:49:05Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2089" - }, - { - "id": "tutorials-ims#2088", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2088, - "title": "Admin OP Phase 1: fix empty Categories / Contributors / Validation facets", - "summary": "Fixed three empty facets — Categories, Contributors, and Validation — on the admin Tutorials page.", - "category": "Fix", - "mergedAt": "2026-08-31T19:08:22Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2088" - }, - { - "id": "tutorials-ims#2087", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2087, - "title": "fix(docs): unbreak VitePress build — backtick bare in gotchas.md", - "summary": "Fixed the developer documentation site build.", - "category": "Docs", - "mergedAt": "2026-08-31T15:29:27Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2087" - }, - { - "id": "tutorials-ims#2086", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2086, - "title": "docs: slim CLAUDE.md Top Gotchas (relocate detail to gotchas.md)", - "summary": "Streamlined the internal contributor guidance for faster, leaner tooling sessions.", - "category": "Maintenance", - "mergedAt": "2026-08-31T15:19:34Z", - "week": "2026-W36", - "weekStart": "2026-08-31", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2086" - }, - { - "id": "tutorials-ims#2084", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2084, - "title": "chore: sync main into DEV (reconcile hotfixes #2081 + #2083)", - "summary": "Reconciled two production hotfixes back into the development branch to keep branches in sync.", - "category": "Maintenance", - "mergedAt": "2026-08-29T06:56:28Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2084" - }, - { - "id": "tutorials-ims#2083", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2083, - "title": "fix(admin): Feature Flags Enable/Disable buttons (Unknown action import)", - "summary": "The Enable/Disable buttons on the admin Feature Flags page work again.", - "category": "Fix", - "mergedAt": "2026-08-29T06:45:56Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2083" - }, - { - "id": "tutorials-ims#2081", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2081, - "title": "fix(rebuild-content): fetch topic-clusters/featured-topics/topics-gallery/tags so homepage bands bake fresh", - "summary": "The homepage Explore 'topic clusters' band now shows fresh, curated topic data instead of falling back to a tutorials-only list.", - "category": "Fix", - "mergedAt": "2026-08-28T23:23:27Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2081" - }, - { - "id": "tutorials-ims#2080", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2080, - "title": "Release 1.20.1 → PROD", - "summary": "Shipped release 1.20.1 to production.", - "category": "Maintenance", - "mergedAt": "2026-08-28T21:07:50Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2080" - }, - { - "id": "tutorials-ims#2078", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2078, - "title": "chore(release): bump MTA 1.20.0 → 1.20.1 + refresh What's New digest", - "summary": "Release 1.20.1 preparation and What's New digest refresh.", - "category": "Maintenance", - "mergedAt": "2026-08-28T20:52:20Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2078" - }, - { - "id": "tutorials-ims#2079", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2079, - "title": "fix(homepage): boot-seed HomepageShelves; retire seed CSV + manual seed:thirdparty", - "summary": "Curated homepage shelf links (Prior Labs, Dremio, Hugging Face, and others) no longer disappear after a deployment.", - "category": "Fix", - "mergedAt": "2026-08-28T20:52:09Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2079" - }, - { - "id": "tutorials-ims#2076", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2076, - "title": "docs: register akamai-well-known-forward in sidebar (fix docs:build)", - "summary": "Corrected the developer-docs sidebar so a new operations runbook page publishes correctly.", - "category": "Docs", - "mergedAt": "2026-08-28T17:58:23Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2076" - }, - { - "id": "tutorials-ims#2075", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2075, - "title": "feat(approuter): complete .well-known MCP discovery surface (openid-config, mcp.json, WWW-Authenticate pointer)", - "summary": "External MCP clients such as the Claude and ChatGPT connectors can now auto-discover the platform's OAuth endpoints through a complete set of .well-known discovery documents.", - "category": "Feature", - "mergedAt": "2026-08-28T17:47:32Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2075" - }, - { - "id": "tutorials-ims#2074", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2074, - "title": "fix(freshness): calibrate prompt by severity so Check Freshness surfaces findings again", - "summary": "The admin Check Freshness tool once again surfaces potentially outdated API references instead of returning an empty report.", - "category": "Fix", - "mergedAt": "2026-08-28T16:15:34Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2074" - }, - { - "id": "tutorials-ims#2073", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2073, - "title": "fix(feature-flags): don't connect to db before model is loaded (fixes #2066 unit regression + latent boot bug)", - "summary": "Fixed a startup issue in the feature-flag system that could cause service errors before the data model finished loading.", - "category": "Fix", - "mergedAt": "2026-08-28T16:00:02Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2073" - }, - { - "id": "tutorials-ims#2072", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2072, - "title": "fix(me): AllCompletions/RecentActivity sign-in gate must check /auth/user JSON, not resp.ok", - "summary": "My Completions and Recent Activity now prompt you to sign in when your session has expired, instead of silently failing to load.", - "category": "Fix", - "mergedAt": "2026-08-28T14:41:55Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2072" - }, - { - "id": "tutorials-ims#2071", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2071, - "title": "fix(tokens): /me/tokens sign-in gate must check /auth/user JSON, not resp.ok", - "summary": "The personal access tokens page now shows a sign-in prompt when your session lapses, rather than a generic load error.", - "category": "Fix", - "mergedAt": "2026-08-28T14:34:04Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2071" - }, - { - "id": "tutorials-ims#2070", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2070, - "title": "fix(test): repair unit-suite fallout from flag→DB migration (WIP)", - "summary": "Internal test-suite repairs following the feature-flag configuration migration.", - "category": "Maintenance", - "mergedAt": "2026-08-28T13:47:42Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2070" - }, - { - "id": "tutorials-ims#2069", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2069, - "title": "fix(qa): slug-scope QA content publish + resilient commit + lock release", - "summary": "Made QA content republishing more reliable by scoping it to changed tutorials and hardening the publish step.", - "category": "Fix", - "mergedAt": "2026-08-28T13:47:08Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2069" - }, - { - "id": "tutorials-ims#2068", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2068, - "title": "fix(content): skip Option-B delta flag boot-seed under vitest", - "summary": "Test-environment fix so content fast-path defaults do not leak into the automated test suite.", - "category": "Maintenance", - "mergedAt": "2026-08-28T12:46:37Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2068" - }, - { - "id": "tutorials-ims#2066", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2066, - "title": "feat(feature-flags): migrate remaining 14 env flags to DB config (#2060)", - "summary": "Moved the remaining runtime feature flags to database-backed configuration so they are editable in admin and survive deployments.", - "category": "Maintenance", - "mergedAt": "2026-08-28T12:06:08Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2066" - }, - { - "id": "tutorials-ims#2064", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2064, - "title": "feat(content): default Option-B fast-path flags ON (seed ImsConfig if absent)", - "summary": "Content fast-path optimizations now default on and persist across deployments, keeping tutorial content updates fast.", - "category": "Performance", - "mergedAt": "2026-08-28T10:38:23Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2064" - }, - { - "id": "tutorials-ims#2062", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2062, - "title": "ci(rebuild-qa): add force-publish input to re-seed Option B ContentCurrent (QA)", - "summary": "Added a force-republish option to the QA content rebuild workflow.", - "category": "Maintenance", - "mergedAt": "2026-08-28T10:28:07Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2062" - }, - { - "id": "tutorials-ims#2061", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2061, - "title": "fix(content): move Option-B fast-path flags from env vars to DB config (ImsConfig)", - "summary": "Moved content fast-path settings to durable database configuration so they are no longer reset on deployment.", - "category": "Maintenance", - "mergedAt": "2026-08-28T10:27:42Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2061" - }, - { - "id": "tutorials-ims#2058", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2058, - "title": "Release 1.20.0 → PROD", - "summary": "Promoted the 1.20.0 release to production.", - "category": "Maintenance", - "mergedAt": "2026-08-27T20:41:46Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2058" - }, - { - "id": "tutorials-ims#2059", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2059, - "title": "chore: sync main into DEV (reconcile for 1.20.0 release)", - "summary": "Release housekeeping to keep the DEV and main branches in sync ahead of a release.", - "category": "Maintenance", - "mergedAt": "2026-08-27T20:41:22Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2059" - }, - { - "id": "tutorials-ims#2057", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2057, - "title": "perf(qa): reuse cached non-target content on QA slug-targeted rebuilds despite feed drift", - "summary": "QA single-tutorial content rebuilds are much faster now that untouched tutorials reuse cached content.", - "category": "Performance", - "mergedAt": "2026-08-27T19:30:20Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2057" - }, - { - "id": "tutorials-ims#2056", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2056, - "title": "fix(parsers): comment-aware section/intro extraction", - "summary": "Tutorials that disable a section with an HTML comment now render all their steps correctly, with no stray characters left on the page.", - "category": "Fix", - "mergedAt": "2026-08-27T19:12:29Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2056" - }, - { - "id": "tutorials-ims#2055", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2055, - "title": "chore(release): bump MTA 1.19.0 → 1.20.0 + refresh What's New digest", - "summary": "Release version bump and What's New digest refresh.", - "category": "Maintenance", - "mergedAt": "2026-08-27T18:10:53Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2055" - }, - { - "id": "tutorials-ims#2054", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2054, - "title": "fix(admin): readable Devtoberfest Signups report — week axis, labeled total, breakdowns (#2047)", - "summary": "Polished the Devtoberfest Signups report by hiding internal week indices, labeling the total, and correcting the week axis.", - "category": "Fix", - "mergedAt": "2026-08-27T17:47:13Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2054" - }, - { - "id": "tutorials-ims#2053", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2053, - "title": "fix(build/tags): emit mdFormat (category>value) slugs instead of display names", - "summary": "Fixed the tag feed to emit canonical category-value slugs instead of display names so CI tag validation works.", - "category": "Fix", - "mergedAt": "2026-08-27T17:23:59Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2053" - }, - { - "id": "tutorials-ims#2052", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2052, - "title": "feat(devtoberfest): rename \"Hit the Cat\" → \"Tag the Cat\" (#2042)", - "summary": "Renamed the Devtoberfest mini-game from 'Hit the Cat' to the friendlier 'Tag the Cat'.", - "category": "Feature", - "mergedAt": "2026-08-27T17:06:20Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2052" - }, - { - "id": "tutorials-ims#2051", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2051, - "title": "feat: add /build/tags tag-taxonomy feed for CI frontmatter validation", - "summary": "Added a build-time tag-taxonomy feed so downstream CI can validate tutorial frontmatter tags against the canonical list.", - "category": "Feature", - "mergedAt": "2026-08-27T14:17:59Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2051" - }, - { - "id": "tutorials-ims#2049", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2049, - "title": "feat(devtoberfest): Hit the Cat mini-game + gameboard task-type/bonus fixes (#2042)", - "summary": "Added a hidden Chrome-dino-style cat mini-game to the Devtoberfest home page that awards gameboard points to signed-in players.", - "category": "Feature", - "mergedAt": "2026-08-27T14:08:29Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2049" - }, - { - "id": "tutorials-ims#2050", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2050, - "title": "Devtoberfest Signups report: readable week axis, total KPI, region breakdown (#2047)", - "summary": "Made the Devtoberfest Signups admin report readable with a real week-date axis, a labeled total, and region/edition/role breakdowns.", - "category": "Feature", - "mergedAt": "2026-08-27T14:07:25Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2050" - }, - { - "id": "tutorials-ims#2048", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2048, - "title": "fix(devtoberfest-calendar): month grid fits at normal resolution (#2046)", - "summary": "Fixed the Devtoberfest month calendar overflowing the screen at normal resolution.", - "category": "Fix", - "mergedAt": "2026-08-27T13:57:08Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2048" - }, - { - "id": "tutorials-ims#2044", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2044, - "title": "Turn generated-content fast path ON by default (cherry-pick to main)", - "summary": "Cherry-picked the rebuild fast-path default to production ahead of the release train.", - "category": "Maintenance", - "mergedAt": "2026-08-26T22:19:47Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2044" - }, - { - "id": "tutorials-ims#2039", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2039, - "title": "Turn generated-content fast path ON by default (Workstream C follow-up)", - "summary": "Made the faster generated-content rebuild path the default, cutting warm rebuilds from about 56 seconds to 11.", - "category": "Performance", - "mergedAt": "2026-08-26T21:58:36Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2039" - }, - { - "id": "tutorials-ims#2043", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2043, - "title": "feat(admin-shell): page-search command palette (#2041)", - "summary": "Added a Ctrl/Cmd+K command palette to the admin console for jumping to any of its 50-plus pages.", - "category": "Feature", - "mergedAt": "2026-08-26T21:54:46Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2043" - }, - { - "id": "tutorials-ims#2038", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2038, - "title": "Release 1.19.0 → PROD (Option B content migration + bundled features)", - "summary": "Production release of the new content-model migration and bundled features, shipped safely behind flags.", - "category": "Maintenance", - "mergedAt": "2026-08-25T21:31:23Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2038" - }, - { - "id": "tutorials-ims#2037", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2037, - "title": "chore(release): bump MTA version to 1.19.0 for PROD release", - "summary": "Version bump for the production release carrying the content-model migration.", - "category": "Maintenance", - "mergedAt": "2026-08-25T21:10:14Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2037" - }, - { - "id": "tutorials-ims#2036", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2036, - "title": "fix(guard): mark Option B ContentCurrent slug lookups (fixes check-slug-lookups CI failure)", - "summary": "Fixed a slug-lookup build guard for the new content read paths.", - "category": "Maintenance", - "mergedAt": "2026-08-25T19:08:48Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2036" - }, - { - "id": "tutorials-ims#2033", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2033, - "title": "docs(CLAUDE): Option B content-model gotcha + rollout order", - "summary": "Documented the new content model, its feature flags, and the rollout order.", - "category": "Docs", - "mergedAt": "2026-08-25T18:25:49Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2033" - }, - { - "id": "tutorials-ims#2035", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2035, - "title": "fix(deploy): build + copy display-app into approuter static (/display-app/ 404)", - "summary": "Fixed /display-app/ returning 404 by building and shipping it alongside the approuter.", - "category": "Fix", - "mergedAt": "2026-08-25T18:25:26Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2035" - }, - { - "id": "tutorials-ims#2032", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2032, - "title": "feat: Option B reader sweep + carry-forward removal + rollback replay (Workstream D 6.2-6.5, 8.4)", - "summary": "Completed the new content model migration: all readers use the mutable current table and single-tutorial publishes become proportional to what changed, cutting publish time from minutes to under a second.", - "category": "Feature", - "mergedAt": "2026-08-25T16:03:37Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2032" - }, - { - "id": "tutorials-ims#2031", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2031, - "title": "feat(devtoberfest): deep-link URLs for sessions grid filters/search (#2030)", - "summary": "The Devtoberfest sessions page now supports shareable deep-link URLs for search, filters, and an open session panel.", - "category": "Feature", - "mergedAt": "2026-08-25T14:53:12Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2031" - }, - { - "id": "tutorials-ims#2028", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2028, - "title": "feat(serve): Option B read cutover + rollback replay (Workstream D, flag-gated, draft)", - "summary": "Flag-gated read cutover to the new content model, with rollback that replays history.", - "category": "Feature", - "mergedAt": "2026-08-25T12:59:08Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2028" - }, - { - "id": "tutorials-ims#2025", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2025, - "title": "fix(notify): dispatch source-repo rebuilds on both master and main", - "summary": "Fixed change notifications not firing for source repositories that default to the master branch, which had been quietly leaving content stale.", - "category": "Fix", - "mergedAt": "2026-08-25T11:52:08Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2025" - }, - { - "id": "tutorials-ims#2024", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2024, - "title": "fix(#2023): stop Hugo coercing yes/no quiz options to true/false", - "summary": "Fixed yes/no quiz options being silently turned into true/false by the frontmatter serializer.", - "category": "Fix", - "mergedAt": "2026-08-25T11:25:07Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2024" - }, - { - "id": "tutorials-ims#2021", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2021, - "title": "feat(db): Option B schema — ContentCurrent + ContentHistory (Workstream D, draft)", - "summary": "Added the new content data model (a mutable current table plus append-only history) as the foundation for much faster publishing.", - "category": "Feature", - "mergedAt": "2026-08-25T10:30:09Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2021" - }, - { - "id": "tutorials-ims#2020", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2020, - "title": "feat(rebuild): generated-content fast path — Workstream C wiring (flag-gated, draft)", - "summary": "Wired the rebuild fast path so single-tutorial rebuilds reuse cached content for the thousands of unchanged tutorials.", - "category": "Feature", - "mergedAt": "2026-08-25T10:29:55Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2020" - }, - { - "id": "tutorials-ims#2019", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2019, - "title": "feat(rebuild): generated-content cache — Workstream C (foundation, draft)", - "summary": "Foundation helpers for a fast rebuild path that reuses cached generated content.", - "category": "Feature", - "mergedAt": "2026-08-25T01:15:51Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2019" - }, - { - "id": "tutorials-ims#2018", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2018, - "title": "fix(fetch): unmask GraphQL discovery errors + loud REST fallback", - "summary": "Fixed a silent fallback to a slow tutorial-discovery path by surfacing GraphQL errors loudly.", - "category": "Fix", - "mergedAt": "2026-08-24T23:51:54Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2018" - }, - { - "id": "tutorials-ims#2017", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2017, - "title": "Design: slug-targeted delta rebuild (O(changed) end-to-end)", - "summary": "Design proposal to make single-tutorial rebuilds scale with the changed content instead of the whole corpus.", - "category": "Docs", - "mergedAt": "2026-08-24T23:44:33Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2017" - }, - { - "id": "tutorials-ims#2016", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2016, - "title": "perf(rebuild): cache node_modules to skip ~48s npm ci on unchanged lockfiles", - "summary": "Content rebuilds skip roughly 48 seconds of dependency install by caching node_modules when lockfiles are unchanged.", - "category": "Performance", - "mergedAt": "2026-08-24T23:44:21Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2016" - }, - { - "id": "tutorials-ims#2012", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2012, - "title": "freshness: feed tutorial context + SAP-aware rules to the scan", - "summary": "Improved the freshness scanner's advice by feeding it surrounding tutorial prose, frontmatter, and SAP/CAP-aware rules.", - "category": "Fix", - "mergedAt": "2026-08-24T21:03:46Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2012" - }, - { - "id": "tutorials-ims#2014", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2014, - "title": "Release 1.18.3 → main", - "summary": "Production release promoting DEV changes.", - "category": "Maintenance", - "mergedAt": "2026-08-24T20:34:03Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2014" - }, - { - "id": "tutorials-ims#2013", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2013, - "title": "chore(release): bump MTA version to 1.18.3", - "summary": "Version bump ahead of a production release.", - "category": "Maintenance", - "mergedAt": "2026-08-24T20:32:04Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2013" - }, - { - "id": "tutorials-ims#2011", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2011, - "title": "fix(rebuild): stop slug-targeted rebuilds from wiping verb/shelf pages", - "summary": "Fixed single-tutorial rebuilds from wiping the shelves on hub pages like /build/ and /learn/.", - "category": "Fix", - "mergedAt": "2026-08-24T19:07:16Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2011" - }, - { - "id": "tutorials-ims#2010", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2010, - "title": "docs: legacy Semaphore→IMS/AEM tag import process", - "summary": "Documented the legacy Semaphore-to-IMS/AEM tag import process for authors.", - "category": "Docs", - "mergedAt": "2026-08-24T17:54:11Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2010" - }, - { - "id": "tutorials-ims#2009", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2009, - "title": "feat(devtoberfest): deep-link URLs for calendar sessions/dates (#2006)", - "summary": "The Devtoberfest calendar now has shareable, restorable deep-link URLs for sessions, dates, ranges, and filters.", - "category": "Feature", - "mergedAt": "2026-08-24T14:27:21Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2009" - }, - { - "id": "tutorials-ims#2008", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2008, - "title": "feat(devtoberfest): show speakers on calendar session items (#2007)", - "summary": "Speaker names now appear directly on Devtoberfest calendar session items, not just in the detail popup.", - "category": "Feature", - "mergedAt": "2026-08-24T14:15:36Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2008" - }, - { - "id": "tutorials-ims#2003", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2003, - "title": "feat(devtoberfest): Markdown support in session abstract (calendar item details)", - "summary": "Devtoberfest session details now render Markdown formatting in the session abstract.", - "category": "Feature", - "mergedAt": "2026-08-24T11:25:40Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2003" - }, - { - "id": "tutorials-ims#2002", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2002, - "title": "fix(notifications): digest emails render 'N tutorials', not 'N s'", - "summary": "Fixed author-reminder digest emails that read 'N s' instead of 'N tutorials'.", - "category": "Fix", - "mergedAt": "2026-08-24T11:25:00Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2002" - }, - { - "id": "tutorials-ims#2001", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 2001, - "title": "fix(freshness): pass resolved embedding model to embed() (fixes ScheduledJobFailed)", - "summary": "Fixed a scheduled-job failure in the tutorial freshness embedding pipeline.", - "category": "Fix", - "mergedAt": "2026-08-24T11:24:36Z", - "week": "2026-W35", - "weekStart": "2026-08-24", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2001" - }, - { - "id": "tutorials-ims#1997", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1997, - "title": "Release 1.18.2 → main (PROD promotion)", - "summary": "Production release promoting DEV changes.", - "category": "Maintenance", - "mergedAt": "2026-08-23T19:09:46Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1997" - }, - { - "id": "tutorials-ims#1996", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1996, - "title": "chore(release): bump MTA version to 1.18.2 for PROD release", - "summary": "Version bump ahead of a production release.", - "category": "Maintenance", - "mergedAt": "2026-08-23T19:08:46Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1996" - }, - { - "id": "tutorials-ims#1995", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1995, - "title": "a11y: neutralize animations in scan + ratchet baseline to 0 critical/serious", - "summary": "Made the accessibility scan measure the settled page state and re-baselined to zero critical and serious issues.", - "category": "Maintenance", - "mergedAt": "2026-08-23T17:55:26Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1995" - }, - { - "id": "tutorials-ims#1994", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1994, - "title": "a11y: fix tutorial duplicate-banner regression + lengthen scan settle", - "summary": "Accessibility fix for a duplicate banner landmark on tutorial pages.", - "category": "Fix", - "mergedAt": "2026-08-23T16:46:07Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1994" - }, - { - "id": "tutorials-ims#1993", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1993, - "title": "feat(selfie): add 13 advocate frames + thumbnails", - "summary": "Added 13 new advocate cut-out frames to the Devtoberfest selfie photo booth.", - "category": "Feature", - "mergedAt": "2026-08-23T15:31:55Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1993" - }, - { - "id": "tutorials-ims#1992", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1992, - "title": "fix(prefs): guard size/width segmented-button emit on mount (#1980)", - "summary": "Minor fix so tutorial-preference controls don't redundantly re-apply their value on load.", - "category": "Fix", - "mergedAt": "2026-08-23T14:50:02Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1992" - }, - { - "id": "tutorials-ims#1991", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1991, - "title": "fix(tutorial-prefs): hand gestures navigate steps + calibrated head-pitch eye scroll (up/down)", - "summary": "Fixed the experimental camera controls so hand swipes move between steps and head-pitch scrolls both up and down.", - "category": "Fix", - "mergedAt": "2026-08-23T14:28:35Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1991" - }, - { - "id": "tutorials-ims#1990", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1990, - "title": "feat(prefs): add Super wide reading-width option (#1966)", - "summary": "Added a Super-wide reading-width option to tutorial preferences for people who want full-viewport content.", - "category": "Feature", - "mergedAt": "2026-08-23T14:17:11Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1990" - }, - { - "id": "tutorials-ims#1989", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1989, - "title": "a11y: duplicate-main + browse banner + figcaption contrast + concepts landmark", - "summary": "Accessibility fixes for duplicate page landmarks and caption contrast across the browse and concepts pages.", - "category": "Fix", - "mergedAt": "2026-08-23T14:00:07Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1989" - }, - { - "id": "tutorials-ims#1988", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1988, - "title": "a11y: ratchet baseline down after advocates/nav-progress fixes deployed", - "summary": "Tightened the accessibility baseline after the landmark fixes were deployed.", - "category": "Maintenance", - "mergedAt": "2026-08-23T13:59:57Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1988" - }, - { - "id": "tutorials-ims#1986", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1986, - "title": "feat(freshness): AI tutorial freshness detector (v1, reviewer-assist)", - "summary": "New AI-assisted freshness detector that flags stale code and dependencies in tutorials to authors, grounded against real SAP documentation.", - "category": "Feature", - "mergedAt": "2026-08-22T22:03:57Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1986" - }, - { - "id": "tutorials-ims#1985", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1985, - "title": "Camera input: accuracy fixes + per-user calibration (eye + hand)", - "summary": "Improved the accuracy of the experimental webcam eye-tracking and hand-gesture tutorial navigation, adding per-user calibration.", - "category": "Fix", - "mergedAt": "2026-08-22T21:36:22Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1985" - }, - { - "id": "tutorials-ims#1984", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1984, - "title": "a11y: fix advocate flip card (serious) + video-band redundant alt", - "summary": "Accessibility fixes to the developer-advocate flip cards and homepage video captions, including a latent keyboard-focus bug.", - "category": "Fix", - "mergedAt": "2026-08-22T17:50:28Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1984" - }, - { - "id": "tutorials-ims#1983", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1983, - "title": "a11y: exclude TrustArc banner from scan + make nav-progress decorative", - "summary": "Accessibility: excluded a third-party consent banner from the scan and marked the top loading bar as decorative.", - "category": "Fix", - "mergedAt": "2026-08-22T17:37:23Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1983" - }, - { - "id": "tutorials-ims#1982", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1982, - "title": "perf(prefs): subset OpenDyslexic web font ~115KB→~31KB (#1979)", - "summary": "Shrank the dyslexia-friendly web font by around 73% for faster loading.", - "category": "Performance", - "mergedAt": "2026-08-22T17:28:03Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1982" - }, - { - "id": "tutorials-ims#1978", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1978, - "title": "feat(prefs): tutorial reading preferences batch 2 (#1966)", - "summary": "Added a second batch of reading preferences to tutorials: text size and width, code size/wrap/copy-without-prompt, screenshot sizing, reduce-motion, and a dyslexia-friendly font.", - "category": "Feature", - "mergedAt": "2026-08-22T17:12:00Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1978" - }, - { - "id": "tutorials-ims#1981", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1981, - "title": "test(a11y): turn post-deploy axe scan into a regression gate", - "summary": "Turned the post-deploy accessibility scan into a real regression gate and fixed defects that made it collect no data.", - "category": "Maintenance", - "mergedAt": "2026-08-22T17:11:24Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1981" - }, - { - "id": "tutorials-ims#1977", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1977, - "title": "fix(tutorial-prefs): remove direct @ui5 SegmentedButton imports from island entry", - "summary": "Fixed a dark-mode island bug by removing a duplicate UI5 component import.", - "category": "Fix", - "mergedAt": "2026-08-22T15:55:22Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1977" - }, - { - "id": "tutorials-ims#1976", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1976, - "title": "Expand homepage topic clusters to KG multi-source content", - "summary": "Homepage topic clusters now surface all knowledge-graph content types — missions, learning journeys, blogs, videos, and events — not just tutorials.", - "category": "Feature", - "mergedAt": "2026-08-22T15:45:45Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1976" - }, - { - "id": "tutorials-ims#1975", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1975, - "title": "feat(mcp): Tier 2 hosted MCP tools — search_events + get_news_detail", - "summary": "Added two public MCP tools — event search and news detail — to the developers.sap.com hosted MCP surface.", - "category": "Feature", - "mergedAt": "2026-08-22T14:35:59Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1975" - }, - { - "id": "tutorials-ims#1974", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1974, - "title": "perf(navigator): SSR the chrome to kill the mount flash on /tutorial-navigator", - "summary": "Removed the layout jump on the tutorial navigator by server-rendering the full page chrome up front.", - "category": "Performance", - "mergedAt": "2026-08-22T14:25:24Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1974" - }, - { - "id": "tutorials-ims#1973", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1973, - "title": "fix(tutorial-prefs): reflect stored Header pref on popover (re)open (#1966)", - "summary": "Fixed the tutorial preferences dialog not showing the saved header setting when reopened.", - "category": "Fix", - "mergedAt": "2026-08-22T14:13:23Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1973" - }, - { - "id": "tutorials-ims#1971", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1971, - "title": "fix(ui5): heal dark-mode boot-order race (DEV dark mode unreadable)", - "summary": "Fixed dark mode rendering with light colors on the first page load.", - "category": "Fix", - "mergedAt": "2026-08-21T22:08:20Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1971" - }, - { - "id": "tutorials-ims#1970", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1970, - "title": "fix(tutorials): force-load lazy images before print (#1943)", - "summary": "Fixed the new Print feature printing blank images by loading lazy images before the print dialog opens.", - "category": "Fix", - "mergedAt": "2026-08-21T21:37:57Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1970" - }, - { - "id": "tutorials-ims#1969", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1969, - "title": "feat(display-prefs): tutorial-page display preferences (#1966)", - "summary": "Added a Display section to tutorial preferences for controlling header and footer chrome, with a compact treatment auto-applied on short screens.", - "category": "Feature", - "mergedAt": "2026-08-21T20:17:24Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1969" - }, - { - "id": "tutorials-ims#1967", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1967, - "title": "Attachment object-store pipeline: serve tutorial repo attachments like images (#1931)", - "summary": "Tutorial file attachments (.txt, .zip, .pdf, and more) are now served through the platform instead of returning 404s.", - "category": "Feature", - "mergedAt": "2026-08-21T19:31:26Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1967" - }, - { - "id": "tutorials-ims#1965", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1965, - "title": "feat(scanner): source-markdown scanner + fixer (#1963)", - "summary": "New tool that fixes malformed tutorial markdown at the source and opens a PR per repo, letting the render-time patches eventually be retired.", - "category": "Feature", - "mergedAt": "2026-08-21T19:06:55Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1965" - }, - { - "id": "tutorials-ims#1964", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1964, - "title": "feat(tutorials): Print / Save-as-PDF button (#1943)", - "summary": "Added a Print / Save-as-PDF button to tutorial pages so readers can save any tutorial as a PDF.", - "category": "Feature", - "mergedAt": "2026-08-21T17:21:03Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1964" - }, - { - "id": "tutorials-ims#1962", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1962, - "title": "fix(selfie): align background tests with renamed scene ids", - "summary": "Fixed tests after the selfie photo-booth backgrounds were renamed.", - "category": "Maintenance", - "mergedAt": "2026-08-21T15:59:58Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1962" - }, - { - "id": "tutorials-ims#1961", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1961, - "title": "fix(#1960): reclassify contentless tutorials to DELETED (datasphere & other legacy phantoms)", - "summary": "Removed phantom tutorials from search that had no published content and returned 404s when clicked.", - "category": "Fix", - "mergedAt": "2026-08-21T15:31:48Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1961" - }, - { - "id": "tutorials-ims#1958", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1958, - "title": "Release 1.18.1 → main", - "summary": "Production release promoting DEV changes.", - "category": "Maintenance", - "mergedAt": "2026-08-20T22:55:47Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1958" - }, - { - "id": "tutorials-ims#1959", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1959, - "title": "chore: sync main into DEV (reconcile selfie/csrf/puzzle) + 1.18.1", - "summary": "Synced the main branch back into DEV to keep the release merge conflict-free.", - "category": "Maintenance", - "mergedAt": "2026-08-20T22:55:21Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1959" - }, - { - "id": "tutorials-ims#1957", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1957, - "title": "chore(release): bump MTA version to 1.18.1", - "summary": "Version bump ahead of a release.", - "category": "Maintenance", - "mergedAt": "2026-08-20T22:43:49Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1957" - }, - { - "id": "tutorials-ims#1956", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1956, - "title": "docs(whats-new): weekly digest refresh (2026-08-14 → 08-20)", - "summary": "Refreshed the public What's New weekly digest.", - "category": "Docs", - "mergedAt": "2026-08-20T21:33:22Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1956" - }, - { - "id": "tutorials-ims#1955", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1955, - "title": "Rescue tutorial prose and screenshots trapped inside code blocks", - "summary": "Fixes tutorials where explanatory text and screenshots that followed a code sample inside a numbered step were mistakenly rendered as raw code, so those steps now read the way the author intended.", - "category": "Fix", - "mergedAt": "2026-08-20T21:21:30Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1955" - }, - { - "id": "tutorials-ims#1954", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1954, - "title": "Refresh the Devtoberfest Selfie backgrounds, stickers, and frames", - "summary": "Gives the Devtoberfest Selfie tool a fresh set of backgrounds, stickers, and advocate frames so your event selfies look current.", - "category": "Feature", - "mergedAt": "2026-08-20T19:53:08Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1954" - }, - { - "id": "tutorials-ims#1953", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1953, - "title": "docs: Devtoberfest selfie art update runbook", - "summary": "Adds an internal runbook explaining where the Devtoberfest Selfie art lives and how to swap in new backgrounds, stickers, and frames.", - "category": "Docs", - "mergedAt": "2026-08-20T19:52:57Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1953" - }, - { - "id": "tutorials-ims#1952", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1952, - "title": "docs: register ai-skills-catalog page in sidebar", - "summary": "Registers the new AI Skills Catalog page in the documentation sidebar so it is easy to find.", - "category": "Docs", - "mergedAt": "2026-08-20T16:10:03Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1952" - }, - { - "id": "tutorials-ims#1950", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1950, - "title": "docs: AI Skills Catalog (internal AI capabilities reference)", - "summary": "Adds an internal reference page cataloguing every AI capability across the tutorials platform, from Joule chat tools to the knowledge-graph jobs.", - "category": "Docs", - "mergedAt": "2026-08-20T15:38:06Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1950" - }, - { - "id": "tutorials-ims#1951", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1951, - "title": "Restore group and mission completion tracking", - "summary": "Restores automatic credit for completing tutorial groups and missions, so finishing all the tutorials in a learning path once again marks the whole path complete.", - "category": "Fix", - "mergedAt": "2026-08-20T15:37:26Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1951" - }, - { - "id": "tutorials-ims#1949", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1949, - "title": "Grade submitted code against the stated goal, not the sample answer", - "summary": "Makes the AI code-check grader judge your answer against what the exercise actually asks for rather than nitpicking details of the reference solution, so correct submissions are no longer rejected over unrequested specifics.", - "category": "Fix", - "mergedAt": "2026-08-20T15:26:33Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1949" - }, - { - "id": "tutorials-ims#1947", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1947, - "title": "Refresh cached puzzle answers instead of trusting stale copies", - "summary": "Fixes puzzle tutorials where edited answers were ignored, so updated puzzle solutions now validate correctly on the live site.", - "category": "Fix", - "mergedAt": "2026-08-20T15:16:10Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1947" - }, - { - "id": "tutorials-ims#1948", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1948, - "title": "Enable search in the QA tutorial preview site", - "summary": "Makes tutorial search work again on the QA author-preview channel so authors can find and open the tutorial they are searching for.", - "category": "Fix", - "mergedAt": "2026-08-20T15:14:34Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1948" - }, - { - "id": "tutorials-ims#1946", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1946, - "title": "Redirect QA group and mission pages to production", - "summary": "Replaces a raw error on QA-preview group and mission pages with a graceful redirect to the live page, and shows a friendly error page when a catalog page can't render.", - "category": "Fix", - "mergedAt": "2026-08-20T15:03:19Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1946" - }, - { - "id": "tutorials-ims#1945", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1945, - "title": "Show titles and links on Featured Missions cards", - "summary": "Fixes the Featured Missions cards on the Tutorial Navigator that were rendering blank, so they once again show their title, description, and link.", - "category": "Fix", - "mergedAt": "2026-08-20T14:52:37Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1945" - }, - { - "id": "tutorials-ims#1944", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1944, - "title": "Show correct acronym casing on group and mission tag chips", - "summary": "Fixes tag chips on group and mission pages so acronyms like 'SAP BTP Cockpit' display with proper capitalization instead of 'Sap Btp Cockpit'.", - "category": "Fix", - "mergedAt": "2026-08-20T14:48:07Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1944" - }, - { - "id": "tutorials-ims#1936", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1936, - "title": "Render deeply-indented code blocks with syntax highlighting", - "summary": "Fixes hundreds of tutorials where code blocks indented inside list steps showed their raw backtick fences instead of a proper highlighted code window.", - "category": "Fix", - "mergedAt": "2026-08-20T12:51:44Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1936" - }, - { - "id": "tutorials-ims#1935", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1935, - "title": "Let puzzle designers toggle grid squares back to white", - "summary": "Fixes the admin crossword puzzle designer so clicking a black grid square turns it white again, unblocking puzzle layout work.", - "category": "Fix", - "mergedAt": "2026-08-20T12:38:20Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1935" - }, - { - "id": "tutorials-ims#1933", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1933, - "title": "Stop treating edge errors as expired sessions on photo upload", - "summary": "Fixes Petoberfest photo uploads behind the CDN that were reloading the page instead of surfacing the real error, so upload failures now report a meaningful message.", - "category": "Fix", - "mergedAt": "2026-08-20T12:25:51Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1933" - }, - { - "id": "tutorials-ims#1934", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1934, - "title": "Bound memory use during content publishing", - "summary": "Stops content rebuilds from crashing on out-of-memory by no longer loading the entire catalog's content into memory during publish, making large publishes reliable.", - "category": "Fix", - "mergedAt": "2026-08-20T12:07:20Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1934" - }, - { - "id": "tutorials-ims#1929", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1929, - "title": "Release 1.18.0 to production", - "summary": "Ships the 1.18.0 production release, bundling the self-service token page, Devtoberfest and Petoberfest features, and a batch of fixes to developers.sap.com.", - "category": "Maintenance", - "mergedAt": "2026-08-19T21:33:49Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1929" - }, - { - "id": "tutorials-ims#1928", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1928, - "title": "Bump release version to 1.18.0", - "summary": "Bumps the project version to 1.18.0 ahead of the production promotion.", - "category": "Maintenance", - "mergedAt": "2026-08-19T21:30:36Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1928" - }, - { - "id": "tutorials-ims#1927", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1927, - "title": "Unblock the documentation build", - "summary": "Fixes the documentation build that was failing on a link pointing to a live app route rather than a doc page.", - "category": "Maintenance", - "mergedAt": "2026-08-19T20:41:02Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1927" - }, - { - "id": "tutorials-ims#1926", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1926, - "title": "Make scavenger-hunt clue captions readable", - "summary": "Gives the floating Devtoberfest scavenger-hunt clue captions a solid background so the clue text is readable against the page behind it.", - "category": "Fix", - "mergedAt": "2026-08-19T20:30:06Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1926" - }, - { - "id": "tutorials-ims#1925", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1925, - "title": "Show authored tutorials in the SAGE 'My Tutorials' panel", - "summary": "Fixes the 'My Tutorials' panel so tutorials you authored show up, not just ones where you match on email or name.", - "category": "Fix", - "mergedAt": "2026-08-19T20:28:03Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1925" - }, - { - "id": "tutorials-ims#1924", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1924, - "title": "Allowlist puzzle routes in the QA route-drift guard", - "summary": "Registers the new puzzle content routes with the internal build guard that keeps the QA preview site in sync, turning the build green again.", - "category": "Maintenance", - "mergedAt": "2026-08-19T18:54:02Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1924" - }, - { - "id": "tutorials-ims#1922", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1922, - "title": "Fix advocate photo uploads behind the CDN", - "summary": "Switches advocate photo uploads to a CDN-friendly format so they succeed on developers.sap.com and report clear errors when something goes wrong.", - "category": "Fix", - "mergedAt": "2026-08-19T18:23:43Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1922" - }, - { - "id": "tutorials-ims#1923", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1923, - "title": "Add a /puzzles/ index page and admin link", - "summary": "Adds a proper puzzles landing page listing every puzzle, replacing the 404 that used to appear at /puzzles/.", - "category": "Fix", - "mergedAt": "2026-08-19T18:23:07Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1923" - }, - { - "id": "tutorials-ims#1921", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1921, - "title": "Let authors add intro text to puzzles and Petoberfest", - "summary": "Lets authors add formatted intro text with links to puzzle and Petoberfest pages, so participants get clear instructions on how to take part.", - "category": "Feature", - "mergedAt": "2026-08-19T18:07:20Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1921" - }, - { - "id": "tutorials-ims#1919", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1919, - "title": "Serve puzzle pages dynamically", - "summary": "Fixes newly created puzzles that returned a 404 by serving every puzzle page dynamically from the catalog instead of relying on hand-authored files.", - "category": "Fix", - "mergedAt": "2026-08-19T18:00:16Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1919" - }, - { - "id": "tutorials-ims#1920", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1920, - "title": "Fix Petoberfest photo uploads behind the CDN", - "summary": "Fixes Petoberfest pet-photo uploads that failed silently on developers.sap.com by switching to a CDN-friendly upload format and surfacing errors.", - "category": "Fix", - "mergedAt": "2026-08-19T17:58:11Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1920" - }, - { - "id": "tutorials-ims#1918", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1918, - "title": "Let users withdraw their own Petoberfest photo", - "summary": "Lets Petoberfest participants withdraw a photo they uploaded so it no longer appears, even after it was approved.", - "category": "Feature", - "mergedAt": "2026-08-19T17:53:11Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1918" - }, - { - "id": "tutorials-ims#1917", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1917, - "title": "Hide the Petoberfest upload form from logged-out visitors", - "summary": "Fixes the Petoberfest page so anonymous visitors see a sign-in prompt instead of the upload form.", - "category": "Fix", - "mergedAt": "2026-08-19T17:51:02Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1917" - }, - { - "id": "tutorials-ims#1916", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1916, - "title": "Randomize the Petoberfest slideshow order", - "summary": "Shuffles the Petoberfest photo slideshow on each visit so it's no longer always the newest uploads first.", - "category": "Feature", - "mergedAt": "2026-08-19T17:27:27Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1916" - }, - { - "id": "tutorials-ims#1915", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1915, - "title": "Repair puzzle JSON import in the admin builder", - "summary": "Fixes the admin puzzle builder so importing a puzzle JSON file after creating a new puzzle actually loads it.", - "category": "Fix", - "mergedAt": "2026-08-19T17:07:00Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1915" - }, - { - "id": "tutorials-ims#1913", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1913, - "title": "Add Devtoberfest scavenger-hunt clues", - "summary": "Adds three hidden Devtoberfest scavenger-hunt clues, one each on the home, AI, and API docs pages, featuring SAP developer advocates.", - "category": "Feature", - "mergedAt": "2026-08-19T16:46:05Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1913" - }, - { - "id": "tutorials-ims#1907", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1907, - "title": "Prompt re-login when a session has expired", - "summary": "Fixes the tutorial step 'Done' button so that in an expired session it prompts you to sign in again instead of silently failing to record your progress.", - "category": "Fix", - "mergedAt": "2026-08-19T15:49:07Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1907" - }, - { - "id": "tutorials-ims#1906", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1906, - "title": "Keep the quiz verdict badge round", - "summary": "Fixes the per-question pass/fail badge in tutorial quizzes so it stays a neat circle next to long questions instead of squishing into an oval.", - "category": "Fix", - "mergedAt": "2026-08-19T15:16:51Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1906" - }, - { - "id": "tutorials-ims#1903", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1903, - "title": "Release 1.17.0 to production", - "summary": "Ships the 1.17.0 production release, bringing the self-service token page, image persistence, and a batch of fixes to developers.sap.com.", - "category": "Maintenance", - "mergedAt": "2026-08-18T22:01:43Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1903" - }, - { - "id": "tutorials-ims#1902", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1902, - "title": "chore(release): bump MTA version to 1.17.0 for PROD release", - "summary": "Prepares the platform's next release version so the latest batch of improvements can roll out to production.", - "category": "Maintenance", - "mergedAt": "2026-08-18T22:01:24Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1902" - }, - { - "id": "tutorials-ims#1901", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1901, - "title": "Fix build check for the new token page", - "summary": "Fixes an internal build check so the new personal access token page builds and ships cleanly.", - "category": "Maintenance", - "mergedAt": "2026-08-18T20:40:52Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1901" - }, - { - "id": "tutorials-ims#1900", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1900, - "title": "Publish skills to the SAP AI Skills Library", - "summary": "Publishes the platform's AI skills (like the knowledge-graph builder and the What's New generator) so you can discover and install them into tools like Claude Code, Cursor, and Codex via the SAP AI Skills Library.", - "category": "Docs", - "mergedAt": "2026-08-18T18:53:31Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1900" - }, - { - "id": "tutorials-ims#1894", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1894, - "title": "fix(deploy): pin tutorials-srv-qa memory to 1536M (#1893)", - "summary": "Gives the QA content service enough memory to finish large content rebuilds without crashing, keeping the QA preview channel dependable.", - "category": "Maintenance", - "mergedAt": "2026-08-18T18:53:15Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1894" - }, - { - "id": "tutorials-ims#1899", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1899, - "title": "Self-service page to create MCP access tokens", - "summary": "Adds a self-service page at /me/tokens where you can create, view, and revoke your own personal access tokens for the hosted MCP server, without needing admin access.", - "category": "Feature", - "mergedAt": "2026-08-18T18:52:57Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1899" - }, - { - "id": "tutorials-ims#1898", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1898, - "title": "Enable desktop MCP sign-in (Joule Desktop)", - "summary": "Lets desktop MCP tools such as Joule Desktop complete sign-in through their local callback, so connecting them to the platform's MCP server works reliably.", - "category": "Fix", - "mergedAt": "2026-08-18T18:14:04Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1898" - }, - { - "id": "tutorials-ims#1896", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1896, - "title": "Keyword search for Devtoberfest sessions", - "summary": "Adds a keyword search box to the Devtoberfest sessions page that matches across session titles, abstracts, and speaker details, and fixes the Join banner so you can find the right session faster.", - "category": "Feature", - "mergedAt": "2026-08-18T14:51:31Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1896" - }, - { - "id": "tutorials-ims#1892", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1892, - "title": "Fix the tutorial feedback form", - "summary": "Repairs the tutorial feedback form so the detailed-feedback popup opens and submissions go through, letting you share feedback on tutorials again.", - "category": "Fix", - "mergedAt": "2026-08-18T11:07:23Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1892" - }, - { - "id": "tutorials-ims#1891", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1891, - "title": "Tutorial images self-populate the image store", - "summary": "Makes the platform automatically save tutorial images to its own store the first time they're requested, so images keep loading even when the original source is unavailable.", - "category": "Feature", - "mergedAt": "2026-08-18T11:06:17Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1891" - }, - { - "id": "tutorials-ims#1887", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1887, - "title": "fix(ci): allowlist dark-launched image routes in srv-qa route-drift guard", - "summary": "Updates an internal build check to recognize the new image-serving routes so continuous integration passes.", - "category": "Maintenance", - "mergedAt": "2026-08-18T03:42:45Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1887" - }, - { - "id": "tutorials-ims#1886", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1886, - "title": "Release 1.16.0 — DEV → main (PROD promotion)", - "summary": "Promotes a batch of features and fixes, including durable tutorial-image storage and Joule's What's New support, to production.", - "category": "Maintenance", - "mergedAt": "2026-08-18T02:32:11Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1886" - }, - { - "id": "tutorials-ims#1885", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1885, - "title": "chore(release): bump MTA version to 1.16.0 for PROD release", - "summary": "Prepares the release version ahead of a production rollout that adds durable tutorial-image storage.", - "category": "Maintenance", - "mergedAt": "2026-08-18T02:13:53Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1885" - }, - { - "id": "tutorials-ims#1884", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1884, - "title": "Heal broken tutorial images in the store", - "summary": "Adds a way to force-refresh tutorial images that were saved incompletely, cleaning up broken entries so those images display correctly.", - "category": "Fix", - "mergedAt": "2026-08-18T01:41:45Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1884" - }, - { - "id": "tutorials-ims#1883", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1883, - "title": "Fix tutorial image uploads to storage", - "summary": "Fixes a startup configuration gap that was causing tutorial-image uploads to storage to fail, so images now persist as intended.", - "category": "Fix", - "mergedAt": "2026-08-18T01:32:46Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1883" - }, - { - "id": "tutorials-ims#1881", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1881, - "title": "Store tutorial images independently of GitHub", - "summary": "Lets the platform ingest and store tutorial images directly, plus a backfill for existing ones, so tutorial screenshots no longer depend on fetching from GitHub at page-load time.", - "category": "Feature", - "mergedAt": "2026-08-18T00:31:16Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1881" - }, - { - "id": "tutorials-ims#1880", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1880, - "title": "Fix empty Featured Missions carousel on the homepage", - "summary": "Fixes the homepage Featured Missions carousel that had stopped showing any cards, so featured missions appear again.", - "category": "Fix", - "mergedAt": "2026-08-17T22:36:46Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1880" - }, - { - "id": "tutorials-ims#1879", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1879, - "title": "Fix empty tutorial image store", - "summary": "Fixes an issue that prevented tutorial images from ever being written to storage, so the image store now populates correctly.", - "category": "Fix", - "mergedAt": "2026-08-17T22:36:36Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1879" - }, - { - "id": "tutorials-ims#1878", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1878, - "title": "Store tutorial images in Object Store and fix boot crash", - "summary": "Moves tutorial-image storage to BTP Object Store and fixes a startup crash, so the service boots reliably and images are stored in the right place.", - "category": "Fix", - "mergedAt": "2026-08-17T21:00:00Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1878" - }, - { - "id": "tutorials-ims#1877", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1877, - "title": "Persist tutorial images with GitHub fallback", - "summary": "Stores tutorial images durably and serves them from the platform's own store, falling back to GitHub only when needed, so tutorial screenshots stay available even during GitHub outages or rate limits.", - "category": "Feature", - "mergedAt": "2026-08-17T19:30:41Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1877" - }, - { - "id": "tutorials-ims#1876", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1876, - "title": "Fix product tag filtering in the Tutorial Navigator", - "summary": "Fixes product-tag deep links in the Tutorial Navigator so clicking a product now shows all of that product's tutorials instead of just a subset.", - "category": "Fix", - "mergedAt": "2026-08-17T17:29:18Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1876" - }, - { - "id": "tutorials-ims#1873", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1873, - "title": "fix(#1859): register ChatSettings.whatsNewEnabled feature flag (DEV CI green)", - "summary": "Registers the What's New chat setting in the internal feature-flag registry to keep configuration consistent and tests passing.", - "category": "Maintenance", - "mergedAt": "2026-08-17T16:58:53Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1873" - }, - { - "id": "tutorials-ims#1872", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1872, - "title": "Collapsible 'More from author' section", - "summary": "Makes the 'More from author' section on tutorial pages collapsible and closed by default, giving you a cleaner reading view while keeping the related tutorials one click away.", - "category": "Feature", - "mergedAt": "2026-08-17T16:58:30Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1872" - }, - { - "id": "tutorials-ims#1874", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1874, - "title": "Reduce layout shift on the Browse page", - "summary": "Eliminates the remaining layout shift on the Browse page by loading card styling up front, so cards no longer jump around as the page loads.", - "category": "Performance", - "mergedAt": "2026-08-17T16:58:07Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1874" - }, - { - "id": "tutorials-ims#1875", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1875, - "title": "Restore the Mission crumb in tutorial breadcrumbs", - "summary": "Restores the missing Mission entry in tutorial breadcrumbs, so you can navigate back up to the mission when you reached a tutorial through one.", - "category": "Fix", - "mergedAt": "2026-08-17T16:57:39Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1875" - }, - { - "id": "tutorials-ims#1871", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1871, - "title": "Fix breadcrumb separator on cross-linked tutorials", - "summary": "Fixes a missing separator in the breadcrumb when you open a tutorial from a group or mission link, so the trail reads clearly.", - "category": "Fix", - "mergedAt": "2026-08-17T16:56:38Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1871" - }, - { - "id": "tutorials-ims#1870", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1870, - "title": "docs(spec): persist tutorial images in Object Store (decouple from GitHub)", - "summary": "Documents the design for storing tutorial images in Object Store so they no longer depend on GitHub at request time.", - "category": "Docs", - "mergedAt": "2026-08-17T16:24:49Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1870" - }, - { - "id": "tutorials-ims#1868", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1868, - "title": "Fix tutorial images failing to load on mobile", - "summary": "Fixes tutorial images that were failing to load on mobile devices due to rate-limiting on mobile-sized image variants, so screenshots now render on phones and tablets.", - "category": "Fix", - "mergedAt": "2026-08-17T16:24:37Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1868" - }, - { - "id": "tutorials-ims#1867", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1867, - "title": "test(#1614): fix DEV CI — resolve provisioned user by sapId not uuid", - "summary": "Fixes an internal test to look up users the correct way, keeping the test suite green.", - "category": "Maintenance", - "mergedAt": "2026-08-17T16:24:10Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1867" - }, - { - "id": "tutorials-ims#1863", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1863, - "title": "Ask Joule what's new", - "summary": "Adds a Joule capability so you can ask what's new and get the latest platform updates from the What's New digest instead of a refusal.", - "category": "Feature", - "mergedAt": "2026-08-17T13:25:01Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1863" - }, - { - "id": "tutorials-ims#1862", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1862, - "title": "Add tooltips to header toolbar icons", - "summary": "Adds hover tooltips to all the icons in the top-right header bar, so it's clear what each button does.", - "category": "Fix", - "mergedAt": "2026-08-17T12:33:11Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1862" - }, - { - "id": "tutorials-ims#1861", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1861, - "title": "Fix account-linking save error for new users", - "summary": "Fixes an error that stopped some new users from saving their community profile link on first sign-in, so account linking now works for everyone.", - "category": "Fix", - "mergedAt": "2026-08-17T12:32:02Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1861" - }, - { - "id": "tutorials-ims#1860", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1860, - "title": "Redirect legacy sitemap URLs", - "summary": "Redirects old sitemap URLs left over from the previous platform to the current sitemap, so search engines can crawl and index tutorials again.", - "category": "Fix", - "mergedAt": "2026-08-17T10:51:41Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1860" - }, - { - "id": "tutorials-ims#1856", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1856, - "title": "Fix broken images in the 'You will learn' section", - "summary": "Fixes broken images in the 'You will learn' section of tutorials so those screenshots display instead of returning 404s.", - "category": "Fix", - "mergedAt": "2026-08-17T10:30:36Z", - "week": "2026-W34", - "weekStart": "2026-08-17", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1856" - }, - { - "id": "tutorials-ims#1855", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1855, - "title": "Release with performance, accessibility, and SEO improvements", - "summary": "Ships a batch of performance, accessibility, and SEO improvements to production, including much faster tutorial page loads, a lighter startup bundle, and better search-engine visibility.", - "category": "Maintenance", - "mergedAt": "2026-08-16T20:23:11Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1855" - }, - { - "id": "tutorials-ims#1853", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1853, - "title": "docs(sidebar): register author-admin-access page (fix Deploy Docs CI)", - "summary": "Adds a missing documentation page to the docs sidebar so it's reachable in the developer docs.", - "category": "Docs", - "mergedAt": "2026-08-16T20:22:57Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1853" - }, - { - "id": "tutorials-ims#1852", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1852, - "title": "Steadier layout on the Browse page", - "summary": "Category chips on the Browse page cards no longer cause the page to jump around as it loads, giving you a smoother, more stable browsing experience.", - "category": "Performance", - "mergedAt": "2026-08-16T19:16:17Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1852" - }, - { - "id": "tutorials-ims#1851", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1851, - "title": "Reliable cache-busting for the nav dropdown and concepts filter", - "summary": "The navigation dropdown and concepts filter now refresh reliably after updates, so you always see the latest version instead of a stale cached one.", - "category": "Fix", - "mergedAt": "2026-08-16T19:15:53Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1851" - }, - { - "id": "tutorials-ims#1850", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1850, - "title": "Restore stable tutorial navigator layout", - "summary": "The tutorial navigator page now loads with a steady layout again, reversing an earlier experiment that had caused the content to shift as it appeared.", - "category": "Performance", - "mergedAt": "2026-08-16T17:41:15Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1850" - }, - { - "id": "tutorials-ims#1849", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1849, - "title": "Correct asset fingerprint detection in deploy checks", - "summary": "Fixed an internal deploy safety check so that correctly versioned page assets are no longer mistakenly flagged, keeping deployments smooth and dependable.", - "category": "Fix", - "mergedAt": "2026-08-16T17:40:19Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1849" - }, - { - "id": "tutorials-ims#1848", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1848, - "title": "Eliminate layout shift on the tutorial navigator", - "summary": "The tutorial navigator cards now reserve their space up front, so the page no longer visibly reflows while loading.", - "category": "Performance", - "mergedAt": "2026-08-16T16:36:21Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1848" - }, - { - "id": "tutorials-ims#1847", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1847, - "title": "Lighter page load by trimming unused UI themes", - "summary": "Removed about 1.4 MB of unused theme data from the page bundle, so tutorial and browse pages load noticeably faster.", - "category": "Performance", - "mergedAt": "2026-08-16T15:22:10Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1847" - }, - { - "id": "tutorials-ims#1846", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1846, - "title": "Load the picture-in-picture player only when needed", - "summary": "The picture-in-picture tutorial player (~1.2 MB) now loads only when you actually open it, making every tutorial page load faster by default.", - "category": "Performance", - "mergedAt": "2026-08-16T15:21:48Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1846" - }, - { - "id": "tutorials-ims#1845", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1845, - "title": "Accessibility improvements across pages", - "summary": "Resolved several accessibility issues around progress indicators, image alt text, and control labels so the site works better with screen readers and assistive tech.", - "category": "Fix", - "mergedAt": "2026-08-16T14:55:13Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1845" - }, - { - "id": "tutorials-ims#1844", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1844, - "title": "Improve link text and crawlable links for SEO", - "summary": "Fixed shared links so search engines can crawl them properly and read meaningful link text, improving how tutorial pages surface in search results.", - "category": "Fix", - "mergedAt": "2026-08-16T14:51:24Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1844" - }, - { - "id": "tutorials-ims#1841", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1841, - "title": "Faster loading of non-critical styles and third-party scripts", - "summary": "Optimized how the consent banner and non-essential stylesheets load, shaving render-blocking delays off page loads.", - "category": "Performance", - "mergedAt": "2026-08-16T14:50:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1841" - }, - { - "id": "tutorials-ims#1842", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1842, - "title": "Stop the Browse page from jumping while it loads", - "summary": "Front-loaded the Browse page styling so the layout settles immediately instead of shifting as content appears, for a much steadier first view.", - "category": "Performance", - "mergedAt": "2026-08-16T14:50:07Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1842" - }, - { - "id": "tutorials-ims#1843", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1843, - "title": "Defer non-essential scripts to speed up first interaction", - "summary": "The tutorial navigator and picture-in-picture button now initialize after the page is interactive, reducing the time before you can start using the page.", - "category": "Performance", - "mergedAt": "2026-08-16T14:49:37Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1843" - }, - { - "id": "tutorials-ims#1840", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1840, - "title": "Correct group shown in tutorial breadcrumbs", - "summary": "Tutorials that also belong to a special event mission now show their real learning group in the breadcrumb and navigation, so you can find your way around a series correctly.", - "category": "Fix", - "mergedAt": "2026-08-16T13:17:38Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1840" - }, - { - "id": "tutorials-ims#1839", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1839, - "title": "Exclude specific accounts when granting author admin access", - "summary": "Added an option to skip specific accounts (like shared group mailboxes) when bulk-granting admin access to tutorial authors, giving admins finer control.", - "category": "Feature", - "mergedAt": "2026-08-16T13:05:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1839" - }, - { - "id": "tutorials-ims#1838", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1838, - "title": "Explain the author console 403 as a role assignment gap", - "summary": "Documented that authors seeing a 403 on the Author Console need the Admin role collection assigned, and provided a helper to grant it.", - "category": "Docs", - "mergedAt": "2026-08-16T12:45:11Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1838" - }, - { - "id": "tutorials-ims#1835", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1835, - "title": "Fix puzzle builder save and import", - "summary": "The admin puzzle builder now saves reliably when grid dimensions are entered and its Import button works again, so authors can build puzzles without hitting validation errors.", - "category": "Fix", - "mergedAt": "2026-08-16T12:09:25Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1835" - }, - { - "id": "tutorials-ims#1832", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1832, - "title": "Remove dead references to the retired rebuild push", - "summary": "Cleaned up leftover configuration referencing a retired internal content-push mechanism, keeping the deployment setup tidy and consistent.", - "category": "Maintenance", - "mergedAt": "2026-08-16T11:47:11Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1832" - }, - { - "id": "tutorials-ims#1831", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1831, - "title": "Serve /llms.txt dynamically from the database", - "summary": "The /llms.txt file is now served from the content store like its companion pages, making it easier to keep up to date.", - "category": "Maintenance", - "mergedAt": "2026-08-16T11:47:00Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1831" - }, - { - "id": "tutorials-ims#1830", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1830, - "title": "Update tests for the database-only content rebuild", - "summary": "Updated internal tests to match the new content-rebuild process that renders pages against already-deployed assets.", - "category": "Maintenance", - "mergedAt": "2026-08-16T11:46:33Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1830" - }, - { - "id": "tutorials-ims#1829", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1829, - "title": "Content rebuilds go database-only and stop clobbering deployed assets", - "summary": "Reworked content rebuilds so admin edits and refreshes update the database only, ending the recurring problem where a rebuild could overwrite freshly deployed site assets.", - "category": "Maintenance", - "mergedAt": "2026-08-16T01:21:59Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1829" - }, - { - "id": "tutorials-ims#1827", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1827, - "title": "Restore the developer advocate detail route", - "summary": "Fixed an internal routing gap so per-advocate detail pages are served correctly after the content-serving migration.", - "category": "Fix", - "mergedAt": "2026-08-15T22:08:25Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1827" - }, - { - "id": "tutorials-ims#1826", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1826, - "title": "Groundwork for decoupling assets from content rebuilds", - "summary": "Added the plumbing to let content rebuilds render pages against the currently deployed assets, a preparatory step with no visible change yet.", - "category": "Maintenance", - "mergedAt": "2026-08-15T21:27:37Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1826" - }, - { - "id": "tutorials-ims#1825", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1825, - "title": "Serve advocate detail pages dynamically from the database", - "summary": "Per-advocate detail pages now come from the dynamic content store, so admin edits to advocate profiles show up reliably.", - "category": "Maintenance", - "mergedAt": "2026-08-15T21:17:13Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1825" - }, - { - "id": "tutorials-ims#1824", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1824, - "title": "Fix routing drift for homepage and author pages", - "summary": "Resolved an internal routing mismatch introduced when the homepage and author pages moved to dynamic serving, keeping the build checks green.", - "category": "Fix", - "mergedAt": "2026-08-15T21:17:03Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1824" - }, - { - "id": "tutorials-ims#1823", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1823, - "title": "Serve author pages dynamically from the database", - "summary": "The roughly 150 per-author pages now come from the dynamic content store, so author profile updates stay fresh and reliable.", - "category": "Maintenance", - "mergedAt": "2026-08-15T20:54:15Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1823" - }, - { - "id": "tutorials-ims#1822", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1822, - "title": "Serve the homepage from the database and drop the restart workaround", - "summary": "The homepage is now served dynamically from the content store, eliminating the post-deploy restart that had been needed to avoid stale content.", - "category": "Maintenance", - "mergedAt": "2026-08-15T20:25:04Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1822" - }, - { - "id": "tutorials-ims#1821", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1821, - "title": "Fix crawlable links and link text on shared popovers", - "summary": "Fixed the glossary and preferences popover links so search engines can crawl them and their text is meaningful, improving SEO across pages.", - "category": "Fix", - "mergedAt": "2026-08-15T18:47:45Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1821" - }, - { - "id": "tutorials-ims#1820", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1820, - "title": "Guard against stale site assets after deploy", - "summary": "Added a safeguard and automated check that catch stale or missing page assets after a deploy, preventing the broken, unstyled pages that could otherwise slip through.", - "category": "Feature", - "mergedAt": "2026-08-15T18:47:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1820" - }, - { - "id": "tutorials-ims#1819", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1819, - "title": "Point accessibility scans at stable live pages", - "summary": "Repointed the automated accessibility scans to reliable live pages so they properly test real content instead of erroring on missing URLs.", - "category": "Fix", - "mergedAt": "2026-08-15T18:47:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1819" - }, - { - "id": "tutorials-ims#1818", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1818, - "title": "Design note for fixing homepage layout shift", - "summary": "Documented the root cause and design for reducing homepage layout shift, where placeholder bands resize once real content loads.", - "category": "Docs", - "mergedAt": "2026-08-15T18:47:16Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1818" - }, - { - "id": "tutorials-ims#1817", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1817, - "title": "Update a homepage topic-clusters test", - "summary": "Updated an internal test to match a recent change in how homepage topic-cluster links render, keeping the test suite accurate.", - "category": "Maintenance", - "mergedAt": "2026-08-15T18:47:07Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1817" - }, - { - "id": "tutorials-ims#1815", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1815, - "title": "Cleaner SEO metadata on group and mission pages", - "summary": "Fixed breadcrumb structured data and added meaningful descriptions to group and mission pages, and cleaned up leftover placeholder text, improving how these pages appear in search.", - "category": "Fix", - "mergedAt": "2026-08-15T16:00:32Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1815" - }, - { - "id": "tutorials-ims#1814", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1814, - "title": "Fix unstyled image lightbox on tutorials", - "summary": "The tutorial image lightbox now displays properly with a single focused image and its styling, instead of dumping all images stacked and unstyled.", - "category": "Fix", - "mergedAt": "2026-08-15T15:18:09Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1814" - }, - { - "id": "tutorials-ims#1813", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1813, - "title": "Fix a build check for shared UI code", - "summary": "Adjusted an internal build guard so shared UI5 code splitting no longer trips a false failure, keeping the build pipeline healthy.", - "category": "Fix", - "mergedAt": "2026-08-15T13:31:02Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1813" - }, - { - "id": "tutorials-ims#1812", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1812, - "title": "Fix mobile overflow and button overlap on tutorials", - "summary": "Fixed tutorial pages on mobile so content no longer overflows horizontally and the Steps button no longer overlaps, for a cleaner reading experience on phones.", - "category": "Fix", - "mergedAt": "2026-08-15T13:07:42Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1812" - }, - { - "id": "tutorials-ims#1810", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1810, - "title": "Slimmer homepage icon styles and right-sized images", - "summary": "The homepage now ships only the handful of icon styles it actually uses and requests appropriately sized images, trimming roughly 150 KB of render-blocking CSS plus oversized thumbnails for faster page loads.", - "category": "Performance", - "mergedAt": "2026-08-15T13:07:20Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1810" - }, - { - "id": "tutorials-ims#1809", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1809, - "title": "Homepage accessibility fixes", - "summary": "Fixed several homepage accessibility issues around color contrast, keyboard focus, link labels, and ARIA attributes so the page works better with screen readers and meets WCAG AA.", - "category": "Fix", - "mergedAt": "2026-08-15T13:06:59Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1809" - }, - { - "id": "tutorials-ims#1808", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1808, - "title": "Concept and catalog pages now have proper SEO metadata", - "summary": "Concept, group, and mission pages now emit their own title, description, canonical URL, and social-preview tags instead of inheriting placeholder metadata, so they're properly indexed by search engines and share cleanly on social media.", - "category": "Fix", - "mergedAt": "2026-08-15T13:06:39Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1808" - }, - { - "id": "tutorials-ims#1807", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1807, - "title": "Alert call-to-action button now appears", - "summary": "The call-to-action button on notification alerts now renders correctly in the popover, so links surfaced in announcements are actually clickable.", - "category": "Fix", - "mergedAt": "2026-08-15T13:06:16Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1807" - }, - { - "id": "tutorials-ims#1811", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1811, - "title": "Tutorial tag chips now filter the navigator correctly", - "summary": "Clicking an experience-level tag like \"Beginner\" on a tutorial now sets the Experience filter in the navigator instead of quietly breaking the Software Product filter, so browsing by product returns the results you expect.", - "category": "Fix", - "mergedAt": "2026-08-15T13:05:48Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1811" - }, - { - "id": "tutorials-ims#1806", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1806, - "title": "Cookie banner no longer shifts the homepage on first visit", - "summary": "The consent banner is now pinned as a fixed overlay so it no longer pushes homepage content around on a first visit, giving new visitors a stable, jank-free first impression.", - "category": "Fix", - "mergedAt": "2026-08-15T12:35:33Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1806" - }, - { - "id": "tutorials-ims#1801", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1801, - "title": "test(scheduler): bump lockstep to 46 jobs for top-tutorials (#1782)", - "summary": "Updated an internal scheduler test to account for the new nightly Top Tutorials job, keeping the build green.", - "category": "Maintenance", - "mergedAt": "2026-08-15T12:01:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1801" - }, - { - "id": "tutorials-ims#1799", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1799, - "title": "Richer image lightbox with keyboard support, thumbnails, and swipe", - "summary": "The tutorial image viewer now supports opening with the keyboard, a thumbnail filmstrip, swipe navigation, double-tap zoom, an image counter with caption, and a loading spinner, making screenshots easier and more accessible to browse.", - "category": "Feature", - "mergedAt": "2026-08-15T00:06:08Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1799" - }, - { - "id": "tutorials-ims#1800", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1800, - "title": "Badge tracking resend reliability improvements", - "summary": "Made the badge-tracking resend process more reliable and correctly scoped to the right completion window, so recent tutorial completions get their badges assigned as expected.", - "category": "Fix", - "mergedAt": "2026-08-15T00:02:21Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1800" - }, - { - "id": "tutorials-ims#1797", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1797, - "title": "Per-page code-splitting of UI5 components", - "summary": "Each page now loads only the UI5 web components it actually needs rather than one monolithic bundle, cutting the homepage's UI5 payload by more than half for noticeably faster loads (rolled out behind a safe toggle).", - "category": "Performance", - "mergedAt": "2026-08-14T22:43:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1797" - }, - { - "id": "tutorials-ims#1793", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1793, - "title": "Badge backfill scripts made runnable and date-scoped", - "summary": "Fixed the badge backfill tooling so it runs against live environments and only stamps recent activity, avoiding an unnecessary sweep of the entire historical backlog.", - "category": "Fix", - "mergedAt": "2026-08-14T21:52:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1793" - }, - { - "id": "tutorials-ims#1790", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1790, - "title": "Top Tutorials ranking on the homepage carousel", - "summary": "The homepage carousel can now flip between Featured missions and a completions-based Top Tutorials ranking with a 90/180/360-day window selector, helping you discover what the community is actually working through.", - "category": "Feature", - "mergedAt": "2026-08-14T20:38:29Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1790" - }, - { - "id": "tutorials-ims#1791", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1791, - "title": "Devtoberfest sign-in prompt for anonymous visitors", - "summary": "Anonymous visitors clicking \"Join the Fest\" on the Devtoberfest homepage now see a friendly log-in prompt instead of a confusing error.", - "category": "Fix", - "mergedAt": "2026-08-14T20:38:00Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1791" - }, - { - "id": "tutorials-ims#1789", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1789, - "title": "Release 1.14.1 — DEV → PROD", - "summary": "Routine release bump shipping the accumulated development work to production.", - "category": "Maintenance", - "mergedAt": "2026-08-14T20:26:59Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1789" - }, - { - "id": "tutorials-ims#1787", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1787, - "title": "Freshness floor keeps stale tutorials off the homepage carousel", - "summary": "Added a configurable age cutoff so genuinely ancient tutorials no longer get ranked onto the homepage Featured carousel, keeping the recommendations feeling current.", - "category": "Feature", - "mergedAt": "2026-08-14T18:38:24Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1787" - }, - { - "id": "tutorials-ims#1781", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1781, - "title": "Next/Prev now flows continuously across a mission's groups", - "summary": "The Next button no longer disappears at the end of a group within a multi-group mission, so you can now flow straight from one group into the next without hitting a dead end.", - "category": "Fix", - "mergedAt": "2026-08-14T18:13:46Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1781" - }, - { - "id": "tutorials-ims#1780", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1780, - "title": "Multiple-choice quizzes no longer pre-select every answer", - "summary": "Fixed multiple-choice knowledge checks that rendered every option pre-selected and always graded as wrong, so quizzes now start unchecked and grade correctly.", - "category": "Fix", - "mergedAt": "2026-08-14T18:06:11Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1780" - }, - { - "id": "tutorials-ims#1776", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1776, - "title": "Minified CSS and self-hosted icon fonts", - "summary": "Several stylesheets are now minified and the icon CSS is served from our own domain instead of a third-party CDN, speeding up rendering and removing an external dependency that could break icons if it went down.", - "category": "Performance", - "mergedAt": "2026-08-14T18:00:17Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1776" - }, - { - "id": "tutorials-ims#1773", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1773, - "title": "ci(rebuild-content): enable keyless DEV content publishing (DRAFT — needs DEV approuter key seed)", - "summary": "Enabled server-side content publishing for the development environment so routine content refreshes no longer need a manual key pasted in during deploys.", - "category": "Maintenance", - "mergedAt": "2026-08-14T16:31:03Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1773" - }, - { - "id": "tutorials-ims#1772", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1772, - "title": "build(deploy): allow DEV/QA deploys from a fresh worktree; keep PROD strict", - "summary": "Relaxed deploy tooling to allow development and QA deploys from an isolated workspace while keeping production deploys strict.", - "category": "Maintenance", - "mergedAt": "2026-08-14T16:30:50Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1772" - }, - { - "id": "tutorials-ims#1770", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1770, - "title": "Dropped unused locale data from the UI5 bootstrap", - "summary": "Removed unused locale and calendar data from the UI5 bundle that loads on every page, shrinking it by nearly 80% (from 16 MB to 3.5 MB) for a much faster first load.", - "category": "Performance", - "mergedAt": "2026-08-14T14:41:58Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1770" - }, - { - "id": "tutorials-ims#1769", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1769, - "title": "Author pages survive overnight content rebuilds", - "summary": "Author profile pages no longer vanish (404) after nightly catalog rebuilds, so links to an author's page stay reliably available.", - "category": "Fix", - "mergedAt": "2026-08-14T14:20:14Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1769" - }, - { - "id": "tutorials-ims#1767", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1767, - "title": "Shorter edge cache and reduced homepage layout shift", - "summary": "Lowered the CDN cache window so newly published content appears within minutes instead of up to a day, and reserved space for homepage video and community sections to cut layout shift by over 90%.", - "category": "Performance", - "mergedAt": "2026-08-14T13:14:56Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1767" - }, - { - "id": "tutorials-ims#1768", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1768, - "title": "Completion tracking now includes the field badges depend on", - "summary": "Tutorial completions now carry the tracking identifier the badging system needs, plus backfill and resend tooling for past completions, so badges get awarded reliably.", - "category": "Fix", - "mergedAt": "2026-08-14T13:13:36Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1768" - }, - { - "id": "tutorials-ims#1766", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1766, - "title": "Alerts can use free-text call-to-action URLs again", - "summary": "The alert call-to-action URL field in the admin UI now keeps a hand-typed URL instead of discarding anything not in the suggestion list.", - "category": "Fix", - "mergedAt": "2026-08-14T12:39:38Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1766" - }, - { - "id": "tutorials-ims#1765", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1765, - "title": "Hide \"More from author\" rail in embedded tutorials", - "summary": "When a tutorial is embedded in another page, the cross-tutorial \"More from this author\" rail is now hidden so the embed stays focused on its own content.", - "category": "Fix", - "mergedAt": "2026-08-14T10:21:43Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1765" - }, - { - "id": "tutorials-ims#1764", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1764, - "title": "Byline fallback links tutorials to established author pages", - "summary": "Tutorials without explicit author frontmatter now link their byline to an existing author's page when the top contributor already has one, so more tutorials are correctly attributed without wrongly crediting bots or reviewers.", - "category": "Feature", - "mergedAt": "2026-08-14T10:15:30Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1764" - }, - { - "id": "tutorials-ims#1762", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1762, - "title": "Dropdown value help for link-health override in admin", - "summary": "The link-health override field in the admin UI now offers a proper OK/SLOW/BROKEN dropdown instead of a free-text box, making it clear what values are valid.", - "category": "Fix", - "mergedAt": "2026-08-14T06:40:53Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1762" - }, - { - "id": "tutorials-ims#1759", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1759, - "title": "QA navigator no longer wiped by content rebuilds", - "summary": "The QA author-preview navigator is now preserved across content-rebuild swaps, ending the recurring issue where it kept disappearing after a rebuild.", - "category": "Fix", - "mergedAt": "2026-08-14T05:48:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1759" - }, - { - "id": "tutorials-ims#1760", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1760, - "title": "Local deploys now build the QA preview navigator", - "summary": "Fixed local deploys so the QA author-preview tutorial navigator is built and shipped rather than serving a broken (404) page, with a guard to catch it if it ever regresses.", - "category": "Fix", - "mergedAt": "2026-08-14T05:48:38Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1760" - }, - { - "id": "tutorials-ims#1761", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1761, - "title": "Author pages exclude unpublished and deleted tutorials", - "summary": "Author pages, the \"more from author\" rail, and bylines now only show published, active tutorials, so unpublished or removed content no longer lingers on author profiles.", - "category": "Fix", - "mergedAt": "2026-08-14T05:48:23Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1761" - }, - { - "id": "tutorials-ims#1757", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1757, - "title": "Release v1.14.0: What's New page, author detail pages, Devtoberfest Signups report", - "summary": "Production release bundling the What's New page, author detail pages, and the Devtoberfest signups report.", - "category": "Maintenance", - "mergedAt": "2026-08-14T01:42:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1757" - }, - { - "id": "tutorials-ims#1756", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1756, - "title": "New public What's New page", - "summary": "Added a public What's New page at /whats-new/ that groups recent platform improvements by week in plain language, so you can see at a glance what's changed on developers.sap.com.", - "category": "Feature", - "mergedAt": "2026-08-14T00:22:13Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1756" - }, - { - "id": "tutorials-ims#1755", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1755, - "title": "feat(#1732): other tutorials by this author (rail + author page)", - "summary": "Readers can now discover more tutorials by the same author through an inline rail and a dedicated author page.", - "category": "Feature", - "mergedAt": "2026-08-13T23:56:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1755" - }, - { - "id": "tutorials-ims#1754", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1754, - "title": "Devtoberfest signups analytics report", - "summary": "A new analytical report in the admin dashboard shows Devtoberfest signup trends by day and geography, giving content managers instant visibility into registration activity.", - "category": "Feature", - "mergedAt": "2026-08-13T23:19:22Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1754" - }, - { - "id": "tutorials-ims#1753", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1753, - "title": "Admin editor: long-form fields now use a proper text area", - "summary": "Long text fields such as descriptions and markdown content in the admin content editor now render as a properly-sized textarea, making it much more comfortable to write and review multi-paragraph content.", - "category": "Fix", - "mergedAt": "2026-08-13T22:30:12Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1753" - }, - { - "id": "tutorials-ims#1751", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1751, - "title": "No more red error highlighting on unrecognised code tokens", - "summary": "Code blocks no longer show distracting red error styling from the syntax highlighter on tokens it could not parse — those tokens now render as plain text instead of looking like errors.", - "category": "Fix", - "mergedAt": "2026-08-13T22:11:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1751" - }, - { - "id": "tutorials-ims#1750", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1750, - "title": "Clearer quiz badge and current-step indicator", - "summary": "The quiz completion badge is now easier to spot, and your current tutorial step is highlighted with a ring and a subtle pulse animation so you can always see where you are at a glance.", - "category": "Fix", - "mergedAt": "2026-08-13T22:11:12Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1750" - }, - { - "id": "tutorials-ims#1749", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1749, - "title": "Devtoberfest session times now shown in your local timezone only", - "summary": "Devtoberfest sessions and activity times now display exclusively in your local timezone, removing the confusing dual-timezone display that showed UTC alongside local time.", - "category": "Fix", - "mergedAt": "2026-08-13T21:56:31Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1749" - }, - { - "id": "tutorials-ims#1748", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1748, - "title": "Author guide: Mission and Group content model explained", - "summary": "Updated author documentation now clarifies how missions map to groups in the new platform and explains how to structure multi-step learning paths as groups — essential reading for contributors building tutorial series.", - "category": "Docs", - "mergedAt": "2026-08-13T21:44:51Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1748" - }, - { - "id": "tutorials-ims#1747", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1747, - "title": "Multi-select quiz answers now validate correctly", - "summary": "Quiz questions that require selecting multiple correct answers (checkboxes) now validate correctly, so tutorials using multi-select questions work as expected instead of falsely rejecting valid answers.", - "category": "Fix", - "mergedAt": "2026-08-13T21:41:01Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1747" - }, - { - "id": "tutorials-ims#1746", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1746, - "title": "Devtoberfest live session recordings show YouTube thumbnails", - "summary": "Recorded Devtoberfest live-stream sessions now display their YouTube thumbnail previews on the sessions page instead of showing a blank placeholder image.", - "category": "Fix", - "mergedAt": "2026-08-13T21:34:23Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1746" - }, - { - "id": "tutorials-ims#1744", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1744, - "title": "AEM-legacy multi-paragraph notes render as a single callout", - "summary": "Tutorial notes and callouts that were originally authored across multiple paragraphs in the old AEM system now render as a single properly-formatted block instead of splitting into bare disconnected text fragments.", - "category": "Fix", - "mergedAt": "2026-08-13T21:31:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1744" - }, - { - "id": "tutorials-ims#1739", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1739, - "title": "Joule button works in embedded reader mode", - "summary": "The Joule AI assistant button in the read-only embedded tutorial view now correctly opens the Joule panel when clicked, instead of silently doing nothing.", - "category": "Fix", - "mergedAt": "2026-08-13T21:06:40Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1739" - }, - { - "id": "tutorials-ims#1738", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1738, - "title": "SAP CodeJam events appear in the homepage events band", - "summary": "Upcoming SAP CodeJam events now appear in the homepage events section alongside other community events, so visitors can discover in-person learning opportunities without having to navigate to a separate page.", - "category": "Fix", - "mergedAt": "2026-08-13T21:05:59Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1738" - }, - { - "id": "tutorials-ims#1737", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1737, - "title": "Gamification badge delivery resumes after credential fix", - "summary": "Badge and point awards to the gamification system resume reliably after fixing how the platform reads authentication credentials — completions that were queued will now flush through.", - "category": "Fix", - "mergedAt": "2026-08-13T21:03:57Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1737" - }, - { - "id": "tutorials-ims#1735", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1735, - "title": "docs: build site from DEV + register discovery-center page in sidebar", - "summary": "The documentation site now builds from the leading-edge DEV branch so upcoming features can be previewed before release.", - "category": "Docs", - "mergedAt": "2026-08-13T19:23:16Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1735" - }, - { - "id": "tutorials-ims#1734", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1734, - "title": "Release DEV → main (v1.14.0)", - "summary": "Production release promoting the latest DEV changes.", - "category": "Maintenance", - "mergedAt": "2026-08-13T19:06:29Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1734" - }, - { - "id": "tutorials-ims#1733", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1733, - "title": "Docs: SAP Discovery Center .model.json integration", - "summary": "Developer documentation now covers the `.model.json` endpoint that feeds SAP Discovery Center mission cards, clarifying the contract between the developer portal and the Discovery Center catalog.", - "category": "Docs", - "mergedAt": "2026-08-13T18:08:22Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1733" - }, - { - "id": "tutorials-ims#1731", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1731, - "title": "Badge delivery token flow fixed", - "summary": "Badge and point awards now complete successfully after a server-side credential flow issue that was silently blocking all deliveries has been resolved.", - "category": "Fix", - "mergedAt": "2026-08-13T16:54:48Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1731" - }, - { - "id": "tutorials-ims#1730", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1730, - "title": "More predictable platform releases", - "summary": "Platform releases are now batched behind a stable integration branch, making production updates more predictable and reducing the risk of mid-sprint changes reaching users before they are fully verified.", - "category": "Maintenance", - "mergedAt": "2026-08-13T16:47:04Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1730" - }, - { - "id": "tutorials-ims#1728", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1728, - "title": "Devtoberfest contest window: countdown timer with exact times and timezone", - "summary": "The Devtoberfest contest period now shows a live countdown timer with the exact start and end times in your local timezone, plus a tooltip explaining the contest window rules so you know precisely when your submissions count.", - "category": "Feature", - "mergedAt": "2026-08-13T16:22:27Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1728" - }, - { - "id": "tutorials-ims#1727", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1727, - "title": "Homepage link-health overrides apply correctly at build time", - "summary": "Link health overrides set by content authors in the admin interface are now correctly applied when the page is built, preventing valid links from being incorrectly flagged as broken in the homepage navigation.", - "category": "Fix", - "mergedAt": "2026-08-13T16:21:18Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1727" - }, - { - "id": "tutorials-ims#1724", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1724, - "title": "Embedded tutorials now have step navigation, Joule, and Next controls", - "summary": "Tutorials embedded in third-party apps now include a persistent action bar with step navigation, Joule AI assistant access, and a Next button, making the embedded reading experience as interactive as the full developer portal.", - "category": "Feature", - "mergedAt": "2026-08-13T15:01:45Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1724" - }, - { - "id": "tutorials-ims#1723", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1723, - "title": "New operational alerts for pipeline errors, secrets, broken links, and stuck publishes", - "summary": "Automated alerts now fire when the content rebuild pipeline encounters errors, secrets approach expiry, broken links are detected, or a content publish gets stuck — reducing time-to-detection for platform issues.", - "category": "Feature", - "mergedAt": "2026-08-13T14:48:50Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1723" - }, - { - "id": "tutorials-ims#1721", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1721, - "title": "Devtoberfest: iCal and RSS calendar feeds plus add-to-calendar links", - "summary": "You can now subscribe to the full Devtoberfest session schedule via iCal or RSS, and add individual sessions to your calendar with a single click — making it easy to plan which sessions to attend from your existing calendar app.", - "category": "Feature", - "mergedAt": "2026-08-13T14:43:17Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1721" - }, - { - "id": "tutorials-ims#1722", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1722, - "title": "Security dependency updates (undici, sharp, tar)", - "summary": "Production dependencies undici, sharp, and tar have been updated to resolve known security vulnerabilities.", - "category": "Maintenance", - "mergedAt": "2026-08-13T14:36:19Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1722" - }, - { - "id": "tutorials-ims#1719", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1719, - "title": "Tutorial pages no longer flash unstyled components before load", - "summary": "Tutorial pages no longer briefly flicker with unstyled UI5 browser components before the UI framework finishes initialising — content is now hidden until it is ready, removing the visual flash on page load.", - "category": "Fix", - "mergedAt": "2026-08-13T13:50:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1719" - }, - { - "id": "tutorials-ims#1713", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1713, - "title": "Tutorial breadcrumb step-picker respects authored sequence order", - "summary": "The breadcrumb dropdown that lets you jump between tutorial steps now lists them in their correct authored sequence rather than alphabetically, so the picker matches the actual reading order of a mission or group.", - "category": "Fix", - "mergedAt": "2026-08-13T01:53:31Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1713" - }, - { - "id": "tutorials-ims#1712", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1712, - "title": "QA channel navigator: search and filter only (no homepage sections)", - "summary": "The tutorial navigator on the QA content preview channel now shows only the search and filter interface, dropping the promotional homepage sections that were inappropriate for a content review environment.", - "category": "Fix", - "mergedAt": "2026-08-13T01:37:39Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1712" - }, - { - "id": "tutorials-ims#1711", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1711, - "title": "Event-display kiosk WebSocket no longer requires login", - "summary": "The live event display screen used at SAP community events can now establish its real-time WebSocket connection without requiring an authenticated session, fixing the connection errors that were disconnecting kiosk displays.", - "category": "Fix", - "mergedAt": "2026-08-13T00:37:15Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1711" - }, - { - "id": "tutorials-ims#1710", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1710, - "title": "Joule help button no longer overlaps the Next navigation button", - "summary": "The Joule AI help floating button no longer covers the Next navigation button when reading tutorials in a group, so both controls are independently accessible without one obscuring the other.", - "category": "Fix", - "mergedAt": "2026-08-12T22:52:01Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1710" - }, - { - "id": "tutorials-ims#1709", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1709, - "title": "Hotfix content rebuilds now reference current JS assets", - "summary": "Single-tutorial hotfix rebuilds now correctly embed versioned JavaScript asset references in the published HTML, preventing visitors from receiving stale interactive components after a quick content update.", - "category": "Fix", - "mergedAt": "2026-08-12T22:18:36Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1709" - }, - { - "id": "tutorials-ims#1708", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1708, - "title": "First-time visitors are no longer auto-redirected to login", - "summary": "The portal no longer automatically triggers a login redirect for first-time visitors — only returning users who previously authenticated are silently re-signed in, giving new readers a frictionless anonymous experience.", - "category": "Fix", - "mergedAt": "2026-08-12T21:54:47Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1708" - }, - { - "id": "tutorials-ims#1707", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1707, - "title": "Admin change history restored for content records", - "summary": "Edit history logging in the admin interface is working again — changes to tutorials, missions, and configuration now correctly appear in the Change History panel as expected.", - "category": "Fix", - "mergedAt": "2026-08-12T21:48:58Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1707" - }, - { - "id": "tutorials-ims#1706", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1706, - "title": "Tutorial step-timing statistics now persist correctly on HANA", - "summary": "A database compatibility issue that caused tutorial reading-time statistics to fail silently on HANA (while appearing to work locally) has been resolved by switching to the correct SAP CAP query API.", - "category": "Fix", - "mergedAt": "2026-08-12T21:29:18Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1706" - }, - { - "id": "tutorials-ims#1704", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1704, - "title": "Admin shelf and verb-definition reports load data automatically", - "summary": "The homepage shelf configuration and verb definitions list pages in the admin interface now load their data automatically when opened, rather than requiring a manual refresh click.", - "category": "Fix", - "mergedAt": "2026-08-12T21:28:55Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1704" - }, - { - "id": "tutorials-ims#1705", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1705, - "title": "Empty admin notification popup no longer shows blank space", - "summary": "The admin notification popup now displays a clean empty state when there are no pending alerts, instead of showing an awkward layout gap.", - "category": "Fix", - "mergedAt": "2026-08-12T21:28:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1705" - }, - { - "id": "tutorials-ims#1703", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1703, - "title": "AEM-legacy blockquoted code samples render inside their code window", - "summary": "Code samples in tutorials originally authored in AEM that were wrapped in blockquotes now render correctly inside the code window instead of appearing as raw text outside it.", - "category": "Fix", - "mergedAt": "2026-08-12T21:27:02Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1703" - }, - { - "id": "tutorials-ims#1702", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1702, - "title": "Content publish: rejected reverts shown correctly, not as failures", - "summary": "When a content publish correctly blocks a rollback to an older version, the outcome is now shown as 'Rejected' rather than misleadingly displayed as a verification failure.", - "category": "Fix", - "mergedAt": "2026-08-12T21:20:40Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1702" - }, - { - "id": "tutorials-ims#1701", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1701, - "title": "Tutorial contributor name no longer shows as 'Unknown'", - "summary": "Tutorial overview pages now correctly display the contributor's display name instead of 'Unknown' for authors whose profile is linked to an SAP Community account.", - "category": "Fix", - "mergedAt": "2026-08-12T21:16:09Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1701" - }, - { - "id": "tutorials-ims#1699", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1699, - "title": "Next/Previous navigation stays within the current group or mission", - "summary": "When reading a tutorial that is part of a group or mission, the Next and Previous buttons now stay within that group's sequence instead of jumping to unrelated tutorials from outside the learning path.", - "category": "Fix", - "mergedAt": "2026-08-12T19:18:13Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1699" - }, - { - "id": "tutorials-ims#1700", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1700, - "title": "fix(ci): mark model-json-handler slug lookups as pre-canonicalized", - "summary": "Fixed a slug-lookup guard for the legacy tutorial-model endpoint.", - "category": "Maintenance", - "mergedAt": "2026-08-12T19:15:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1700" - }, - { - "id": "tutorials-ims#1698", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1698, - "title": "New alerts for gamification badge backlog and exhausted retries", - "summary": "Operators now receive automated alerts when the badge and point delivery backlog to the gamification system is growing, or when all retry attempts have been exhausted — enabling faster incident response before developers notice missing rewards.", - "category": "Feature", - "mergedAt": "2026-08-12T19:12:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1698" - }, - { - "id": "tutorials-ims#1697", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1697, - "title": "fix(ci): allowlist /content/tutorial-model/*slug as srv-only (route-drift guard)", - "summary": "Fixed a route-consistency guard for the legacy tutorial-model endpoint.", - "category": "Maintenance", - "mergedAt": "2026-08-12T18:46:30Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1697" - }, - { - "id": "tutorials-ims#1695", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1695, - "title": "Badge delivery failures are now visible in metrics and alerts", - "summary": "Badge and point award failures are now accurately reflected in platform metrics and trigger operational alerts, replacing the previous silent failure mode that made badge delivery issues invisible to the team.", - "category": "Feature", - "mergedAt": "2026-08-12T18:19:42Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1695" - }, - { - "id": "tutorials-ims#1696", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1696, - "title": "test(#1673): fix seed-thirdparty test path after HomepageShelves CSV move", - "summary": "Fixed a unit test after a seed data file was relocated.", - "category": "Maintenance", - "mergedAt": "2026-08-12T18:18:15Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1696" - }, - { - "id": "tutorials-ims#1691", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1691, - "title": "Homepage content edits now automatically trigger a rebuild", - "summary": "Editing homepage shelves, featured topics, or other catalog content in the admin interface now automatically triggers a content rebuild, so changes reach visitors without needing a separate manual rebuild step.", - "category": "Fix", - "mergedAt": "2026-08-12T17:38:20Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1691" - }, - { - "id": "tutorials-ims#1690", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1690, - "title": "QA tutorial navigator now accessible at its own URL", - "summary": "The QA preview version of the tutorial navigator is now correctly served at its own path, allowing content reviewers to access it independently from the main navigator.", - "category": "Fix", - "mergedAt": "2026-08-12T17:37:59Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1690" - }, - { - "id": "tutorials-ims#1693", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1693, - "title": "Admin UI edits and deletes now work reliably in production", - "summary": "Admin panel content updates and deletions now work correctly for all users in production, fixing an edge compatibility issue that was causing edit and delete actions to fail silently.", - "category": "Fix", - "mergedAt": "2026-08-12T17:37:05Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1693" - }, - { - "id": "tutorials-ims#1694", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1694, - "title": "Live event display WebSocket connection fixed", - "summary": "The real-time event display used at SAP community events can now establish its WebSocket connection correctly after WebSocket support was explicitly enabled in the app router configuration.", - "category": "Fix", - "mergedAt": "2026-08-12T17:35:13Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1694" - }, - { - "id": "tutorials-ims#1692", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1692, - "title": "Deployments verified before going live to prevent broken pages", - "summary": "New releases now automatically verify that all page assets are in place before the update goes live, catching any missing CSS or JavaScript references before visitors could encounter broken pages.", - "category": "Maintenance", - "mergedAt": "2026-08-12T17:34:03Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1692" - }, - { - "id": "tutorials-ims#1687", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1687, - "title": "Developer Advocate photos update immediately after upload", - "summary": "Developer Advocate profile photos now appear immediately after uploading a new image — the CDN cache is invalidated on save so the updated photo is visible right away instead of being stuck behind a stale cached version.", - "category": "Fix", - "mergedAt": "2026-08-12T16:15:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1687" - }, - { - "id": "tutorials-ims#1686", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1686, - "title": "Devtoberfest Sessions page no longer blanks on invalid timezone data", - "summary": "The Devtoberfest Sessions page now fails gracefully if a session has an unrecognised timezone value, rendering the remaining sessions normally instead of going completely blank.", - "category": "Fix", - "mergedAt": "2026-08-12T16:14:12Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1686" - }, - { - "id": "tutorials-ims#1685", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1685, - "title": "SAP Discovery Center mission cards restored", - "summary": "The `.model.json` endpoint that SAP Discovery Center uses to display developer portal missions has been reinstated, restoring the integration that was broken during the migration away from the legacy AEM platform.", - "category": "Fix", - "mergedAt": "2026-08-12T15:48:41Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1685" - }, - { - "id": "tutorials-ims#1677", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1677, - "title": "CSS and JS assets no longer 404 after a fingerprinted deployment", - "summary": "JavaScript and CSS bundles from the previous deployment are now retained during new releases, preventing the brief window where visitors with cached HTML could request a versioned asset that no longer existed on the server.", - "category": "Fix", - "mergedAt": "2026-08-12T14:43:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1677" - }, - { - "id": "tutorials-ims#1682", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1682, - "title": "QA channel quiz questions fully rendered (dependency fix)", - "summary": "Quiz questions and interactive step validation now display correctly on the content preview channel, fully resolving the issue that had prevented them from appearing in preview pages.", - "category": "Fix", - "mergedAt": "2026-08-12T12:47:04Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1682" - }, - { - "id": "tutorials-ims#1680", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1680, - "title": "Quiz questions now render on the QA preview channel", - "summary": "Tutorial quiz questions and interactive step validation now display correctly on the QA content preview channel after a missing JS asset reference file was added to the QA build process.", - "category": "Fix", - "mergedAt": "2026-08-12T12:15:47Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1680" - }, - { - "id": "tutorials-ims#1676", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1676, - "title": "User account auto-provisioning works reliably on HANA", - "summary": "Automatic user account creation when a visitor links their SAP Community profile now works correctly in the HANA-backed production environment, fixing a silent insert failure that left users unable to have their progress tracked.", - "category": "Fix", - "mergedAt": "2026-08-12T02:17:37Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1676" - }, - { - "id": "tutorials-ims#1673", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1673, - "title": "Admin-editable configuration no longer overwritten on deployment", - "summary": "Configuration values that admins edit at runtime — homepage shelves, featured topics — are no longer overwritten by seed data during deployment, preventing live edits from being silently wiped on every new release.", - "category": "Fix", - "mergedAt": "2026-08-12T02:12:56Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1673" - }, - { - "id": "tutorials-ims#1674", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1674, - "title": "Tutorial right rail restored after CDS code block layout regression", - "summary": "An unbalanced HTML tag in the CDS syntax highlighter was pushing the tutorial progress sidebar off-screen; the fix restores correct side-by-side layout so the right rail displays normally alongside CDS code samples.", - "category": "Fix", - "mergedAt": "2026-08-12T01:54:53Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1674" - }, - { - "id": "tutorials-ims#1671", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1671, - "title": "fix(#1659 Phase 2): make pages-routes smoke markers minification-safe", - "summary": "Made deploy smoke tests robust to minified HTML so they stop failing on healthy pages.", - "category": "Fix", - "mergedAt": "2026-08-11T23:55:09Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1671" - }, - { - "id": "tutorials-ims#1670", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1670, - "title": "Browse, Topics, and other content pages now served from HANA", - "summary": "The Browse, Topics, Verbs, Sitemap, and other non-tutorial content pages are now served dynamically from the CAP/HANA content store, completing the migration away from static Hugo files and enabling live content updates without a full redeploy.", - "category": "Feature", - "mergedAt": "2026-08-11T23:03:19Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1670" - }, - { - "id": "tutorials-ims#1669", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1669, - "title": "Per-tutorial override for the content publish rollback protection", - "summary": "Content operators can now override the rollback-protection policy on a per-tutorial basis when a genuine revert is needed, avoiding the all-or-nothing configuration change that was previously required.", - "category": "Feature", - "mergedAt": "2026-08-11T22:46:40Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1669" - }, - { - "id": "tutorials-ims#1666", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1666, - "title": "CDS syntax highlighting colours restored in tutorial code blocks", - "summary": "SAP Core Data Services (CDS) code blocks in tutorials now show correct syntax highlighting colours after a CSS mapping regression was identified and fixed.", - "category": "Fix", - "mergedAt": "2026-08-11T21:51:23Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1666" - }, - { - "id": "tutorials-ims#1665", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1665, - "title": "fix(guard): unbreak main CI — move slug-canonical marker adjacent to .where", - "summary": "Fixed a code-quality guard that was failing the build.", - "category": "Maintenance", - "mergedAt": "2026-08-11T21:51:14Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1665" - }, - { - "id": "tutorials-ims#1664", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1664, - "title": "Content pages can now be served from HANA (initial rollout)", - "summary": "The infrastructure for serving non-tutorial content pages from the HANA content store is now in place, initially enabled in a validation mode to allow incremental verification before the full cut-over to dynamic page serving.", - "category": "Feature", - "mergedAt": "2026-08-11T20:20:18Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1664" - }, - { - "id": "tutorials-ims#1663", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1663, - "title": "Puzzle progress survives login, and orphaned drafts are recovered", - "summary": "Progress made on coding puzzles before signing in is now correctly merged with your account when you log in, completed puzzles are properly recognised after a browser refresh, and orphaned draft submissions are automatically recovered.", - "category": "Fix", - "mergedAt": "2026-08-11T18:39:53Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1663" - }, - { - "id": "tutorials-ims#1662", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1662, - "title": "Repository licensed under Apache-2.0 (OSPO compliance)", - "summary": "The developer portal codebase is now explicitly licensed under Apache-2.0 with REUSE-compliant headers, meeting SAP open-source compliance requirements as the repository moves toward public visibility.", - "category": "Maintenance", - "mergedAt": "2026-08-11T18:06:23Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1662" - }, - { - "id": "tutorials-ims#1661", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1661, - "title": "CDS code highlighting restored on HANA-published tutorials", - "summary": "CDS syntax highlighting was missing from published tutorials after a build pipeline regression; the syntax highlighter is now correctly invoked when tutorials are published to the content store.", - "category": "Fix", - "mergedAt": "2026-08-11T17:04:46Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1661" - }, - { - "id": "tutorials-ims#1660", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1660, - "title": "Link-health checker no longer flags internal or auth-gated URLs as broken", - "summary": "The homepage link-health checker no longer incorrectly marks internal portal URLs and login-protected pages as broken — those links are now either skipped or probed with the correct authentication context.", - "category": "Fix", - "mergedAt": "2026-08-11T16:31:21Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1660" - }, - { - "id": "tutorials-ims#1658", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1658, - "title": "Versioned JS and CSS bundles are retained across deployments", - "summary": "Content-hashed JavaScript and CSS assets are now preserved when a new version is deployed, eliminating the brief window where visitors with cached HTML pages could request a bundle that no longer existed on the server.", - "category": "Feature", - "mergedAt": "2026-08-11T15:24:57Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1658" - }, - { - "id": "tutorials-ims#1654", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1654, - "title": "Navigator mission cards link correctly for nested-group missions", - "summary": "Mission cards in the tutorial navigator now link correctly when the mission's tutorials are structured as nested groups, fixing cards that previously led to a dead end.", - "category": "Fix", - "mergedAt": "2026-08-11T15:07:19Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1654" - }, - { - "id": "tutorials-ims#1656", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1656, - "title": "Homepage footer cleaned up: broken links and padlock icon hidden", - "summary": "Broken placeholder links in the homepage directory footer and a stray sign-in padlock icon have been hidden, cleaning up footer content that was inadvertently visible since launch.", - "category": "Fix", - "mergedAt": "2026-08-11T15:03:54Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1656" - }, - { - "id": "tutorials-ims#1655", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1655, - "title": "Mobile navigation menu now opens on tap", - "summary": "On mobile devices, tapping the Navigate button in the site header now correctly opens the navigation popover instead of doing nothing.", - "category": "Fix", - "mergedAt": "2026-08-11T14:59:29Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1655" - }, - { - "id": "tutorials-ims#1653", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1653, - "title": "docs: register approuter-static-serving page in sidebar (fix Pages CI)", - "summary": "Registered a new architecture page in the documentation sidebar.", - "category": "Docs", - "mergedAt": "2026-08-11T14:37:09Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1653" - }, - { - "id": "tutorials-ims#1649", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1649, - "title": "Admin portal no longer reload-loops on authorization errors", - "summary": "The admin portal no longer enters an infinite reload loop when a session lacks the required authorization scope — it now shows a clear access-denied message so the user knows what action to take.", - "category": "Fix", - "mergedAt": "2026-08-11T14:23:46Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1649" - }, - { - "id": "tutorials-ims#1645", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1645, - "title": "spec: HANA/CAP content-page serving + asset-hash retention (durable fix)", - "summary": "Design spec for serving all pages from the database and retaining asset hashes across deploys.", - "category": "Docs", - "mergedAt": "2026-08-11T13:56:37Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1645" - }, - { - "id": "tutorials-ims#1644", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1644, - "title": "App router recovers from transient module load errors on refresh", - "summary": "The application router now retries its module-loading step when a transient import error occurs, preventing a page refresh from leaving the site in a broken state after a brief network hiccup during startup.", - "category": "Fix", - "mergedAt": "2026-08-11T13:56:18Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1644" - }, - { - "id": "tutorials-ims#1647", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1647, - "title": "Devtoberfest App Space missions load correctly", - "summary": "The Devtoberfest App Space now correctly resolves which mission is associated with an event, fixing a lookup direction bug that was preventing mission content from loading on the App Space page.", - "category": "Fix", - "mergedAt": "2026-08-11T13:55:55Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1647" - }, - { - "id": "tutorials-ims#1648", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1648, - "title": "Animated GIFs in tutorials now animate correctly", - "summary": "Animated GIFs embedded in tutorial content now play their animations correctly — they are no longer flattened to static images by the CDN image processor.", - "category": "Fix", - "mergedAt": "2026-08-11T13:54:53Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1648" - }, - { - "id": "tutorials-ims#1646", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1646, - "title": "Images and links inside Prerequisites tables now render correctly", - "summary": "Images and hyperlinks placed inside Prerequisites tables in tutorial content now render as expected instead of showing raw markdown syntax or escaped HTML tags.", - "category": "Fix", - "mergedAt": "2026-08-11T13:12:22Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1646" - }, - { - "id": "tutorials-ims#1643", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1643, - "title": "chore(deploy): bump prod tutorials-srv instances 2->4 for launch load", - "summary": "Scaled the production backend to four instances to absorb launch-day load.", - "category": "Maintenance", - "mergedAt": "2026-08-11T11:30:47Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1643" - }, - { - "id": "tutorials-ims#1642", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1642, - "title": "docs(architecture): design for durable multi-instance approuter static serving", - "summary": "Design document for serving static assets reliably across multiple server instances.", - "category": "Docs", - "mergedAt": "2026-08-11T11:18:47Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1642" - }, - { - "id": "tutorials-ims#1641", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1641, - "title": "ci(rebuild): guard runtime-push path against bare island paths (follow-up #1628)", - "summary": "Added a safeguard so content rebuilds can no longer ship broken JavaScript asset paths.", - "category": "Fix", - "mergedAt": "2026-08-11T11:18:35Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1641" - }, - { - "id": "tutorials-ims#1636", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1636, - "title": "Intermittent blank page on load fixed (bootstrap race condition)", - "summary": "A timing race between the app router's legacy redirect module and its initial page load was causing intermittent blank pages or redirect loops for some visitors — the startup sequence is now deterministic.", - "category": "Fix", - "mergedAt": "2026-08-11T10:44:27Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1636" - }, - { - "id": "tutorials-ims#1635", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1635, - "title": "chore(deploy): bump tutorials-srv disk-quota 1024M->2048M", - "summary": "Raised the backend service's disk allocation to match what production needs.", - "category": "Maintenance", - "mergedAt": "2026-08-11T10:43:45Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1635" - }, - { - "id": "tutorials-ims#1628", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1628, - "title": "Content rebuilds now ship correct versioned JS assets", - "summary": "Single-tutorial hotfix rebuilds triggered via GitHub Actions now correctly generate versioned JavaScript asset references, ensuring published pages load current interactive components rather than stale cached code.", - "category": "Fix", - "mergedAt": "2026-08-11T10:27:46Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1628" - }, - { - "id": "tutorials-ims#1626", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1626, - "title": "fix(ci): drop build:island-manifest from postbuild:apps guard suite", - "summary": "Fixed a build guard that was failing every continuous-integration run.", - "category": "Maintenance", - "mergedAt": "2026-08-11T04:13:07Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1626" - }, - { - "id": "tutorials-ims#1627", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1627, - "title": "chore(release): bump MTA version to 1.13.3 for PROD", - "summary": "Version bump ahead of a production release.", - "category": "Maintenance", - "mergedAt": "2026-08-11T03:42:01Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1627" - }, - { - "id": "tutorials-ims#1625", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1625, - "title": "SAP events display on the correct calendar day", - "summary": "SAP events on the homepage now show on the calendar day they actually occur, rather than being shifted by server-side timezone conversion — community events authored in a non-UTC timezone no longer appear on the wrong date.", - "category": "Fix", - "mergedAt": "2026-08-11T02:27:41Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1625" - }, - { - "id": "tutorials-ims#1624", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1624, - "title": "Hotfix rebuilds blocked when current CSS fingerprints are not yet deployed", - "summary": "A safety guard now prevents single-tutorial hotfix rebuilds from going through if the current build's CSS fingerprints have not been deployed yet, avoiding a state where published tutorial HTML references styles that do not exist on the server.", - "category": "Maintenance", - "mergedAt": "2026-08-11T01:54:33Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1624" - }, - { - "id": "tutorials-ims#1623", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1623, - "title": "Cache invalidations now propagate across all server instances", - "summary": "Content cache and navigator cache invalidations now propagate reliably across all running server instances, preventing visitors from seeing stale content on one instance after a content publish updated another.", - "category": "Fix", - "mergedAt": "2026-08-11T01:48:51Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1623" - }, - { - "id": "tutorials-ims#1620", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1620, - "title": "fix(test): un-break unit CI — match island-src partial in module-load guards", - "summary": "Restored the unit-test suite after a template refactor changed how JavaScript bundles are referenced.", - "category": "Maintenance", - "mergedAt": "2026-08-11T01:06:45Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1620" - }, - { - "id": "tutorials-ims#1619", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1619, - "title": "Community event dates now show the locally authored day", - "summary": "Community events such as CodeJams and workshops now display the date as authored, rather than being shifted by server timezone conversion — events authored as starting on a Monday no longer appear as Sunday in the portal.", - "category": "Fix", - "mergedAt": "2026-08-11T00:30:15Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1619" - }, - { - "id": "tutorials-ims#1618", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1618, - "title": "SAP Community profile linking now accepts a pasted profile URL", - "summary": "Linking your SAP Community profile to your developer account now works when you paste the full profile URL, and automatically creates your account record if it does not yet exist.", - "category": "Fix", - "mergedAt": "2026-08-11T00:25:39Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1618" - }, - { - "id": "tutorials-ims#1617", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1617, - "title": "Raw image attributes no longer appear as text in option-tab blocks", - "summary": "Images inside option-tab blocks in tutorials no longer leak their raw HTML attributes as visible text below the image — the rendered output is now clean.", - "category": "Fix", - "mergedAt": "2026-08-11T00:21:08Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1617" - }, - { - "id": "tutorials-ims#1613", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1613, - "title": "Local builds now reliably reference correct versioned JS assets", - "summary": "The build step that maps Vue component names to their versioned JS filenames is now always run as part of the main build, fixing a long-standing issue where local builds shipped pages with unversioned JS paths that would not match the assets actually on the server.", - "category": "Maintenance", - "mergedAt": "2026-08-10T23:26:07Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1613" - }, - { - "id": "tutorials-ims#1612", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1612, - "title": "Concepts page no longer 404s on hard refresh with a query string", - "summary": "Refreshing or directly navigating to a `/concepts/` URL with a query parameter no longer returns a 404 — the route is now correctly handled server-side.", - "category": "Fix", - "mergedAt": "2026-08-10T22:05:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1612" - }, - { - "id": "tutorials-ims#1611", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1611, - "title": "Joule and SAP Fundamental Styles CSS are now cache-busted on update", - "summary": "The Joule AI assistant stylesheet and the SAP Fundamental Styles base CSS are now content-hashed, preventing browsers and CDN edges from serving stale cached versions of these critical stylesheets after a platform update.", - "category": "Fix", - "mergedAt": "2026-08-10T21:42:18Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1611" - }, - { - "id": "tutorials-ims#1610", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1610, - "title": "Topics page concept links now point to published content", - "summary": "Placeholder concept links on the Topics page now point to real published concept pages instead of broken placeholder slugs, so all concept browsing links reach actual content.", - "category": "Fix", - "mergedAt": "2026-08-10T21:36:54Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1610" - }, - { - "id": "tutorials-ims#1609", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1609, - "title": "Interactive JS components are now versioned to prevent stale code", - "summary": "Interactive JavaScript components on portal pages are now content-hashed so CDN edges and browsers always fetch the current version after a deployment, eliminating the stale-JS problem that could leave interactive page elements in a broken state.", - "category": "Fix", - "mergedAt": "2026-08-10T21:14:01Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1609" - }, - { - "id": "tutorials-ims#1608", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1608, - "title": "Developer Advocate profile card flip works correctly on iOS Safari", - "summary": "Developer Advocate profile cards now flip correctly on iOS Safari — the front photo is properly hidden when the card flips to reveal the back, instead of both sides being visible at the same time.", - "category": "Fix", - "mergedAt": "2026-08-10T20:41:25Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1608" - }, - { - "id": "tutorials-ims#1606", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1606, - "title": "Homepage verb tiles always navigate on click, even after hovering", - "summary": "Clicking a learning verb tile on the homepage now reliably navigates to the correct page even after hovering over the card triggered the flip animation — the click target was previously lost after the animation completed.", - "category": "Fix", - "mergedAt": "2026-08-10T20:28:18Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1606" - }, - { - "id": "tutorials-ims#1603", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1603, - "title": "Remaining page-level Hugo CSS files are now cache-busted", - "summary": "The remaining page-level stylesheets not yet covered by content hashing are now versioned, completing full CDN cache-busting coverage for CSS across the platform.", - "category": "Fix", - "mergedAt": "2026-08-10T20:18:48Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1603" - }, - { - "id": "tutorials-ims#1602", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1602, - "title": "Devtoberfest event registrations can now be saved to the database", - "summary": "Devtoberfest event registrations can now be correctly persisted — a missing database sequence for generating registration IDs was causing all registrations to fail silently.", - "category": "Fix", - "mergedAt": "2026-08-10T19:59:31Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1602" - }, - { - "id": "tutorials-ims#1601", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1601, - "title": "Hugo CSS files are content-hashed to prevent stale style delivery", - "summary": "Hugo-managed CSS files are now content-hashed at build time, ensuring CDN edges and browsers always retrieve the latest stylesheets after a new release rather than serving stale cached versions.", - "category": "Fix", - "mergedAt": "2026-08-10T19:54:57Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1601" - }, - { - "id": "tutorials-ims#1598", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1598, - "title": "Navigator Type and Experience filter lists render fully", - "summary": "The Type and Experience filter panels in the tutorial navigator now render all available options instead of being cut off partway through the list.", - "category": "Fix", - "mergedAt": "2026-08-10T19:53:40Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1598" - }, - { - "id": "tutorials-ims#1599", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1599, - "title": "Duplicate product tags in navigator filters are now merged", - "summary": "Duplicate Software Product tags in the tutorial navigator filter — caused by slight label variations across tutorial metadata — are now merged by display label, resulting in cleaner filter lists without repetitions.", - "category": "Fix", - "mergedAt": "2026-08-10T19:53:10Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1599" - }, - { - "id": "tutorials-ims#1597", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1597, - "title": "Option-tab controls in tutorials render as interactive buttons", - "summary": "Option-tab controls in tutorials now render as interactive buttons as intended, rather than showing the raw HTML tag text that was being escaped by the Markdown renderer.", - "category": "Fix", - "mergedAt": "2026-08-10T19:24:40Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1597" - }, - { - "id": "tutorials-ims#1593", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1593, - "title": "Explore page no longer breaks the Hugo build", - "summary": "A special character in the Explore page frontmatter description that was causing Hugo build failures has been escaped, restoring the ability to build the full site with the Explore page included.", - "category": "Fix", - "mergedAt": "2026-08-10T19:02:20Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1593" - }, - { - "id": "tutorials-ims#1589", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1589, - "title": "Homepage learning verb tiles updated", - "summary": "The learning verb tiles on the homepage — the Browse by, Learn how to, and Discover action categories — have been updated with refreshed copy and links.", - "category": "Feature", - "mergedAt": "2026-08-10T18:33:26Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1589" - }, - { - "id": "tutorials-ims#1588", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1588, - "title": "Tutorials can now be embedded in SAP Business AI Platform", - "summary": "Tutorials can now be rendered in a clean read-only mode inside SAP Business AI Platform (BAIP), with portal chrome hidden and only the tutorial content and step navigation exposed — enabling seamless in-context learning from within BAIP.", - "category": "Feature", - "mergedAt": "2026-08-10T18:23:34Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1588" - }, - { - "id": "tutorials-ims#1587", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1587, - "title": "Production app router no longer crash-loops under load", - "summary": "The production app router was running out of memory under real traffic and crash-looping; its memory allocation has been increased to handle the load seen since the platform went live.", - "category": "Fix", - "mergedAt": "2026-08-10T18:03:19Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1587" - }, - { - "id": "tutorials-ims#1586", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1586, - "title": "Devtoberfest Planner admin link resolves to the correct environment", - "summary": "The Devtoberfest Planner link in the admin interface now correctly resolves to the current environment — it was previously always pointing to DEV even when accessed from the PROD admin panel.", - "category": "Fix", - "mergedAt": "2026-08-10T17:27:35Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1586" - }, - { - "id": "tutorials-ims#1585", - "repo": "tutorials-ims", - "label": "Developer Portal", - "number": 1585, - "title": "Topics admin actions work reliably regardless of slug casing", - "summary": "Topic publish and unpublish actions in the admin interface now correctly normalise the topic slug before performing the lookup, fixing a case-sensitivity mismatch that was causing failures on any topic change.", - "category": "Fix", - "mergedAt": "2026-08-10T16:00:49Z", - "week": "2026-W33", - "weekStart": "2026-08-10", - "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1585" - } - ] -} +{ + "generatedAt": "2026-10-15T21:16:29.187Z", + "repos": [ + { + "key": "tutorials-ims", + "slug": "sap-tutorials/tutorials-ims", + "label": "Developer Portal" + } + ], + "entries": [ + { + "id": "tutorials-ims#2796", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2796, + "title": "URL Health admin tile loads reliably", + "summary": "The new URL Health admin screen is now built into the admin UI bundle instead of depending on a CDN, so it loads reliably in all environments.", + "category": "Fix", + "mergedAt": "2026-10-15T20:56:43Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2796" + }, + { + "id": "tutorials-ims#2795", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2795, + "title": "Release promotion", + "summary": "Promoted the URL Health subsystem and the 1.39.0 release train to the production release line.", + "category": "Maintenance", + "mergedAt": "2026-10-15T20:39:53Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2795" + }, + { + "id": "tutorials-ims#2793", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2793, + "title": "URL Health status values validated correctly", + "summary": "Fixed the new link-health field so tutorials, missions, and groups save and edit without a spurious validation error, and the URL Health sidebar entry now opens its screen.", + "category": "Fix", + "mergedAt": "2026-10-15T17:55:49Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2793" + }, + { + "id": "tutorials-ims#2792", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2792, + "title": "AI video quizzes use the English transcript", + "summary": "Auto-generated quizzes for session videos now read the English caption track instead of whichever auto-translation YouTube happened to return first, so the questions match what the speaker actually said.", + "category": "Fix", + "mergedAt": "2026-10-15T17:35:02Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2792" + }, + { + "id": "tutorials-ims#2791", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2791, + "title": "URL Health checks for tutorials, missions, and groups", + "summary": "A new Admin → Reporting → URL Health screen flags broken or slow links across published content and surfaces missions/groups whose child tutorials are deleted or unservable, run nightly and on demand.", + "category": "Feature", + "mergedAt": "2026-10-15T17:02:18Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2791" + }, + { + "id": "tutorials-ims#2790", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2790, + "title": "Intro videos render again", + "summary": "Restored the embedded video player in a tutorial's intro section, which had been getting stripped out during parsing.", + "category": "Fix", + "mergedAt": "2026-10-15T15:10:24Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2790" + }, + { + "id": "tutorials-ims#2789", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2789, + "title": "Devtoberfest points total includes the cat-game bonus", + "summary": "The Devtoberfest points banner now counts the 100-point Tag the Cat bonus in the total possible score, so the goal shown matches what you can actually earn.", + "category": "Fix", + "mergedAt": "2026-10-15T14:01:10Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2789" + }, + { + "id": "tutorials-ims#2785", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2785, + "title": "Fewer false alarms in tutorial fence linting", + "summary": "The code-fence lint check no longer mis-flags legitimate shell comments and REST-client separators as problems, clearing dozens of false positives on tutorials that render perfectly.", + "category": "Fix", + "mergedAt": "2026-10-14T22:26:18Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2785" + }, + { + "id": "tutorials-ims#2784", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2784, + "title": "Scheduled jobs survive deploys", + "summary": "Fixed a condition where a deploy could leave the background job queue permanently stalled, so scheduled jobs keep running across blue-green cutovers.", + "category": "Fix", + "mergedAt": "2026-10-14T21:56:15Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2784" + }, + { + "id": "tutorials-ims#2783", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2783, + "title": "Faster deploy builds", + "summary": "Deploy builds now skip the AI-quiz generation pass on tutorial bodies the deploy discards anyway, cutting build time without affecting the quizzes shown on live pages.", + "category": "Performance", + "mergedAt": "2026-10-14T21:55:51Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2783" + }, + { + "id": "tutorials-ims#2781", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2781, + "title": "Unblock content publishing", + "summary": "Promoted the fix that stopped a new lint gate from hard-failing the production content-publish pipeline on pre-existing debt.", + "category": "Maintenance", + "mergedAt": "2026-10-14T18:47:21Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2781" + }, + { + "id": "tutorials-ims#2780", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2780, + "title": "Content publishing no longer blocked by lint debt", + "summary": "Reverted a lint gate that was blocking all tutorial publishing because of pre-existing issues in unrelated tutorials; linting is advisory again.", + "category": "Fix", + "mergedAt": "2026-10-14T18:42:33Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2780" + }, + { + "id": "tutorials-ims#2779", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2779, + "title": "Completion markers on mission and group pages", + "summary": "Mission and group pages now show a green check on each completed tutorial's numbered marker plus an 'N of M complete' indicator in every group header, matching the tutorial-page step list.", + "category": "Feature", + "mergedAt": "2026-10-14T18:40:54Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2779" + }, + { + "id": "tutorials-ims#2775", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2775, + "title": "Release promotion", + "summary": "Promoted the CommonMark parser fix and content-cache, Devtoberfest, and scheduler fixes to the production release line.", + "category": "Maintenance", + "mergedAt": "2026-10-14T16:53:42Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2775" + }, + { + "id": "tutorials-ims#2776", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2776, + "title": "Unified tutorial parser grammar", + "summary": "Migrated the last branch-parsing code onto the shared CommonMark grammar so step segmentation can't drift from how pages actually render.", + "category": "Maintenance", + "mergedAt": "2026-10-14T16:50:15Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2776" + }, + { + "id": "tutorials-ims#2774", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2774, + "title": "Parser fixes reach the QA channel", + "summary": "The build cache now rebuilds tutorial HTML when the parser code changes even if the source markdown didn't, so parser fixes are no longer masked by stale cached output on the QA channel.", + "category": "Fix", + "mergedAt": "2026-10-14T14:38:57Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2774" + }, + { + "id": "tutorials-ims#2773", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2773, + "title": "Devtoberfest join state and points resolve correctly", + "summary": "Users with multiple SAP logins under one universal ID now see the correct join status and point total, fixing the 'shown as not joined but 409 when joining' paradox and missing points.", + "category": "Fix", + "mergedAt": "2026-10-14T13:59:10Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2773" + }, + { + "id": "tutorials-ims#2772", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2772, + "title": "Tutorials stop collapsing to one step", + "summary": "Replaced the brittle code-fence repair passes with a single CommonMark grammar that matches the site's renderer, ending the recurring bug where multi-step tutorials collapsed into one giant code block.", + "category": "Fix", + "mergedAt": "2026-10-14T13:56:06Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2772" + }, + { + "id": "tutorials-ims#2771", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2771, + "title": "Automatic recovery from stalled scheduler after deploy", + "summary": "The scheduler now self-checks after startup and recovers automatically when a blue-green deploy leaves its job queue stalled, instead of requiring a manual restart.", + "category": "Fix", + "mergedAt": "2026-10-14T13:47:33Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2771" + }, + { + "id": "tutorials-ims#2770", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2770, + "title": "Release promotion", + "summary": "Promoted the Devtoberfest identity/points fix and related UI work to the production release line.", + "category": "Maintenance", + "mergedAt": "2026-10-14T12:24:42Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2770" + }, + { + "id": "tutorials-ims#2767", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2767, + "title": "Devtoberfest points restored for multi-login users", + "summary": "Devtoberfest join and points lookups now resolve through the user's canonical account, so people with both a P-user and S-user no longer land on an empty account showing zero points.", + "category": "Fix", + "mergedAt": "2026-10-14T09:40:20Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2767" + }, + { + "id": "tutorials-ims#2765", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2765, + "title": "Mission and group page islands load", + "summary": "Fixed the interactive progress widgets on mission, group, concept, and puzzle pages that were silently failing to load because their script path 404'd after a build change.", + "category": "Fix", + "mergedAt": "2026-10-13T22:20:57Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2765" + }, + { + "id": "tutorials-ims#2764", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2764, + "title": "More legible inline code in tutorials", + "summary": "Inline code snippets in tutorial text are slightly larger with a clearer background so they stand out against the page.", + "category": "Fix", + "mergedAt": "2026-10-13T21:51:00Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2764" + }, + { + "id": "tutorials-ims#2760", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2760, + "title": "More resilient and faster AI-quiz builds", + "summary": "Added retry-with-backoff and a warm-cache guard around AI quiz generation so transient API errors no longer silently drop quiz questions and cold local builds warn instead of surprising you.", + "category": "Performance", + "mergedAt": "2026-10-13T21:00:54Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2760" + }, + { + "id": "tutorials-ims#2759", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2759, + "title": "Tutorial Picture-in-Picture reference", + "summary": "Added documentation for the pop-out step window (the Steps-header chevron) that opens a tutorial step in a floating companion window.", + "category": "Docs", + "mergedAt": "2026-10-13T19:57:56Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2759" + }, + { + "id": "tutorials-ims#2757", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2757, + "title": "Release promotion", + "summary": "Promoted the TechEd banner, detail-page completion, completion cascade, and related fixes to the production release line.", + "category": "Maintenance", + "mergedAt": "2026-10-13T18:30:44Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2757" + }, + { + "id": "tutorials-ims#2756", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2756, + "title": "Production release 1.38.0", + "summary": "Promoted this train of new features and fixes to production in the 1.38.0 release — including the SAP TechEd homepage banner, group and mission progress on detail pages, and more reliable completion tracking.", + "category": "Maintenance", + "mergedAt": "2026-10-13T18:17:23.000Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2756" + }, + { + "id": "tutorials-ims#2754", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2754, + "title": "Faster-loading admin tiles", + "summary": "Every admin tile now loads from a pre-built bundle, so the admin UI opens noticeably faster.", + "category": "Performance", + "mergedAt": "2026-10-13T16:55:22Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2754" + }, + { + "id": "tutorials-ims#2755", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2755, + "title": "SAP TechEd banner on the homepage", + "summary": "The homepage now promotes the free virtual SAP TechEd event with a live countdown, taking over automatically once Devtoberfest ends so the two never overlap.", + "category": "Feature", + "mergedAt": "2026-10-13T16:54:59Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2755" + }, + { + "id": "tutorials-ims#2753", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2753, + "title": "Tutorial-to-tutorial links go to the right page", + "summary": "Links written as a plain tutorial name inside a tutorial now jump to that tutorial instead of reloading the page you are already on.", + "category": "Fix", + "mergedAt": "2026-10-13T16:21:19Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2753" + }, + { + "id": "tutorials-ims#2750", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2750, + "title": "fix(deploy): admin-bundle guard false-drifts on preload-built puzzles", + "summary": "Hardened a deploy safety check so it no longer falsely flags the new pre-built admin bundles.", + "category": "Maintenance", + "mergedAt": "2026-10-13T14:40:17Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2750" + }, + { + "id": "tutorials-ims#2748", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2748, + "title": "feat(admin-ui): prototype UI5 Component-preload build (puzzles tile)", + "summary": "Groundwork for pre-building admin tiles, starting with the puzzles tile.", + "category": "Maintenance", + "mergedAt": "2026-10-13T13:41:01Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2748" + }, + { + "id": "tutorials-ims#2747", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2747, + "title": "See the exact update time on a tutorial", + "summary": "Hovering the “updated” date on a tutorial now shows the full update time in your own timezone, so you can tell same-day updates apart.", + "category": "Feature", + "mergedAt": "2026-10-13T13:21:04Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2747" + }, + { + "id": "tutorials-ims#2746", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2746, + "title": "fix(ci): pin unit test fork pool + retry to kill intermittent timeouts", + "summary": "Stabilized the automated test suite to remove intermittent timeouts.", + "category": "Maintenance", + "mergedAt": "2026-10-13T13:20:45Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2746" + }, + { + "id": "tutorials-ims#2744", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2744, + "title": "Group and mission completion that stays correct", + "summary": "Group and mission completion now recomputes and self-heals when the set of tutorials changes, so a finished group no longer reverts and retired tutorials no longer block completion.", + "category": "Fix", + "mergedAt": "2026-10-13T12:09:11Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2744" + }, + { + "id": "tutorials-ims#2743", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2743, + "title": "Progress now shows on group and mission pages", + "summary": "Group and mission detail pages now show your personal progress and completion, not just a plain completed badge on the browse cards.", + "category": "Feature", + "mergedAt": "2026-10-13T12:08:40Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2743" + }, + { + "id": "tutorials-ims#2742", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2742, + "title": "fix(repair-script): refresh CoCompletions after slug rename (durable follow-up to #2740)", + "summary": "Repair tooling now refreshes related completion data after a tutorial is renamed, preventing a knowledge-graph build error.", + "category": "Maintenance", + "mergedAt": "2026-10-13T12:07:38Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2742" + }, + { + "id": "tutorials-ims#2741", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2741, + "title": "fix(parser): #2720 column-zero fence healer must only fire inside list items", + "summary": "Fixed a tutorial formatting fix so it only touches code blocks inside list items, leaving other content untouched.", + "category": "Fix", + "mergedAt": "2026-10-13T08:31:05Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2741" + }, + { + "id": "tutorials-ims#2740", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2740, + "title": "fix(kg): guard coCompletedWith edge arm against vertex-less slugs (kg-communities [4907] crash)", + "summary": "Fixed a crash in the knowledge-graph build triggered by completion links to missing tutorials.", + "category": "Fix", + "mergedAt": "2026-10-13T08:30:50Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2740" + }, + { + "id": "tutorials-ims#2739", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2739, + "title": "fix(2738): identity helpers honor pinned attr.dbUserId before tiered/sapId path", + "summary": "Made user lookup more reliable so progress and favorites resolve to the correct account.", + "category": "Fix", + "mergedAt": "2026-10-13T08:08:12Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2739" + }, + { + "id": "tutorials-ims#2737", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2737, + "title": "Repair tooling for retired-tutorial completion-path slots (#2718, #2719, #2722)", + "summary": "Added tooling to clean up completion slots that pointed at retired tutorials.", + "category": "Maintenance", + "mergedAt": "2026-10-13T06:55:40Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2737" + }, + { + "id": "tutorials-ims#2736", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2736, + "title": "fix(identity): generalize #2730 fix — route all user-scoped handlers through tiered resolver", + "summary": "Routed all progress-related actions through a single reliable user resolver, fixing cases where saved progress attached to the wrong identity.", + "category": "Fix", + "mergedAt": "2026-10-13T06:55:13Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2736" + }, + { + "id": "tutorials-ims#2735", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2735, + "title": "fix(content): render-pipeline token in publish change-detection (#2727)", + "summary": "Tutorial content republishes now correctly detect rendering changes, so edits reliably show up live.", + "category": "Fix", + "mergedAt": "2026-10-13T00:23:37Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2735" + }, + { + "id": "tutorials-ims#2734", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2734, + "title": "fix(favorites): read path must use tiered resolver, not sapId-only (#2730)", + "summary": "Fixed favorites not showing for some users by using the more reliable account lookup.", + "category": "Fix", + "mergedAt": "2026-10-12T22:45:12Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2734" + }, + { + "id": "tutorials-ims#2731", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2731, + "title": "docs(ops): queue-processor stall failure mode in scheduler runbook", + "summary": "Documented how to recover from a stalled background-job queue.", + "category": "Docs", + "mergedAt": "2026-10-12T21:10:07Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2731" + }, + { + "id": "tutorials-ims#2729", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2729, + "title": "fix(parser): heal list-item code fences with column-0 body lines (#2720)", + "summary": "Fixed broken code-block rendering in tutorial steps that put the code body at the far-left margin.", + "category": "Fix", + "mergedAt": "2026-10-12T20:25:58Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2729" + }, + { + "id": "tutorials-ims#2728", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2728, + "title": "style(tutorials): restore list-child indent for OPTION blocks in substeps (#2703)", + "summary": "Restored correct indentation for multiple-choice option blocks nested inside tutorial substeps.", + "category": "Fix", + "mergedAt": "2026-10-12T19:25:34Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2728" + }, + { + "id": "tutorials-ims#2726", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2726, + "title": "ci(qa-rebuild): allow-revert must also --force past the client short-circuit (#2703)", + "summary": "Improved the QA preview rebuild so it can force stale tutorials through the content pipeline.", + "category": "Maintenance", + "mergedAt": "2026-10-12T17:08:27Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2726" + }, + { + "id": "tutorials-ims#2725", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2725, + "title": "ci(qa-rebuild): add allow-revert input to unstick #672-guarded QA slugs (#2703)", + "summary": "Added an option to the QA preview rebuild to unstick tutorials that were being skipped.", + "category": "Maintenance", + "mergedAt": "2026-10-12T16:50:21Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2725" + }, + { + "id": "tutorials-ims#2724", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2724, + "title": "fix(publish): normalize tutorial slug to lowercase at discovery + tripwire (#2714 guard)", + "summary": "Tutorial content now always publishes under a lowercase name, preventing progress tracking from breaking on tutorials whose source folder used mixed case.", + "category": "Fix", + "mergedAt": "2026-10-12T16:50:09Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2724" + }, + { + "id": "tutorials-ims#2723", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2723, + "title": "fix(progress): case-insensitive tutorial slug lookup in completeStep/reset/getProgress (#2714)", + "summary": "Progress tracking now matches tutorial names regardless of capitalization, so completing or resetting a step works on affected tutorials.", + "category": "Fix", + "mergedAt": "2026-10-12T16:02:11Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2723" + }, + { + "id": "tutorials-ims#2713", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2713, + "title": "fix(tutorials): fully dedent nested OPTION bodies + trailing substep content (#2703)", + "summary": "Fixed indentation of nested option blocks and following content so those tutorial steps render cleanly.", + "category": "Fix", + "mergedAt": "2026-10-12T13:01:40Z", + "week": "2026-W42", + "weekStart": "2026-10-12", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2713" + }, + { + "id": "tutorials-ims#2712", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2712, + "title": "Production release 1.37.2", + "summary": "Promoted the MCP sign-in reliability fix and accumulated updates to production in the 1.37.2 release.", + "category": "Maintenance", + "mergedAt": "2026-10-11T21:34:36Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2712" + }, + { + "id": "tutorials-ims#2711", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2711, + "title": "fix(mcp): DCR must return srv-mcp's clientid, not the approuter's own", + "summary": "Fixed AI-assistant client registration to return the correct service identifier so connections authorize properly.", + "category": "Fix", + "mergedAt": "2026-10-11T16:56:20Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2711" + }, + { + "id": "tutorials-ims#2710", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2710, + "title": "Automatic client registration for AI assistants", + "summary": "AI assistant connections can now register themselves automatically with the portal using a standard protocol, removing a manual setup step.", + "category": "Feature", + "mergedAt": "2026-10-11T15:55:11Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2710" + }, + { + "id": "tutorials-ims#2709", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2709, + "title": "docs(mcp): correct PROD client_id — DEV and PROD have DISTINCT IAS clients", + "summary": "Corrected documentation on the distinct AI-assistant client identifiers used in test and production.", + "category": "Docs", + "mergedAt": "2026-10-11T14:25:57Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2709" + }, + { + "id": "tutorials-ims#2708", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2708, + "title": "Production release 1.37.2 (MCP sign-in fix)", + "summary": "Promoted the AI-assistant sign-in reliability fix to production.", + "category": "Maintenance", + "mergedAt": "2026-10-10T16:31:54Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2708" + }, + { + "id": "tutorials-ims#2707", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2707, + "title": "Reliable sign-in for AI assistant (MCP) connections", + "summary": "AI clients connecting through the MCP endpoint now sign in reliably — the portal hands back a token the service can actually validate, so connections no longer fail right after a successful login.", + "category": "Fix", + "mergedAt": "2026-10-10T14:30:30Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2707" + }, + { + "id": "tutorials-ims#2706", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2706, + "title": "Production release 1.37.1", + "summary": "Promoted the accumulated fixes and docs updates to production in the 1.37.1 release.", + "category": "Maintenance", + "mergedAt": "2026-10-09T23:10:00Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2706" + }, + { + "id": "tutorials-ims#2705", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2705, + "title": "Discovery Center tutorial import tooling", + "summary": "Added internal tooling that converts SAP Discovery Center tutorials into the platform's format, making it easier for authors to bring existing content onto the portal.", + "category": "Maintenance", + "mergedAt": "2026-10-09T21:20:49Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2705" + }, + { + "id": "tutorials-ims#2704", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2704, + "title": "Correct rendering of OS options and alerts in nested tutorial steps", + "summary": "Tutorials that nest OS-specific option panels inside numbered sub-steps now render correctly — step numbering is preserved, and code blocks, images, and notes inside those panels display properly, with distinct styling for Note and Important callouts.", + "category": "Fix", + "mergedAt": "2026-10-09T20:30:02Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2704" + }, + { + "id": "tutorials-ims#2700", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2700, + "title": "Correct the MCP quickstart client ID", + "summary": "The MCP quickstart documentation now shows the correct production client ID, so new connections use the current identity client instead of a retired one.", + "category": "Docs", + "mergedAt": "2026-10-08T22:24:21Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2700" + }, + { + "id": "tutorials-ims#2701", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2701, + "title": "Keep MCP sessions connected across token refresh", + "summary": "AI clients connecting to the Developers MCP server no longer drop on reconnect — the consent proxy now honors refresh-token requests, so a session stays authenticated after the initial sign-in without a repeated login.", + "category": "Fix", + "mergedAt": "2026-10-08T22:24:06Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2701" + }, + { + "id": "tutorials-ims#2699", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2699, + "title": "Release 1.37.0", + "summary": "Internal release packaging the 1.37.0 train for promotion to production.", + "category": "Maintenance", + "mergedAt": "2026-10-08T19:57:34Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2699" + }, + { + "id": "tutorials-ims#2698", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2698, + "title": "Consent screen for the Developers MCP server (production)", + "summary": "The Application Access Request consent screen is now live on developers.sap.com production, so you review and approve what an AI client can access before connecting to the Developers MCP server.", + "category": "Feature", + "mergedAt": "2026-10-08T19:29:04Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2698" + }, + { + "id": "tutorials-ims#2697", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2697, + "title": "fix(mcp): forward client_id through idpExchange (iasClientId is not defined)", + "summary": "Fixed a sign-in failure that stopped the MCP OAuth flow from completing after you accepted the consent screen.", + "category": "Fix", + "mergedAt": "2026-10-08T18:10:57Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2697" + }, + { + "id": "tutorials-ims#2694", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2694, + "title": "Redirect a retired tutorial to an external SAP page", + "summary": "Admins can now redirect a retired tutorial to an approved external SAP page (such as a community.sap.com article), not only to another tutorial.", + "category": "Feature", + "mergedAt": "2026-10-08T18:10:42Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2694" + }, + { + "id": "tutorials-ims#2696", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2696, + "title": "chore(mcp): enable MCP_CONSENT_ENABLED on DEV approuter", + "summary": "Turned on the MCP consent screen in the development environment ahead of the production rollout.", + "category": "Maintenance", + "mergedAt": "2026-10-08T16:49:24Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2696" + }, + { + "id": "tutorials-ims#2695", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2695, + "title": "Clearer author onboarding and QA access instructions", + "summary": "Clarified the tutorial-author onboarding docs and added clear instructions for requesting QA channel access.", + "category": "Docs", + "mergedAt": "2026-10-08T16:44:55Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2695" + }, + { + "id": "tutorials-ims#2693", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2693, + "title": "fix(mcp): flip protected-resource authorization_servers to self when consent enabled", + "summary": "Fixed the MCP consent screen being skipped so it now reliably appears during sign-in.", + "category": "Fix", + "mergedAt": "2026-10-08T15:31:49Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2693" + }, + { + "id": "tutorials-ims#2691", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2691, + "title": "fix(mcp): consent proxy forwards client_id instead of pinning server config", + "summary": "Fixed the MCP sign-in flow so each AI client authenticates with its own identity instead of a single shared one.", + "category": "Fix", + "mergedAt": "2026-10-08T14:56:33Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2691" + }, + { + "id": "tutorials-ims#2689", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2689, + "title": "First-time users can join Devtoberfest", + "summary": "First-time signed-in users can now join Devtoberfest instead of hitting a sign-up error.", + "category": "Fix", + "mergedAt": "2026-10-08T13:19:10Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2689" + }, + { + "id": "tutorials-ims#2685", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2685, + "title": "fix(content): export excludedSlugsHandler from @tutorials/content barrel (#2585)", + "summary": "Fixed a crash that was taking the backend offline and returning errors across the site.", + "category": "Fix", + "mergedAt": "2026-10-07T22:47:09Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2685" + }, + { + "id": "tutorials-ims#2684", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2684, + "title": "fix(ui5): map account-merge island to ui5-me entry for ui5-text coverage (#2651)", + "summary": "Fixed a build issue that was blocking site deployments so the account-history merge page ships correctly.", + "category": "Fix", + "mergedAt": "2026-10-07T21:45:12Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2684" + }, + { + "id": "tutorials-ims#2683", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2683, + "title": "fix(hugo): restore security-reviewed marker on link safeHTML (#2680 regression)", + "summary": "Fixed a build-check regression that was blocking site deployments.", + "category": "Fix", + "mergedAt": "2026-10-07T21:37:05Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2683" + }, + { + "id": "tutorials-ims#2682", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2682, + "title": "fix(quarantine): exclude DELETED/INACTIVE tutorials from quarantine + publisher (#2585)", + "summary": "Deleted and inactive tutorials no longer show up in the admin moderation queue or get reprocessed by the publisher.", + "category": "Fix", + "mergedAt": "2026-10-07T21:26:42Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2682" + }, + { + "id": "tutorials-ims#2681", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2681, + "title": "Headless admin API access via personal access tokens", + "summary": "Admins can now reach the admin OData and GraphQL APIs from scripts and the command line using a personal access token, no shared credential needed.", + "category": "Feature", + "mergedAt": "2026-10-07T18:19:23Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2681" + }, + { + "id": "tutorials-ims#2680", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2680, + "title": "fix(app-space): make Joule dark-mode detection reactive so light gradient wins", + "summary": "Fixed the App Space hero so it correctly shows the light-mode brand gradient when you are in light mode.", + "category": "Fix", + "mergedAt": "2026-10-07T15:44:28Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2680" + }, + { + "id": "tutorials-ims#2679", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2679, + "title": "fix(app-space): true 2-stop Joule brand gradient in hero", + "summary": "Updated the App Space hero to use the correct two-color brand gradient.", + "category": "Fix", + "mergedAt": "2026-10-07T14:49:05Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2679" + }, + { + "id": "tutorials-ims#2678", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2678, + "title": "Security fix: block unsafe link schemes in tutorials", + "summary": "Closed a cross-site scripting hole in tutorial link rendering so malicious link schemes can no longer run code.", + "category": "Fix", + "mergedAt": "2026-10-07T07:06:41Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2678" + }, + { + "id": "tutorials-ims#2677", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2677, + "title": "test(account-merge): mid-merge-throw rollback unit test (#2675)", + "summary": "Added a test that verifies account-history merges roll back cleanly if they fail partway through.", + "category": "Maintenance", + "mergedAt": "2026-10-07T06:55:31Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2677" + }, + { + "id": "tutorials-ims#2676", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2676, + "title": "fix(account-merge): close email-send timing side-channel (#2674)", + "summary": "Hardened the account-merge request flow so response timing can no longer reveal whether an account exists.", + "category": "Fix", + "mergedAt": "2026-10-07T06:14:24Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2676" + }, + { + "id": "tutorials-ims#2673", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2673, + "title": "fix(navigator): guard window access in urlSync against teardown race", + "summary": "Fixed a flaky test in the tutorial browser's navigation code.", + "category": "Fix", + "mergedAt": "2026-10-07T05:29:53Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2673" + }, + { + "id": "tutorials-ims#2672", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2672, + "title": "Merge tutorial history from an old account", + "summary": "You can now merge your tutorial history from an old account into your current one through an email-verified self-service flow.", + "category": "Feature", + "mergedAt": "2026-10-07T01:16:06Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2672" + }, + { + "id": "tutorials-ims#2671", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2671, + "title": "feat(btp-audit): BTP→BAIP homepage content audit toolset", + "summary": "Added internal tooling to audit and rename older BTP references in homepage text to SAP Business AI Platform.", + "category": "Maintenance", + "mergedAt": "2026-10-06T18:53:06Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2671" + }, + { + "id": "tutorials-ims#2670", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2670, + "title": "docs: add CONTRIBUTING, ACCESSIBILITY, and PR template", + "summary": "Added contributing, accessibility, and pull-request guidance to the repository.", + "category": "Docs", + "mergedAt": "2026-10-06T17:21:16Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2670" + }, + { + "id": "tutorials-ims#2669", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2669, + "title": "docs: add CONTRIBUTING, ACCESSIBILITY, and PR template", + "summary": "Added contributing, accessibility, and pull-request guidance to the repository.", + "category": "Docs", + "mergedAt": "2026-10-06T17:16:40Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2669" + }, + { + "id": "tutorials-ims#2668", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2668, + "title": "Application Access Request consent screen for MCP", + "summary": "Added the Application Access Request consent screen to the MCP sign-in flow so you can review and approve AI access before connecting.", + "category": "Feature", + "mergedAt": "2026-10-06T15:58:39Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2668" + }, + { + "id": "tutorials-ims#2667", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2667, + "title": "docs(mcp): Option B consent-screen spike design spec", + "summary": "Design spec for the planned MCP sign-in consent screen.", + "category": "Docs", + "mergedAt": "2026-10-06T14:57:14Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2667" + }, + { + "id": "tutorials-ims#2666", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2666, + "title": "fix: skip post-publish setImmediate jobs under VITEST to unblock unit-tests", + "summary": "Fixed a test-environment timing issue that was causing continuous-integration runs to fail even when all tests passed.", + "category": "Maintenance", + "mergedAt": "2026-10-05T23:01:45Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2666" + }, + { + "id": "tutorials-ims#2665", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2665, + "title": "docs: register gameboard + identity-dedup runbooks in sidebar (fix Deploy Docs CI)", + "summary": "Registered two operator runbooks in the documentation sidebar so they appear in navigation.", + "category": "Docs", + "mergedAt": "2026-10-05T22:45:10Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2665" + }, + { + "id": "tutorials-ims#2664", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2664, + "title": "docs(ops): gameboard cat-game PROD data troubleshooting runbook", + "summary": "Added an operator runbook for troubleshooting the Devtoberfest cat-game counter and leaderboard.", + "category": "Docs", + "mergedAt": "2026-10-05T22:33:43Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2664" + }, + { + "id": "tutorials-ims#2662", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2662, + "title": "docs(ops): identity dedup reconciliation runbook (#2651)", + "summary": "Added an operator runbook for reconciling duplicate-account identity records.", + "category": "Docs", + "mergedAt": "2026-10-05T20:01:31Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2662" + }, + { + "id": "tutorials-ims#2663", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2663, + "title": "Release 1.36.0 — Admin UI CDN outage fix + A2A prod auth + sign-in/identity (DEV→main)", + "summary": "Release 1.36.0 to production, including the Admin UI outage fix and sign-in and identity improvements.", + "category": "Maintenance", + "mergedAt": "2026-10-05T20:00:54Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2663" + }, + { + "id": "tutorials-ims#2657", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2657, + "title": "fix(a2a): resolve prod /a2a 401 — label-based XSUAA resolution + IAS-only degrade (#2649)", + "summary": "Fixed authentication on the agent-to-agent endpoint so machine-to-machine clients can connect reliably in production.", + "category": "Fix", + "mergedAt": "2026-10-05T19:02:11Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2657" + }, + { + "id": "tutorials-ims#2661", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2661, + "title": "fix(identity): resolve + reconcile duplicate Users rows — cat-game counter/leaderboard desync (#2651)", + "summary": "Signing in with SAP ID no longer creates a duplicate profile, so your Devtoberfest points and leaderboard standing stay in sync.", + "category": "Fix", + "mergedAt": "2026-10-05T19:01:45Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2661" + }, + { + "id": "tutorials-ims#2660", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2660, + "title": "fix(ci): unbreak Docs Deploy + unit tests", + "summary": "Fixed broken documentation builds and a flaky search test to keep the platform's quality checks green.", + "category": "Fix", + "mergedAt": "2026-10-05T18:19:45Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2660" + }, + { + "id": "tutorials-ims#2659", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2659, + "title": "Single source of truth for the Admin UI's SAPUI5 version", + "summary": "The Admin UI's SAPUI5 version now lives in one place with an automatic drift check, so a future version bump can't silently break the admin tools.", + "category": "Maintenance", + "mergedAt": "2026-10-05T17:51:56Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2659" + }, + { + "id": "tutorials-ims#2658", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2658, + "title": "fix(admin): UI5 CDN pin 1.136.0 → 1.148.12 — PROD Admin UI outage", + "summary": "Restored the Admin UI after an SAPUI5 version was removed from SAP's CDN, repinning to the current long-term-support release.", + "category": "Fix", + "mergedAt": "2026-10-05T17:27:38Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2658" + }, + { + "id": "tutorials-ims#2656", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2656, + "title": "feat(rebuild-content): add allow-revert input to clear #672-guarded source-hash drift", + "summary": "Added an option to the content-rebuild workflow that clears a stuck content-drift check.", + "category": "Maintenance", + "mergedAt": "2026-10-05T14:49:12Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2656" + }, + { + "id": "tutorials-ims#2655", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2655, + "title": "feat(rebuild-content): add allow-revert input to clear #672-guarded source-hash drift", + "summary": "Added an option to the content-rebuild workflow that clears a stuck content-drift check.", + "category": "Maintenance", + "mergedAt": "2026-10-05T14:06:30Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2655" + }, + { + "id": "tutorials-ims#2653", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2653, + "title": "feat(signin): warn SAP-ID holders a mismatched social login forks progress #2651", + "summary": "The sign-in screen now warns SAP ID holders that choosing a different social login can fork their progress onto a separate profile.", + "category": "Feature", + "mergedAt": "2026-10-05T13:13:28Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2653" + }, + { + "id": "tutorials-ims#2652", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2652, + "title": "feat(signin): move SAP ID to top of provider list", + "summary": "Continue with SAP ID now appears first on the sign-in screen, ahead of the other login providers.", + "category": "Feature", + "mergedAt": "2026-10-05T10:39:29Z", + "week": "2026-W41", + "weekStart": "2026-10-05", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2652" + }, + { + "id": "tutorials-ims#2648", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2648, + "title": "Release 1.35.0 promoted to production", + "summary": "Shipped the 1.35.0 release train, restoring developer-portal sign-in and moving agent-to-agent authentication onto SAP IAS.", + "category": "Maintenance", + "mergedAt": "2026-10-04T22:17:01Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2648" + }, + { + "id": "tutorials-ims#2647", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2647, + "title": "fix(deploy): correct MCP mtar build flag (-f) in docs; parallelize asset-retention smoke", + "summary": "Corrected an internal deployment command and sped up a post-release health check that was intermittently reporting healthy deployments as failed.", + "category": "Fix", + "mergedAt": "2026-10-04T21:48:23Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2647" + }, + { + "id": "tutorials-ims#2646", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2646, + "title": "fix(auth): scope IAS to /a2a; restore XSUAA browser login (#2593 regression)", + "summary": "Restored sign-in on the developer portal after a recent change had broken logins for everyone on the DEV environment.", + "category": "Fix", + "mergedAt": "2026-10-04T20:44:45Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2646" + }, + { + "id": "tutorials-ims#2645", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2645, + "title": "fix(content): export quarantineIngestHandler from barrel index.js", + "summary": "Fixed a startup crash in the backend service that was blocking deployments.", + "category": "Fix", + "mergedAt": "2026-10-04T18:45:28Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2645" + }, + { + "id": "tutorials-ims#2644", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2644, + "title": "fix(db): add missing migration=5 for Users.pictureUrl", + "summary": "Added a missing database update so profile pictures can be stored, unblocking the deployment.", + "category": "Fix", + "mergedAt": "2026-10-04T18:00:27Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2644" + }, + { + "id": "tutorials-ims#2643", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2643, + "title": "feat(a2a): migrate agent auth from XSUAA client-credentials to SAP IAS (#2593)", + "summary": "Migrated the agent-to-agent integration endpoint to SAP's Identity Authentication sign-in, with existing tokens kept working through the transition.", + "category": "Feature", + "mergedAt": "2026-10-04T17:15:31Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2643" + }, + { + "id": "tutorials-ims#2642", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2642, + "title": "feat(#2586): surface rebuild quarantine outcome on Tutorials OP", + "summary": "The admin 'Rebuild this tutorial' action now honestly reports when a rebuild was blocked by validation instead of always showing success, with the reasons shown on the tutorial's page.", + "category": "Feature", + "mergedAt": "2026-10-04T16:38:32Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2642" + }, + { + "id": "tutorials-ims#2639", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2639, + "title": "feat(auth): login-provider profile picture (#2628)", + "summary": "Social logins can now supply a profile picture, with the SAP Community avatar taking precedence and initials shown as a fallback.", + "category": "Feature", + "mergedAt": "2026-10-04T16:15:17Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2639" + }, + { + "id": "tutorials-ims#2640", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2640, + "title": "feat(#2585): persistent quarantine — HANA persistence + Admin UI", + "summary": "Tutorials that fail pre-publish validation are now recorded centrally and listed in a new 'Quarantined Tutorials' admin screen, so blocked content is visible instead of lost.", + "category": "Feature", + "mergedAt": "2026-10-04T15:35:31Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2640" + }, + { + "id": "tutorials-ims#2638", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2638, + "title": "fix(test): stop semantic-search unit tests leaking via shared cds-caching store", + "summary": "Fixed an intermittently failing semantic-search test caused by a shared cache leaking between test runs.", + "category": "Fix", + "mergedAt": "2026-10-04T14:43:28Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2638" + }, + { + "id": "tutorials-ims#2635", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2635, + "title": "fix(mcp): pin attr.dbUserId on PAT synthetic user so resolvers resolve (#2630)", + "summary": "Fixed personal-access-token access to the hosted developer tools returning 'unable to resolve user' or silently empty results for valid tokens.", + "category": "Fix", + "mergedAt": "2026-10-04T14:00:57Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2635" + }, + { + "id": "tutorials-ims#2637", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2637, + "title": "fix(content): serve-side underscore-slug 404 + document 3b/3c republishes (#2587)", + "summary": "Fixed tutorials with underscores in their address returning 'not found' even though the content was published and healthy.", + "category": "Fix", + "mergedAt": "2026-10-04T13:48:56Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2637" + }, + { + "id": "tutorials-ims#2636", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2636, + "title": "docs: register signin-sso-reauth-followup in sidebar (fix Deploy Docs CI)", + "summary": "Registered a new operations page in the documentation sidebar so the docs site builds again.", + "category": "Docs", + "mergedAt": "2026-10-04T13:13:20Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2636" + }, + { + "id": "tutorials-ims#2634", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2634, + "title": "feat(signin): nudge to sign out before switching IdP over an active IAS session (#2626 follow-up)", + "summary": "The sign-in page now shows a hint to sign out first when you're already signed in and want to switch to a different login provider.", + "category": "Feature", + "mergedAt": "2026-10-04T12:55:31Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2634" + }, + { + "id": "tutorials-ims#2633", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2633, + "title": "fix(mcp): stop anonymous search surfacing deleted/unpublished tutorials (#2631)", + "summary": "Stopped anonymous tutorial search from returning deleted or unpublished tutorials whose links lead to a 'not found' page.", + "category": "Fix", + "mergedAt": "2026-10-04T12:48:29Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2633" + }, + { + "id": "tutorials-ims#2626", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2626, + "title": "docs: follow-up for /signin IdP re-selection over active IAS SSO session", + "summary": "Documented a known limitation where picking a provider on the sign-in page can reuse an existing session instead of switching providers, and the planned fix path.", + "category": "Docs", + "mergedAt": "2026-10-04T12:26:31Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2626" + }, + { + "id": "tutorials-ims#2632", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2632, + "title": "docs(auth): document shipped 5-provider social login + IAS admin setup", + "summary": "Brought the authentication documentation in line with the shipped five-provider social login and its admin-console setup steps.", + "category": "Docs", + "mergedAt": "2026-10-04T12:25:55Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2632" + }, + { + "id": "tutorials-ims#2625", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2625, + "title": "Release 1.34.0 — GitHub login + RPT sign-in page (DEV→main)", + "summary": "Release 1.34.0 to production, including GitHub login and the redesigned sign-in page.", + "category": "Maintenance", + "mergedAt": "2026-10-04T00:16:26Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2625" + }, + { + "id": "tutorials-ims#2624", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2624, + "title": "chore(release): bump deploy version to 1.34.0", + "summary": "Version bump for the GitHub-login and sign-in-page release.", + "category": "Maintenance", + "mergedAt": "2026-10-04T00:12:14Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2624" + }, + { + "id": "tutorials-ims#2623", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2623, + "title": "chore(deploy): enable GITHUB_OIDC_ENABLED on the PROD approuter", + "summary": "Enabled GitHub login on the production environment.", + "category": "Maintenance", + "mergedAt": "2026-10-04T00:00:32Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2623" + }, + { + "id": "tutorials-ims#2622", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2622, + "title": "Redesigned sign-in page with working per-provider buttons", + "summary": "Redesigned the sign-in page with per-provider buttons and fixed the routing so each button signs you in with the provider you picked.", + "category": "Feature", + "mergedAt": "2026-10-03T23:15:18Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2622" + }, + { + "id": "tutorials-ims#2621", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2621, + "title": "Per-provider buttons on the sign-in page", + "summary": "Added per-provider sign-in buttons that take you straight to your chosen identity provider.", + "category": "Feature", + "mergedAt": "2026-10-03T22:00:22Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2621" + }, + { + "id": "tutorials-ims#2620", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2620, + "title": "GitHub logins linked to your identity", + "summary": "Signing in with GitHub now links durably to your developer-portal identity so your progress stays with your account.", + "category": "Feature", + "mergedAt": "2026-10-03T18:05:29Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2620" + }, + { + "id": "tutorials-ims#2619", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2619, + "title": "chore(deploy): enable GITHUB_OIDC_ENABLED on DEV approuter", + "summary": "Enabled GitHub login on the development environment.", + "category": "Maintenance", + "mergedAt": "2026-10-03T16:39:05Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2619" + }, + { + "id": "tutorials-ims#2618", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2618, + "title": "Sign in with GitHub (foundation)", + "summary": "Added the groundwork for Sign in with GitHub, letting SAP identity federate GitHub as a login provider.", + "category": "Feature", + "mergedAt": "2026-10-03T16:25:52Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2618" + }, + { + "id": "tutorials-ims#2616", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2616, + "title": "chore(auth): IAS instance params cover all prod approuter hosts (#2610)", + "summary": "Internal identity configuration update so sign-in covers all production host names.", + "category": "Maintenance", + "mergedAt": "2026-10-03T15:03:59Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2616" + }, + { + "id": "tutorials-ims#2617", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2617, + "title": "feat(header): make \"Manage my Account\" link IdP-aware (#2615)", + "summary": "The Manage my Account link now points to the right account page based on how you signed in.", + "category": "Fix", + "mergedAt": "2026-10-03T14:26:16Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2617" + }, + { + "id": "tutorials-ims#2614", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2614, + "title": "fix(approuter): routes back to XSUAA login, keep IAS binding for logout (#2610)", + "summary": "Restored working login after an identity-service change had broken sign-in.", + "category": "Fix", + "mergedAt": "2026-10-03T12:24:33Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2614" + }, + { + "id": "tutorials-ims#2613", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2613, + "title": "test(smoke): accept IAS /oauth2/authorize redirect (#2610 follow-up)", + "summary": "Updated post-deploy smoke tests to match the new identity-service sign-in redirect.", + "category": "Maintenance", + "mergedAt": "2026-10-03T12:04:34Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2613" + }, + { + "id": "tutorials-ims#2612", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2612, + "title": "Clean logout on shared machines", + "summary": "Reworked sign-in to run through SAP Identity Authentication so logging out fully clears your session, which matters on shared and event machines.", + "category": "Feature", + "mergedAt": "2026-10-03T08:24:08Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2612" + }, + { + "id": "tutorials-ims#2609", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2609, + "title": "chore(approuter): upgrade @sap/approuter 16.9.0 → 23.3.0 (security)", + "summary": "Upgraded the application router to a current version for important security hardening in the authentication path.", + "category": "Maintenance", + "mergedAt": "2026-10-03T06:10:27Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2609" + }, + { + "id": "tutorials-ims#2608", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2608, + "title": "fix(signin): relabel chooser options for clarity", + "summary": "Relabeled the sign-in page options to make the two sign-in paths clearer.", + "category": "Fix", + "mergedAt": "2026-10-03T05:54:55Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2608" + }, + { + "id": "tutorials-ims#2607", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2607, + "title": "fix(signin): exempt /signin chooser from silent auto-login", + "summary": "Fixed the sign-in page so returning visitors actually see the provider chooser instead of being signed in silently.", + "category": "Fix", + "mergedAt": "2026-10-02T21:42:04Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2607" + }, + { + "id": "tutorials-ims#2605", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2605, + "title": "fix(petoberfest-admin): uploader email fallback + photo on detail page", + "summary": "In the Petoberfest admin moderation screen, the uploader is now always shown and full-size photos appear on the detail page.", + "category": "Fix", + "mergedAt": "2026-10-02T20:42:59Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2605" + }, + { + "id": "tutorials-ims#2606", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2606, + "title": "Provider chooser wired into the login flow", + "summary": "Wired the sign-in provider chooser into the login flow so clicking sign in lets you pick an identity provider.", + "category": "Feature", + "mergedAt": "2026-10-02T20:42:27Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2606" + }, + { + "id": "tutorials-ims#2604", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2604, + "title": "Social login via a themed sign-in page", + "summary": "Added a themed sign-in page letting you log in with SAP ID or SAP Universal ID including social providers, without seeing a separate provider chooser.", + "category": "Feature", + "mergedAt": "2026-10-02T19:00:35Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2604" + }, + { + "id": "tutorials-ims#2603", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2603, + "title": "fix(admin-shell): finish BTP→SAP Business AI Platform rename for Subaccount nav item (#2588)", + "summary": "Finished renaming an admin navigation item from BTP to SAP Business AI Platform.", + "category": "Fix", + "mergedAt": "2026-10-02T18:59:18Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2603" + }, + { + "id": "tutorials-ims#2602", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2602, + "title": "fix(app-space): FK-first tutorial resolution in event/app-space progress (#1866)", + "summary": "Fixed empty tutorial cards on the App Space event pages so titles, links, and descriptions now show.", + "category": "Fix", + "mergedAt": "2026-10-02T18:54:48Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2602" + }, + { + "id": "tutorials-ims#2599", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2599, + "title": "docs: sync architecture docs to the split MTA (MCP now separate) (#2589)", + "summary": "Updated the architecture docs to reflect that the MCP service now runs as its own deployment.", + "category": "Docs", + "mergedAt": "2026-10-02T18:35:12Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2599" + }, + { + "id": "tutorials-ims#2601", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2601, + "title": "Colored alert callouts in tutorials", + "summary": "Tutorial authors can now opt into colored note, tip, warning, and caution callouts in blockquotes, with the familiar blue note staying the default.", + "category": "Feature", + "mergedAt": "2026-10-02T18:34:54Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2601" + }, + { + "id": "tutorials-ims#2600", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2600, + "title": "SAP BTP renamed to SAP Business AI Platform", + "summary": "Renamed SAP BTP to SAP Business AI Platform across the developer portal's user-facing text.", + "category": "Feature", + "mergedAt": "2026-10-02T18:29:01Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2600" + }, + { + "id": "tutorials-ims#2598", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2598, + "title": "Petoberfest moderation queue improvements", + "summary": "Petoberfest moderators get enlargeable photos, the uploader's email, a one-click pending filter, and submission notifications in the admin queue.", + "category": "Feature", + "mergedAt": "2026-10-02T17:29:33Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2598" + }, + { + "id": "tutorials-ims#2596", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2596, + "title": "fix(identity): run identity-pin on request tx to end SQLite CI deadlock (#2552)", + "summary": "Fixed a database contention bug in the identity layer that was causing test runs to hang.", + "category": "Fix", + "mergedAt": "2026-10-02T15:30:02Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2596" + }, + { + "id": "tutorials-ims#2594", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2594, + "title": "fix(173): load os-toggle.ts on object-page layout so OS picker hydrates", + "summary": "Fixed the operating-system picker on tutorials so Windows, macOS, and Linux content switches properly instead of showing all at once.", + "category": "Fix", + "mergedAt": "2026-10-02T15:11:53Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2594" + }, + { + "id": "tutorials-ims#2592", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2592, + "title": "docs(api): update MCP signed-in auth to IAS native-HTTP OAuth", + "summary": "Updated the API docs so the signed-in MCP tier reflects the current SAP Identity Authentication OAuth sign-in.", + "category": "Docs", + "mergedAt": "2026-10-02T14:37:19Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2592" + }, + { + "id": "tutorials-ims#2591", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2591, + "title": "Promote DEV→main: preserve /llms-full.txt across catalog-only rebuilds (#2584)", + "summary": "Promoted the fix that preserves the full llms.txt catalog across content rebuilds to production.", + "category": "Maintenance", + "mergedAt": "2026-10-02T14:14:12Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2591" + }, + { + "id": "tutorials-ims#2590", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2590, + "title": "Preserve the full llms.txt catalog across rebuilds", + "summary": "Fixed content rebuilds wiping the full llms.txt listing used by AI crawlers, so the complete tutorial catalog is preserved.", + "category": "Fix", + "mergedAt": "2026-10-02T12:59:25Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2590" + }, + { + "id": "tutorials-ims#2582", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2582, + "title": "Release: mcp-prod.mtaext → main (final MCP prereq for 1.33.0 PROD deploy)", + "summary": "Internal deployment configuration for the production MCP service.", + "category": "Maintenance", + "mergedAt": "2026-10-02T00:53:21Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2582" + }, + { + "id": "tutorials-ims#2581", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2581, + "title": "fix(deploy): add mcp-prod.mtaext — xsuaa-imsprod binding for prod MCP MTA", + "summary": "Internal deployment configuration fix for the production MCP service binding.", + "category": "Maintenance", + "mergedAt": "2026-10-02T00:47:15Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2581" + }, + { + "id": "tutorials-ims#2580", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2580, + "title": "Release: prod.mtaext srv-mcp-url fix → main (unblocks 1.33.0 PROD deploy)", + "summary": "Promoted a production deployment configuration fix that unblocks the 1.33.0 release.", + "category": "Maintenance", + "mergedAt": "2026-10-02T00:40:05Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2580" + }, + { + "id": "tutorials-ims#2579", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2579, + "title": "fix(deploy): prod.mtaext missing srv-mcp-url + MCP OAuth params (prod approuter boot crash)", + "summary": "Fixed a production configuration gap that was crash-looping the application router on deploy.", + "category": "Fix", + "mergedAt": "2026-10-02T00:35:26Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2579" + }, + { + "id": "tutorials-ims#2578", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2578, + "title": "Release 1.33.0 → main (production)", + "summary": "Release 1.33.0 to production, bundling identity, MCP sign-in, and quiz and content fixes.", + "category": "Maintenance", + "mergedAt": "2026-10-01T21:52:00Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2578" + }, + { + "id": "tutorials-ims#2577", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2577, + "title": "fix(docs): register api-consumption in VitePress sidebar (#2539)", + "summary": "Registered the API-consumption guide in the documentation sidebar.", + "category": "Docs", + "mergedAt": "2026-10-01T21:28:08Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2577" + }, + { + "id": "tutorials-ims#2576", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2576, + "title": "New API consumption guide for programmatic access", + "summary": "Adds a developer-facing guide mapping the portal's programmatic API surfaces (MCP, A2A, Admin OData, GraphQL), explaining how to authenticate each and being candid about which ones are headless-consumable today versus browser-only.", + "category": "Docs", + "mergedAt": "2026-10-01T21:18:22Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2576" + }, + { + "id": "tutorials-ims#2573", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2573, + "title": "fix(identity): undeploy stale UserIdentities.hdbtable for migration-table transition (#2552)", + "summary": "Internal database-migration fix so the user-identity table deploys correctly.", + "category": "Fix", + "mergedAt": "2026-10-01T18:58:10Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2573" + }, + { + "id": "tutorials-ims#2572", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2572, + "title": "fix(identity): journal UserIdentities so it deploys to HANA (#2552)", + "summary": "Internal database-migration fix so the user-identity table is created in the database.", + "category": "Fix", + "mergedAt": "2026-10-01T17:49:47Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2572" + }, + { + "id": "tutorials-ims#2571", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2571, + "title": "More reliable account matching across login providers", + "summary": "Reworks how your sign-in is matched to your account so that logins from SAP Universal ID and other identity providers reliably resolve to your real profile and progress, even when they don't carry an SAP employee ID.", + "category": "Feature", + "mergedAt": "2026-10-01T16:55:12Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2571" + }, + { + "id": "tutorials-ims#2570", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2570, + "title": "MCP developer tools now work over HTTP", + "summary": "Fixes the deployed MCP service so its developer tools actually respond to calls instead of failing with a missing-handler error.", + "category": "Fix", + "mergedAt": "2026-10-01T13:52:20Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2570" + }, + { + "id": "tutorials-ims#2568", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2568, + "title": "MCP identity resolution for SAP Universal ID logins", + "summary": "Lets developers connecting through the MCP tier with an SAP Universal ID login resolve to their real SAP account so personal data like tutorial progress comes back correctly.", + "category": "Feature", + "mergedAt": "2026-10-01T12:23:49Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2568" + }, + { + "id": "tutorials-ims#2566", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2566, + "title": "fix(mcp-auth): repoint IAS MCP wiring alzmza7li → atxgsg7zi (#2550)", + "summary": "Repointed the MCP sign-in configuration to the current SAP identity tenant so sign-in discovery works.", + "category": "Fix", + "mergedAt": "2026-10-01T07:34:54Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2566" + }, + { + "id": "tutorials-ims#2565", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2565, + "title": "MCP sign-in works with standard MCP clients", + "summary": "Fixes the MCP OAuth login so standards-compliant MCP clients like mcp-remote can complete sign-in without an issuer-mismatch error.", + "category": "Fix", + "mergedAt": "2026-09-30T21:37:50Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2565" + }, + { + "id": "tutorials-ims#2564", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2564, + "title": "fix(mcp-auth): advertise IAS issuer in OAuth discovery (RFC 9207) (#2550)", + "summary": "Fixes an issuer-validation failure that blocked MCP clients from completing login right after a successful sign-in.", + "category": "Fix", + "mergedAt": "2026-09-30T20:57:07Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2564" + }, + { + "id": "tutorials-ims#2563", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2563, + "title": "fix(deploy): replace bogus --parallel-resource-upload flag with MULTIAPPS_UPLOAD_CHUNKS_SEQUENTIALLY env var", + "summary": "Fixed a bad deploy flag that was breaking scripted deployments.", + "category": "Fix", + "mergedAt": "2026-09-30T20:56:57Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2563" + }, + { + "id": "tutorials-ims#2562", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2562, + "title": "Quiz answers now appear in random order", + "summary": "Randomizes the order of multiple-choice answers in tutorial quizzes on every page load, so sharing answers by position no longer works.", + "category": "Feature", + "mergedAt": "2026-09-30T19:34:47Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2562" + }, + { + "id": "tutorials-ims#2561", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2561, + "title": "fix(app-space): expand subtitle to include Agent Lab (#2560)", + "summary": "Updates the App Space hero subtitle to also mention Agent Lab so it reflects all the available experiences.", + "category": "Fix", + "mergedAt": "2026-09-30T19:03:05Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2561" + }, + { + "id": "tutorials-ims#2559", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2559, + "title": "fix(mcp-auth): repoint IAS public-PKCE OAuth to new tenant alzmza7li (#2550)", + "summary": "Repointed the MCP sign-in configuration to a new SAP identity tenant.", + "category": "Fix", + "mergedAt": "2026-09-30T18:51:06Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2559" + }, + { + "id": "tutorials-ims#2557", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2557, + "title": "Tutorial sections no longer over-capture content", + "summary": "Fixes a tutorial parsing bug where a Prerequisites or You-will-learn section could swallow the rest of the page when no later heading bounded it.", + "category": "Fix", + "mergedAt": "2026-09-30T17:52:49Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2557" + }, + { + "id": "tutorials-ims#2556", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2556, + "title": "Fix duplicated Prerequisites heading on tutorials", + "summary": "Removes the duplicated Prerequisites heading that appeared on many tutorials and automatically hides the Prerequisites and Steps sections when they are empty.", + "category": "Fix", + "mergedAt": "2026-09-30T17:23:23Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2556" + }, + { + "id": "tutorials-ims#2554", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2554, + "title": "fix(admin-ui): point IAS Admin Console link to new tenant alzmza7li (#2551)", + "summary": "Points the admin console's IAS link to the current identity tenant so it opens the right destination.", + "category": "Fix", + "mergedAt": "2026-09-30T16:08:46Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2554" + }, + { + "id": "tutorials-ims#2553", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2553, + "title": "perf(deploy): parallelize cf deploy resource upload", + "summary": "Sped up deployments by uploading resources in parallel.", + "category": "Performance", + "mergedAt": "2026-09-30T15:29:42Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2553" + }, + { + "id": "tutorials-ims#2549", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2549, + "title": "Reliable real-time updates across backend instances", + "summary": "Fixes real-time updates such as tutorial-completion events so they reliably reach every connected client even when the backend runs on multiple instances.", + "category": "Fix", + "mergedAt": "2026-09-30T10:55:48Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2549" + }, + { + "id": "tutorials-ims#2548", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2548, + "title": "Prevent broken asset links from missing downloads", + "summary": "Stops the build from advertising downloadable assets that failed to download, so links no longer 404.", + "category": "Fix", + "mergedAt": "2026-09-29T20:21:16Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2548" + }, + { + "id": "tutorials-ims#2546", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2546, + "title": "Faster Concepts list page", + "summary": "Trims the data embedded in the Concepts list page so it loads and parses roughly twice as fast.", + "category": "Performance", + "mergedAt": "2026-09-29T19:35:27Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2546" + }, + { + "id": "tutorials-ims#2545", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2545, + "title": "fix(mcp-auth): adopt tutorials-identity as existing-service (stable client_id)", + "summary": "Internal configuration fix to keep the MCP sign-in client identifier stable across deployments.", + "category": "Fix", + "mergedAt": "2026-09-29T19:29:14Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2545" + }, + { + "id": "tutorials-ims#2544", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2544, + "title": "Secretless MCP OAuth sign-in", + "summary": "Enables MCP sign-in through a secretless IAS public-PKCE client so tools like mcp-remote can authenticate without a client secret.", + "category": "Feature", + "mergedAt": "2026-09-29T19:03:26Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2544" + }, + { + "id": "tutorials-ims#2543", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2543, + "title": "Add IAS Admin Console link to BAIP folder (#2540)", + "summary": "Adds an IAS Admin Console shortcut to the Admin UI sidebar.", + "category": "Feature", + "mergedAt": "2026-09-29T18:28:53Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2543" + }, + { + "id": "tutorials-ims#2542", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2542, + "title": "Faster, clearer 3D Explore view", + "summary": "Tightens the Explore 3D graph's default filter to tutorials and missions so the view is faster to render and easier to read.", + "category": "Feature", + "mergedAt": "2026-09-29T18:24:11Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2542" + }, + { + "id": "tutorials-ims#2537", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2537, + "title": "fix(deploy): add cheerio to srv-mcp deps + widen bundle-externals guard", + "summary": "Fixed a startup crash in the MCP service caused by a missing dependency.", + "category": "Fix", + "mergedAt": "2026-09-29T06:18:14Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2537" + }, + { + "id": "tutorials-ims#2536", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2536, + "title": "fix(srv-mcp + ci): CF boot crash ERR_MODULE_NOT_FOUND + CI bundle-guard failures", + "summary": "Fixed a startup crash in the MCP service and the related test failures.", + "category": "Fix", + "mergedAt": "2026-09-29T05:23:03Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2536" + }, + { + "id": "tutorials-ims#2534", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2534, + "title": "fix(srv-mcp): shim bare @tutorials/core static import in server.js (CF boot crash)", + "summary": "Fixed a startup crash in the MCP service caused by an unresolved internal import.", + "category": "Fix", + "mergedAt": "2026-09-29T05:01:21Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2534" + }, + { + "id": "tutorials-ims#2531", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2531, + "title": "fix(deploy): declare @sap-ai-sdk externals in srv-qa + srv-mcp (boot crash)", + "summary": "Fixed a startup crash caused by undeclared AI SDK dependencies in two backend modules.", + "category": "Fix", + "mergedAt": "2026-09-28T23:57:07Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2531" + }, + { + "id": "tutorials-ims#2530", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2530, + "title": "fix(deploy): strip @tutorials/* from gen/srv-qa so it stages on CF (T16 blocker)", + "summary": "Fixed a deployment-staging failure in the QA backend module.", + "category": "Fix", + "mergedAt": "2026-09-28T22:34:46Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2530" + }, + { + "id": "tutorials-ims#2528", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2528, + "title": "fix(cjs-shims): _shared fallback so srv boots at CF (2nd MODULE_NOT_FOUND crash)", + "summary": "Fixed a backend startup crash caused by unresolved shared-module imports.", + "category": "Fix", + "mergedAt": "2026-09-28T21:13:25Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2528" + }, + { + "id": "tutorials-ims#2526", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2526, + "title": "fix(bundle): alias createRequire banner to prevent srv/srv-qa CF boot crash", + "summary": "Fixed a backend startup crash caused by a duplicate import in a shared code bundle.", + "category": "Fix", + "mergedAt": "2026-09-28T20:02:02Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2526" + }, + { + "id": "tutorials-ims#2525", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2525, + "title": "Secure sign-in for the MCP server", + "summary": "External developers can now authenticate to the portal's MCP server using secure browser-based PKCE sign-in, so tools like get_my_tutorials work with your own account.", + "category": "Feature", + "mergedAt": "2026-09-28T16:58:22Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2525" + }, + { + "id": "tutorials-ims#2523", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2523, + "title": "chore(deploy): scale prod srv 4→2 instances", + "summary": "Scaled production backend instances down to match actual usage, freeing capacity.", + "category": "Maintenance", + "mergedAt": "2026-09-28T11:25:44Z", + "week": "2026-W40", + "weekStart": "2026-09-28", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2523" + }, + { + "id": "tutorials-ims#2521", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2521, + "title": "MCP auth modularization — foundation (workspace + core + esbuild bundling)", + "summary": "Internal groundwork to modularize the MCP authentication code into shared packages.", + "category": "Maintenance", + "mergedAt": "2026-09-27T17:31:19Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2521" + }, + { + "id": "tutorials-ims#2520", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2520, + "title": "Optional 3D view in the knowledge graph explorer", + "summary": "Added an optional 3D force-directed view to the knowledge graph explorer, letting you visualize tutorial and concept relationships in interactive 3D on desktop.", + "category": "Feature", + "mergedAt": "2026-09-27T17:16:22Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2520" + }, + { + "id": "tutorials-ims#2519", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2519, + "title": "Multi-question tutorial steps now work correctly", + "summary": "Fixed multi-question tutorial steps so each question can be answered and graded independently instead of colliding onto a single answer.", + "category": "Fix", + "mergedAt": "2026-09-27T13:36:56Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2519" + }, + { + "id": "tutorials-ims#2518", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2518, + "title": "Glossary terms no longer break quiz question layout", + "summary": "Fixed a layout glitch where glossary terms appearing inside tutorial quiz questions broke the question's formatting.", + "category": "Fix", + "mergedAt": "2026-09-27T13:30:30Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2518" + }, + { + "id": "tutorials-ims#2513", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2513, + "title": "Release 1.32.0 — Devtoberfest leaderboard improvements (DEV→main promotion)", + "summary": "Release 1.32.0 to production, including the live Devtoberfest leaderboard improvements.", + "category": "Maintenance", + "mergedAt": "2026-09-26T07:32:13Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2513" + }, + { + "id": "tutorials-ims#2512", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2512, + "title": "Leaderboard correctly highlights only your row", + "summary": "Fixed the Devtoberfest leaderboard so only your own row is marked (you) when scores are tied.", + "category": "Fix", + "mergedAt": "2026-09-26T06:46:22Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2512" + }, + { + "id": "tutorials-ims#2511", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2511, + "title": "Devtoberfest leaderboard: shared ranks, paging, and your own standing", + "summary": "The live Devtoberfest leaderboard now shows tied scores at the same rank (and no longer reshuffles them on refresh), lets you page through the whole field, shows the total number of participants, and highlights your own row — with a pinned \"you\" row and your rank out of the field even when you're below the visible page.", + "category": "Feature", + "mergedAt": "2026-09-26T05:44:08Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2511" + }, + { + "id": "tutorials-ims#2508", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2508, + "title": "Release 1.31.5 — Job Board admin fix (DEV→main promotion)", + "summary": "Release 1.31.5 to production, restoring the admin Job Board screen.", + "category": "Maintenance", + "mergedAt": "2026-09-25T19:21:34Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2508" + }, + { + "id": "tutorials-ims#2507", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2507, + "title": "chore(release): 1.31.5", + "summary": "Version bump for the 1.31.5 release.", + "category": "Maintenance", + "mergedAt": "2026-09-25T19:08:15Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2507" + }, + { + "id": "tutorials-ims#2502", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2502, + "title": "Job Board admin screen opens again", + "summary": "Fixed a regression that stopped the admin Job Board screen from loading, so scheduled-job status and controls are reachable again.", + "category": "Fix", + "mergedAt": "2026-09-24T16:54:42Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2502" + }, + { + "id": "tutorials-ims#2501", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2501, + "title": "Release 1.31.4 — durable USE_GITHUB_APP runtime flag (DEV→main promotion)", + "summary": "Routine release promotion of the previous version to production.", + "category": "Maintenance", + "mergedAt": "2026-09-24T13:57:03Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2501" + }, + { + "id": "tutorials-ims#2500", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2500, + "title": "chore(release): 1.31.4", + "summary": "Routine version bump for the release.", + "category": "Maintenance", + "mergedAt": "2026-09-24T13:51:46Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2500" + }, + { + "id": "tutorials-ims#2499", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2499, + "title": "Topic pages load reliably", + "summary": "Fixed topic landing pages so individual topic pages like /topics/java/ reliably load after a content rebuild.", + "category": "Fix", + "mergedAt": "2026-09-24T13:00:21Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2499" + }, + { + "id": "tutorials-ims#2498", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2498, + "title": "Sort the admin job board by name or date", + "summary": "Added a Name/Date sort toggle to the admin job board so operators can order scheduled jobs alphabetically or by next run time.", + "category": "Feature", + "mergedAt": "2026-09-24T12:38:23Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2498" + }, + { + "id": "tutorials-ims#2497", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2497, + "title": "feat(github-app): durable USE_GITHUB_APP runtime flag (#1154)", + "summary": "Made the GitHub App the durable credential path for background content jobs so it survives redeployments.", + "category": "Maintenance", + "mergedAt": "2026-09-24T12:22:06Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2497" + }, + { + "id": "tutorials-ims#2496", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2496, + "title": "Knowledge graph nightly jobs no longer crash on duplicate tags", + "summary": "Fixed a nightly knowledge-graph processing job that crashed on duplicate tag entries, keeping graph features current.", + "category": "Fix", + "mergedAt": "2026-09-24T12:05:10Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2496" + }, + { + "id": "tutorials-ims#2492", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2492, + "title": "Release 1.31.3 — Semaphore taxonomy auto-sync (DEV→main promotion)", + "summary": "Release 1.31.3 to production, including the Semaphore taxonomy auto-sync.", + "category": "Maintenance", + "mergedAt": "2026-09-23T17:56:38Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2492" + }, + { + "id": "tutorials-ims#2491", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2491, + "title": "chore(release): 1.31.3", + "summary": "Version bump for the 1.31.3 release.", + "category": "Maintenance", + "mergedAt": "2026-09-23T17:52:30Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2491" + }, + { + "id": "tutorials-ims#2490", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2490, + "title": "fix(semaphore-sync): assign legacyId on Tier-2 tag inserts (#2479)", + "summary": "Fixed newly synced taxonomy tags showing a blank ID in the admin Tags list.", + "category": "Fix", + "mergedAt": "2026-09-23T16:59:14Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2490" + }, + { + "id": "tutorials-ims#2487", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2487, + "title": "Challenge-widget cost-sizing page added to docs sidebar", + "summary": "Fixed the developer docs site build by registering a reference page in the sidebar navigation.", + "category": "Docs", + "mergedAt": "2026-09-23T14:37:03Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2487" + }, + { + "id": "tutorials-ims#2486", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2486, + "title": "fix(admin): route semaphoreConfig nav-key (#2477)", + "summary": "Fixed a non-working \"Semaphore Config\" entry in the admin settings sidebar so clicking it now opens the right panel instead of doing nothing.", + "category": "Fix", + "mergedAt": "2026-09-23T13:55:42Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2486" + }, + { + "id": "tutorials-ims#2485", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2485, + "title": "New authors guide: branch protection and pull requests", + "summary": "Added an authors guide explaining the new pull-request workflow and branch-protection rules, so tutorial contributors know exactly how to propose and get their changes reviewed.", + "category": "Docs", + "mergedAt": "2026-09-23T13:54:48Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2485" + }, + { + "id": "tutorials-ims#2484", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2484, + "title": "Admin panel for taxonomy tag-sync settings", + "summary": "Added an admin panel to configure the taxonomy tag-sync job directly in the UI, so operators no longer have to hand-edit database rows to tune it.", + "category": "Feature", + "mergedAt": "2026-09-23T13:33:46Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2484" + }, + { + "id": "tutorials-ims#2483", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2483, + "title": "fix(scheduler): record FAILED when a job returns ok:false (#2478)", + "summary": "Fixed scheduled jobs so that a job which fails quietly is now correctly recorded as FAILED and raises an alert, instead of misleadingly showing as successful in the run history.", + "category": "Fix", + "mergedAt": "2026-09-23T13:03:55Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2483" + }, + { + "id": "tutorials-ims#2480", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2480, + "title": "Smarter, safer taxonomy tag synchronization", + "summary": "Reworked the automatic taxonomy tag sync so it safely adopts existing tags and only adds genuinely new ones under an explicit allowlist, keeping the tag corpus accurate without flooding it.", + "category": "Feature", + "mergedAt": "2026-09-22T21:23:04Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2480" + }, + { + "id": "tutorials-ims#2475", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2475, + "title": "Release 1.31.2 → PROD (DEV→main)", + "summary": "Release 1.31.2 to production.", + "category": "Maintenance", + "mergedAt": "2026-09-22T18:19:52Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2475" + }, + { + "id": "tutorials-ims#2474", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2474, + "title": "chore(release): 1.31.2", + "summary": "Version bump for the 1.31.2 release.", + "category": "Maintenance", + "mergedAt": "2026-09-22T18:18:45Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2474" + }, + { + "id": "tutorials-ims#2472", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2472, + "title": "chore(release): 1.31.1", + "summary": "Version bump for the 1.31.1 release.", + "category": "Maintenance", + "mergedAt": "2026-09-22T18:03:42Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2472" + }, + { + "id": "tutorials-ims#2473", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2473, + "title": "fix(approuter): allow anonymous getAppSpaceProgress so ?eventId= works logged-out", + "summary": "Fixed App-Space links so that opening one with a specific event ID now shows that event even when you are not logged in, instead of defaulting to the wrong event.", + "category": "Fix", + "mergedAt": "2026-09-22T18:03:26Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2473" + }, + { + "id": "tutorials-ims#2471", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2471, + "title": "fix(progress): stamp completionDate for single-step tutorial completions", + "summary": "Fixed point scoring for single-step tutorials in Devtoberfest so completing them now counts correctly, resolving the mismatched totals between the arcade and schedule pages.", + "category": "Fix", + "mergedAt": "2026-09-22T16:48:03Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2471" + }, + { + "id": "tutorials-ims#2470", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2470, + "title": "feat(semaphore): PDC two-step auth + key self-rotation (#2184)", + "summary": "Added automatic two-step authentication and key self-rotation for the Semaphore taxonomy sync.", + "category": "Feature", + "mergedAt": "2026-09-22T15:46:39Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2470" + }, + { + "id": "tutorials-ims#2469", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2469, + "title": "test(schedule): fix flaky TechEd/Devtoberfest schedule tests (shared URL leak from #2461)", + "summary": "Fixed flaky TechEd and Devtoberfest schedule tests caused by shared state leaking between runs.", + "category": "Maintenance", + "mergedAt": "2026-09-22T15:46:31Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2469" + }, + { + "id": "tutorials-ims#2468", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2468, + "title": "Block broken AI concept definitions from appearing", + "summary": "Added a guardrail that blocks garbled AI-generated concept definitions (like refusal messages or the literal word \"undefined\") from appearing on concept pages, so you now see real definitions or a clean fallback.", + "category": "Fix", + "mergedAt": "2026-09-22T15:24:28Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2468" + }, + { + "id": "tutorials-ims#2467", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2467, + "title": "Shareable filter links for Devtoberfest and TechEd schedules", + "summary": "Added shareable, bookmarkable filter links to the Devtoberfest and TechEd schedules, and made activity links open in a new tab.", + "category": "Feature", + "mergedAt": "2026-09-22T13:58:12Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2467" + }, + { + "id": "tutorials-ims#2466", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2466, + "title": "perf(publish): bulk sidecar endpoints + hash-skip (#2463, #2464)", + "summary": "Sped up content publishing by only re-sending contributor and validation-rule data that actually changed, in batched requests, making tutorial updates land much faster.", + "category": "Performance", + "mergedAt": "2026-09-22T13:32:49Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2466" + }, + { + "id": "tutorials-ims#2465", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2465, + "title": "perf(publish): filter + parallelize sidecar publishes (#2462)", + "summary": "Made single-tutorial content publishes dramatically faster by skipping unrelated data and running the remaining uploads in parallel, cutting a hotfix publish from thousands of requests to a couple.", + "category": "Performance", + "mergedAt": "2026-09-22T12:41:22Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2465" + }, + { + "id": "tutorials-ims#2460", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2460, + "title": "Release 1.31.0 → main (production): ContentFiles.sourceRepo migration hotfix", + "summary": "Fixed a database schema gap that was causing production tutorial content rebuilds to fail.", + "category": "Fix", + "mergedAt": "2026-09-22T08:02:12Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2460" + }, + { + "id": "tutorials-ims#2459", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2459, + "title": "fix(content): add missing migration=4 for ContentFiles.sourceRepo (unbreaks PROD rebuilds)", + "summary": "Restored broken tutorial content rebuilds by adding a missing database schema update, so new and updated tutorials publish successfully again.", + "category": "Fix", + "mergedAt": "2026-09-22T07:09:55Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2459" + }, + { + "id": "tutorials-ims#2458", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2458, + "title": "fix(reset): reject reset of a not-yet-completed tutorial (#2446)", + "summary": "Fixed progress reset so a tutorial that hasn't been fully completed can no longer be reset via the API, preventing inconsistent completion state and points.", + "category": "Fix", + "mergedAt": "2026-09-22T06:59:52Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2458" + }, + { + "id": "tutorials-ims#2457", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2457, + "title": "fix(devtoberfest): Kasimir bonus points + activity count in schedule/sessions banner (#2455)", + "summary": "Fixed the Devtoberfest schedule and sessions banner to include Kasimir \"Hit the Cat\" bonus points and show the correct count of completed activities, matching the arcade total.", + "category": "Fix", + "mergedAt": "2026-09-22T06:47:19Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2457" + }, + { + "id": "tutorials-ims#2454", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2454, + "title": "release: DEV → main — Devtoberfest SUPERSEDED points fix #2446 (+ #2451 publish guard)", + "summary": "Fixed the Devtoberfest schedule awarding points for tutorial steps you had reset.", + "category": "Fix", + "mergedAt": "2026-09-22T01:03:38Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2454" + }, + { + "id": "tutorials-ims#2452", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2452, + "title": "fix(devtoberfest): don't award points for SUPERSEDED (reset) completions (#2446)", + "summary": "Fixed Devtoberfest scoring so points are no longer awarded for tutorials that were started and then reset without being completed.", + "category": "Fix", + "mergedAt": "2026-09-22T00:48:23Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2452" + }, + { + "id": "tutorials-ims#2451", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2451, + "title": "Prevent QA-only tutorials from publishing to the public site", + "summary": "Added a safeguard that prevents tutorials sourced from private contribution/QA repos from accidentally going live in the public catalog.", + "category": "Fix", + "mergedAt": "2026-09-22T00:34:36Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2451" + }, + { + "id": "tutorials-ims#2450", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2450, + "title": "Release 1.30.0 → main (production)", + "summary": "Fixed Devtoberfest gameboard participation matching by adding the email key the gameboard needs.", + "category": "Fix", + "mergedAt": "2026-09-21T20:59:40Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2450" + }, + { + "id": "tutorials-ims#2449", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2449, + "title": "Devtoberfest gameboard recognizes joined players (email match)", + "summary": "The Devtoberfest arcade and gameboard now reliably recognize players who've joined, showing their score and level instead of prompting them to join again.", + "category": "Fix", + "mergedAt": "2026-09-21T20:27:44Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2449" + }, + { + "id": "tutorials-ims#2448", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2448, + "title": "Release 1.29.0 → main (production)", + "summary": "Production release 1.29.0.", + "category": "Maintenance", + "mergedAt": "2026-09-21T16:59:54Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2448" + }, + { + "id": "tutorials-ims#2447", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2447, + "title": "Devtoberfest gameboard recognizes joined players", + "summary": "The Devtoberfest arcade and gameboard now correctly recognize players who've joined the event, showing their score, level, and avatar instead of prompting them to join again.", + "category": "Fix", + "mergedAt": "2026-09-21T16:19:48Z", + "week": "2026-W39", + "weekStart": "2026-09-21", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2447" + }, + { + "id": "tutorials-ims#2444", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2444, + "title": "Interactive challenge grading", + "summary": "Tutorial challenge widgets now grade both free-text and multiple-choice answers inline, giving you immediate feedback as you work through a challenge.", + "category": "Feature", + "mergedAt": "2026-09-20T21:22:04Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2444" + }, + { + "id": "tutorials-ims#2445", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2445, + "title": "Sharper tutorial step videos", + "summary": "Video thumbnails inside collapsed tutorial steps now load at full resolution, so previews no longer look blurry before you expand a step.", + "category": "Fix", + "mergedAt": "2026-09-20T21:05:55Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2445" + }, + { + "id": "tutorials-ims#2442", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2442, + "title": "Knowledge-graph learning-path controls", + "summary": "Administrators can now toggle knowledge-graph learning paths and concept definitions directly from the admin console.", + "category": "Feature", + "mergedAt": "2026-09-20T18:14:52Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2442" + }, + { + "id": "tutorials-ims#2438", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2438, + "title": "Release 1.28.0 → main (production)", + "summary": "Routine production release promotion.", + "category": "Maintenance", + "mergedAt": "2026-09-20T13:15:58Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2438" + }, + { + "id": "tutorials-ims#2437", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2437, + "title": "chore(release): 1.28.0 — What's New digest + version bump", + "summary": "Version bump and What's New digest for the 1.28.0 release.", + "category": "Maintenance", + "mergedAt": "2026-09-20T13:04:11Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2437" + }, + { + "id": "tutorials-ims#2436", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2436, + "title": "Challenge widget renders cleanly with a styled panel", + "summary": "The tutorial challenge panel no longer shows a broken, escaped \"Done\" button, and its multiple-choice options and answer box now render as a properly styled card.", + "category": "Fix", + "mergedAt": "2026-09-19T21:41:45Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2436" + }, + { + "id": "tutorials-ims#2435", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2435, + "title": "Favorite TechEd and Devtoberfest sessions", + "summary": "Signed-in users can now star their favorite TechEd and Devtoberfest sessions and filter any session view down to just their favorites.", + "category": "Feature", + "mergedAt": "2026-09-19T18:53:19Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2435" + }, + { + "id": "tutorials-ims#2434", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2434, + "title": "Concept-definition feature flag registered", + "summary": "Registered the new concept-definitions feature flag and scheduled job so it appears in the admin Feature Flag Viewer and no longer breaks the build checks.", + "category": "Fix", + "mergedAt": "2026-09-19T17:23:50Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2434" + }, + { + "id": "tutorials-ims#2433", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2433, + "title": "Content rebuild can bake challenge panels", + "summary": "The content rebuild workflow can now optionally generate and bake tutorial challenge panels when the challenge widget is turned on.", + "category": "Maintenance", + "mergedAt": "2026-09-19T17:04:23Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2433" + }, + { + "id": "tutorials-ims#2432", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2432, + "title": "ABAP concept pages link to the Keyword Documentation", + "summary": "ABAP concept pages now link out to the authoritative ABAP Keyword Documentation for topics like ABAP SQL, the Data Dictionary, and internal tables.", + "category": "Feature", + "mergedAt": "2026-09-19T15:48:44Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2432" + }, + { + "id": "tutorials-ims#2431", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2431, + "title": "AI-drafted concept definitions (admin-reviewed)", + "summary": "Concept pages can now be filled with AI-drafted definitions grounded only in already-linked documentation and held for admin approval, so no unreviewed text ever goes live.", + "category": "Feature", + "mergedAt": "2026-09-19T15:28:52Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2431" + }, + { + "id": "tutorials-ims#2430", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2430, + "title": "Concept pages get a real explanation above the links", + "summary": "Every concept page can now show a proper written definition above its link tiles, rendered from markdown and gated behind admin review before it publishes.", + "category": "Feature", + "mergedAt": "2026-09-19T15:28:43Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2430" + }, + { + "id": "tutorials-ims#2428", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2428, + "title": "Interactive challenge widget wired into tutorials", + "summary": "The experimental interactive challenge widget is now wired end-to-end so it can render on a real tutorial page behind a feature flag for testing.", + "category": "Feature", + "mergedAt": "2026-09-19T15:28:33Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2428" + }, + { + "id": "tutorials-ims#2427", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2427, + "title": "\"Open SQL\" renamed to \"ABAP SQL\"", + "summary": "Corrected the outdated \"Open SQL\" wording to \"ABAP SQL\" across concept pages, while keeping the old term searchable so existing links still find it.", + "category": "Fix", + "mergedAt": "2026-09-19T15:28:21Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2427" + }, + { + "id": "tutorials-ims#2425", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2425, + "title": "Related Devtoberfest sessions show in the TechEd detail panel", + "summary": "Opening a TechEd session's detail panel now shows its related Devtoberfest sessions, not just related TechEd ones.", + "category": "Fix", + "mergedAt": "2026-09-19T15:28:13Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2425" + }, + { + "id": "tutorials-ims#2424", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2424, + "title": "Release 1.27.2", + "summary": "Promoted the Devtoberfest/TechEd cross-link render fix to production as release 1.27.2.", + "category": "Maintenance", + "mergedAt": "2026-09-19T05:50:34Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2424" + }, + { + "id": "tutorials-ims#2423", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2423, + "title": "Devtoberfest and TechEd cross-links render both ways", + "summary": "Related-session links between Devtoberfest and TechEd now show in both directions instead of appearing empty.", + "category": "Fix", + "mergedAt": "2026-09-18T22:52:03Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2423" + }, + { + "id": "tutorials-ims#2422", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2422, + "title": "Release 1.27.1", + "summary": "Promoted the TechEd homepage and cross-link session fixes to production as release 1.27.1.", + "category": "Maintenance", + "mergedAt": "2026-09-18T20:57:58Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2422" + }, + { + "id": "tutorials-ims#2420", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2420, + "title": "TechEd ↔ Devtoberfest session cross-links populated", + "summary": "TechEd and Devtoberfest sessions now correctly find their related counterparts by matching on shared topics, filling in cross-links that previously came up empty.", + "category": "Fix", + "mergedAt": "2026-09-18T19:58:22Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2420" + }, + { + "id": "tutorials-ims#2418", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2418, + "title": "TechEd sessions shown as virtual on the homepage", + "summary": "Individual TechEd 2026 sessions now appear as virtual (watchable online) on the homepage events band instead of being mislabeled as in-person regional events.", + "category": "Fix", + "mergedAt": "2026-09-18T19:55:03Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2418" + }, + { + "id": "tutorials-ims#2415", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2415, + "title": "Production release 1.27.0", + "summary": "Promoted the TechEd session browser and accompanying fixes to production as release 1.27.0.", + "category": "Maintenance", + "mergedAt": "2026-09-18T14:53:41Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2415" + }, + { + "id": "tutorials-ims#2414", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2414, + "title": "Release 1.27.0 prep", + "summary": "Version bump and What's New digest ahead of the 1.27.0 production release.", + "category": "Maintenance", + "mergedAt": "2026-09-18T14:45:42Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2414" + }, + { + "id": "tutorials-ims#2413", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2413, + "title": "AI-authoring meta-tutorials relisted", + "summary": "Author documentation again lists the restored AI-assisted authoring tutorials (AutoAuthor, CodeCheck, Validate).", + "category": "Docs", + "mergedAt": "2026-09-18T14:43:37Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2413" + }, + { + "id": "tutorials-ims#2412", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2412, + "title": "fix(advocates): rename adv-* CSS namespace so ad blockers stop hiding the header (#2405)", + "summary": "The Developer Advocates page header, filters, and search box no longer disappear for visitors who browse with an ad blocker.", + "category": "Fix", + "mergedAt": "2026-09-18T13:28:20Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2412" + }, + { + "id": "tutorials-ims#2410", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2410, + "title": "fix(devtoberfest): Sign in from Devtoberfest pages returns to current page (#2409)", + "summary": "Signing in from a Devtoberfest schedule, sessions, or calendar page now returns you to the page you were on instead of dumping you back at the homepage.", + "category": "Fix", + "mergedAt": "2026-09-18T12:54:04Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2410" + }, + { + "id": "tutorials-ims#2408", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2408, + "title": "fix(teched): link speakers to their developer-advocate page (#2392)", + "summary": "TechEd speaker names now link to a speaker's Developer Advocate page even when they haven't authored tutorials, so you can more easily explore who is presenting.", + "category": "Fix", + "mergedAt": "2026-09-18T05:35:21Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2408" + }, + { + "id": "tutorials-ims#2407", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2407, + "title": "fix(teched): allow static.rainfocus.com in CSP img-src for speaker photos (#2392)", + "summary": "TechEd speaker photos now load correctly in the session browser instead of appearing blank.", + "category": "Fix", + "mergedAt": "2026-09-18T05:35:10Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2407" + }, + { + "id": "tutorials-ims#2406", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2406, + "title": "fix(teched): correct approuter target for /teched/schedule + /teched/calendar (#2392)", + "summary": "The TechEd schedule and calendar pages now load correctly instead of returning a not-found error.", + "category": "Fix", + "mergedAt": "2026-09-18T04:28:55Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2406" + }, + { + "id": "tutorials-ims#2404", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2404, + "title": "fix(teched): surface all 19 all-day activities + speaker photos in schedule/calendar (#2392)", + "summary": "The TechEd schedule and calendar now show all 19 all-day activities (like the Developer Garage) and display speaker photos in the session detail panels.", + "category": "Fix", + "mergedAt": "2026-09-18T00:58:58Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2404" + }, + { + "id": "tutorials-ims#2403", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2403, + "title": "fix(teched): dedup cross-venue speakers + serve schedule/calendar from HANA", + "summary": "TechEd speakers who appear at both the Berlin and Virtual events are no longer listed twice, and the schedule and calendar views now show sessions reliably.", + "category": "Fix", + "mergedAt": "2026-09-17T21:13:58Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2403" + }, + { + "id": "tutorials-ims#2402", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2402, + "title": "fix(teched): make /build/teched feed query HANA-compatible", + "summary": "The TechEd session grid, schedule, and calendar now load real session data reliably instead of falling back to an empty view.", + "category": "Fix", + "mergedAt": "2026-09-17T19:34:18Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2402" + }, + { + "id": "tutorials-ims#2399", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2399, + "title": "feat(teched): Community Clubhouse session filter (#2392 item 5)", + "summary": "You can now filter the TechEd session browser to show only Community Clubhouse sessions, with the filter preserved in shareable links.", + "category": "Feature", + "mergedAt": "2026-09-17T17:56:39Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2399" + }, + { + "id": "tutorials-ims#2400", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2400, + "title": "feat(teched): list all-day activities like Developer Garage (issue #2392 item 6)", + "summary": "The TechEd session browser now lists all-day activities such as the Developer Garage in their own clearly-badged section above the timed sessions.", + "category": "Feature", + "mergedAt": "2026-09-17T17:46:22Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2400" + }, + { + "id": "tutorials-ims#2397", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2397, + "title": "feat(teched): speaker dropdown sorted by last name, shown \"Last, First\" (#2392 item 4)", + "summary": "The TechEd speaker filter is now sorted by last name and shows names as \"Last, First\" so you can find a presenter more quickly.", + "category": "Feature", + "mergedAt": "2026-09-17T17:46:01Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2397" + }, + { + "id": "tutorials-ims#2398", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2398, + "title": "fix(teched): construct sap.com session URL from sourceId+venue (items 2+8, #2392)", + "summary": "Every TechEd session now has a working link to its official session page, which also appears in the add-to-calendar details.", + "category": "Fix", + "mergedAt": "2026-09-17T17:31:39Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2398" + }, + { + "id": "tutorials-ims#2396", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2396, + "title": "feat(teched): speaker author-links + bio tooltip in detail pane (#2392 items 3, 9, 10)", + "summary": "TechEd session detail panels now link speaker names to their author pages and show a short bio when you hover over a name.", + "category": "Feature", + "mergedAt": "2026-09-17T17:31:20Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2396" + }, + { + "id": "tutorials-ims#2395", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2395, + "title": "feat(teched): consolidate track color legend into filter chips (item 7/10)", + "summary": "The TechEd session browser now shows each track's color directly on its filter chip, removing the separate legend for a cleaner layout.", + "category": "Feature", + "mergedAt": "2026-09-17T17:31:07Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2395" + }, + { + "id": "tutorials-ims#2394", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2394, + "title": "fix(teched): calendar subnav consistency — Unit A #2392", + "summary": "The Sessions, Schedule, and Calendar links now stay visible and consistent as you move between the different TechEd views.", + "category": "Fix", + "mergedAt": "2026-09-17T17:30:03Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2394" + }, + { + "id": "tutorials-ims#2391", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2391, + "title": "fix(qa-rebuild): owner-qualify source repo + guard author login (#2384 follow-up)", + "summary": "When a tutorial from a contributor repo has a content problem, the author is now correctly notified with a helpful issue instead of the fix silently failing.", + "category": "Fix", + "mergedAt": "2026-09-17T13:12:21Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2391" + }, + { + "id": "tutorials-ims#2388", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2388, + "title": "fix(qa-rebuild): skip missing/misnamed source tutorials instead of failing the job (#2384)", + "summary": "A single tutorial with a missing or misnamed source file no longer blocks the whole content rebuild; the healthy tutorials still publish and the author is notified about the broken one.", + "category": "Fix", + "mergedAt": "2026-09-17T12:36:35Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2388" + }, + { + "id": "tutorials-ims#2380", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2380, + "title": "feat(teched): Add-to-calendar (.ics + Google/Outlook) for TechEd sessions (#2312)", + "summary": "You can now add a TechEd session to your calendar with a downloadable file or a one-click Google or Outlook link.", + "category": "Feature", + "mergedAt": "2026-09-16T22:44:30Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2380" + }, + { + "id": "tutorials-ims#2379", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2379, + "title": "fix(ci): run fetch-teched before Hugo build in rebuild-content (#2312)", + "summary": "The TechEd page now reliably shows real session data with linked speaker names instead of failing to load.", + "category": "Fix", + "mergedAt": "2026-09-16T21:24:09Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2379" + }, + { + "id": "tutorials-ims#2378", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2378, + "title": "fix(teched): guard loadFeed against Hugo jsonify-of-nil \"null\" blob (#2312)", + "summary": "The TechEd session pages no longer show a load error when session data is briefly unavailable, quietly fetching it live instead.", + "category": "Fix", + "mergedAt": "2026-09-16T21:23:58Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2378" + }, + { + "id": "tutorials-ims#2377", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2377, + "title": "fix(db): add migration=5 for Events location/eventUrl/attendanceMode (#2370)", + "summary": "Fixes a deployment problem so that new location, event URL, and attendance-mode fields for events work correctly.", + "category": "Fix", + "mergedAt": "2026-09-16T19:19:06Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2377" + }, + { + "id": "tutorials-ims#2376", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2376, + "title": "docs: register generative-ui-research page in sidebar (fixes Deploy Docs CI)", + "summary": "Registers a new reference page in the documentation site's navigation so it builds and appears correctly.", + "category": "Docs", + "mergedAt": "2026-09-16T18:31:30Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2376" + }, + { + "id": "tutorials-ims#2373", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2373, + "title": "feat(events): location, event URL & attendance mode for Upcoming Events tile (#2370)", + "summary": "Events can now carry a location, an event URL, and a virtual/in-person indicator, so Upcoming Events tiles on the homepage link straight to the event's own page.", + "category": "Feature", + "mergedAt": "2026-09-16T18:19:50Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2373" + }, + { + "id": "tutorials-ims#2372", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2372, + "title": "feat(ai-quiz): quizzes from a YouTube video transcript (#2345)", + "summary": "Tutorial authors can now generate a quiz from a YouTube video's transcript, letting learners be tested on video content and graded with that context.", + "category": "Feature", + "mergedAt": "2026-09-16T18:02:13Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2372" + }, + { + "id": "tutorials-ims#2371", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2371, + "title": "Explore generative-UI approaches for interactive tutorial widgets", + "summary": "Adds a research spike and small proof-of-concept exploring schema-driven generative UI for building richer interactive tutorial widgets in the future.", + "category": "Feature", + "mergedAt": "2026-09-16T17:50:30Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2371" + }, + { + "id": "tutorials-ims#2369", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2369, + "title": "feat(teched,dtf): link speakers to author pages (#2355 unit 8)", + "summary": "TechEd and Devtoberfest speaker names now link to the speaker's author page so you can discover their tutorials.", + "category": "Feature", + "mergedAt": "2026-09-16T17:02:04Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2369" + }, + { + "id": "tutorials-ims#2367", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2367, + "title": "feat(teched): clickable cards open detail side panel (#2355 unit 2)", + "summary": "TechEd session cards are now clickable and open a detail side panel with full session information, and each session can be deep-linked.", + "category": "Feature", + "mergedAt": "2026-09-16T16:52:09Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2367" + }, + { + "id": "tutorials-ims#2366", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2366, + "title": "feat(teched): render related Devtoberfest sessions on TechEd cards (#2355 Unit 4)", + "summary": "TechEd session cards can now show related Devtoberfest sessions, helping you discover connected content across both events.", + "category": "Feature", + "mergedAt": "2026-09-16T16:46:38Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2366" + }, + { + "id": "tutorials-ims#2365", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2365, + "title": "feat(teched): TechEd schedule table view — island + Hugo page (#2355 Unit 6)", + "summary": "Adds a sortable, filterable table view of all TechEd sessions so you can scan the whole schedule by venue, track, time, and room.", + "category": "Feature", + "mergedAt": "2026-09-16T16:41:41Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2365" + }, + { + "id": "tutorials-ims#2364", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2364, + "title": "feat(teched): color-code track badges + legend (#2355 Unit 3)", + "summary": "TechEd session cards now have color-coded track badges with a matching legend so you can tell tracks apart at a glance.", + "category": "Feature", + "mergedAt": "2026-09-16T16:41:30Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2364" + }, + { + "id": "tutorials-ims#2361", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2361, + "title": "feat(teched): add calendar view — Week+Day only (#2355 unit 7)", + "summary": "Adds a Week and Day calendar view for TechEd sessions, with track, venue, and text filters and clickable session details.", + "category": "Feature", + "mergedAt": "2026-09-16T16:24:07Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2361" + }, + { + "id": "tutorials-ims#2360", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2360, + "title": "feat(devtoberfest): render related TechEd sessions in Devtoberfest detail panel (#2355 Unit 5)", + "summary": "Devtoberfest session detail panels can now show related TechEd sessions, linking connected content across both events.", + "category": "Feature", + "mergedAt": "2026-09-16T16:23:54Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2360" + }, + { + "id": "tutorials-ims#2359", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2359, + "title": "feat(teched): collapse Berlin/Virtual sections into one unified grid (#2355 unit 1)", + "summary": "The TechEd session page now shows one unified session grid with a venue toggle instead of separate Berlin and Virtual sections, reducing clutter.", + "category": "Feature", + "mergedAt": "2026-09-16T16:23:38Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2359" + }, + { + "id": "tutorials-ims#2368", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2368, + "title": "feat: TechEd + Devtoberfest session cards on author & advocate pages (#2354)", + "summary": "Author and Developer Advocate pages now show cards for the TechEd and Devtoberfest sessions where that person is speaking, with one consistent card design.", + "category": "Feature", + "mergedAt": "2026-09-16T16:14:15Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2368" + }, + { + "id": "tutorials-ims#2363", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2363, + "title": "feat(devtoberfest): breadcrumb back to main page on sub-pages", + "summary": "Devtoberfest sub-pages now show a breadcrumb so you can navigate back to the main Devtoberfest page easily.", + "category": "Feature", + "mergedAt": "2026-09-16T15:59:51Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2363" + }, + { + "id": "tutorials-ims#2357", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2357, + "title": "fix(feedback-email): working dashboard link + per-item tutorial/admin links (#2356)", + "summary": "The daily tutorial-feedback digest email now has a working dashboard link plus per-item links straight to each tutorial and its editor.", + "category": "Fix", + "mergedAt": "2026-09-16T14:11:11Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2357" + }, + { + "id": "tutorials-ims#2353", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2353, + "title": "chore: remove stray empty file", + "summary": "Removes a stray empty file that was accidentally committed to the project root.", + "category": "Maintenance", + "mergedAt": "2026-09-16T12:49:55Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2353" + }, + { + "id": "tutorials-ims#2352", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2352, + "title": "fix(quiz): relax AI free-text grader + let partial unlock progression (#2348)", + "summary": "The AI free-text quiz grader is now more forgiving, accepting answers that capture the main idea so you can continue instead of being blocked over minor omissions.", + "category": "Fix", + "mergedAt": "2026-09-16T12:11:33Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2352" + }, + { + "id": "tutorials-ims#2351", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2351, + "title": "feat(content): unpublish tutorials deleted upstream (#2349)", + "summary": "Deleting a tutorial's source content now automatically removes it from the site instead of leaving the old page live.", + "category": "Feature", + "mergedAt": "2026-09-16T07:25:55Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2351" + }, + { + "id": "tutorials-ims#2350", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2350, + "title": "fix(images): process in-place image edits on tutorial rebuilds (#2346)", + "summary": "Editing a tutorial screenshot in place now updates the image on the site within minutes instead of continuing to show the old picture for days.", + "category": "Fix", + "mergedAt": "2026-09-16T07:25:20Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2350" + }, + { + "id": "tutorials-ims#2347", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2347, + "title": "Stop content-freshness checks from falsely failing deployments", + "summary": "Deployments are no longer falsely blocked by content-freshness checks that belonged to the separate content-publishing step.", + "category": "Fix", + "mergedAt": "2026-09-16T06:50:59Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2347" + }, + { + "id": "tutorials-ims#2343", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2343, + "title": "feat(teched): add SAP TechEd to Community nav after Devtoberfest", + "summary": "Adds an SAP TechEd entry to the Community navigation menu (and the command palette) so you can jump straight to the session catalog.", + "category": "Feature", + "mergedAt": "2026-09-16T04:47:44Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2343" + }, + { + "id": "tutorials-ims#2342", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2342, + "title": "fix(teched): repair /teched page 404 (blob id/shape + approuter allowlist)", + "summary": "Fixes the TechEd page so it loads the session catalog correctly instead of showing a not-found error.", + "category": "Fix", + "mergedAt": "2026-09-16T04:29:03Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2342" + }, + { + "id": "tutorials-ims#2341", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2341, + "title": "perf: parallelize independent ingestion SELECTs + batch TechEd abstract N+1", + "summary": "Speeds up TechEd and Devtoberfest session data loading by running independent queries in parallel and batching a repeated lookup.", + "category": "Performance", + "mergedAt": "2026-09-16T00:30:34Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2341" + }, + { + "id": "tutorials-ims#2340", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2340, + "title": "fix(teched): escalate TOTAL RainFocus fetch failure loudly", + "summary": "If the TechEd session feed ever fails to load entirely, the system now raises a loud alert instead of silently freezing the catalog for weeks.", + "category": "Fix", + "mergedAt": "2026-09-15T23:38:56Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2340" + }, + { + "id": "tutorials-ims#2339", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2339, + "title": "fix(freshness): fault-isolate DevtoberfestSessions embedding arm", + "summary": "Makes the search-indexing job more resilient so a problem with Devtoberfest session data no longer stops TechEd and other content from being indexed.", + "category": "Fix", + "mergedAt": "2026-09-15T23:38:50Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2339" + }, + { + "id": "tutorials-ims#2338", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2338, + "title": "fix(teched): correctness fixes (pagination partial-page skip, MCP venue over-broad, parseTrack subtrack leak)", + "summary": "Fixes three TechEd catalog bugs so all sessions are fetched, venue filtering behaves correctly, and tracks are assigned accurately.", + "category": "Fix", + "mergedAt": "2026-09-15T22:44:07Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2338" + }, + { + "id": "tutorials-ims#2337", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2337, + "title": "fix(kg): community-event/devtoberfest/teched concept extractors produced 0 links in prod (callModel contract mismatch)", + "summary": "Community event, Devtoberfest, and TechEd sessions are now correctly linked to related concepts, improving related-content and knowledge-graph connections.", + "category": "Fix", + "mergedAt": "2026-09-15T22:22:50Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2337" + }, + { + "id": "tutorials-ims#2336", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2336, + "title": "fix(teched): bound public /build/teched feed (#2312)", + "summary": "Hardens the TechEd session feed with sensible limits and optional venue and upcoming-only filtering while keeping its output unchanged.", + "category": "Fix", + "mergedAt": "2026-09-15T22:22:41Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2336" + }, + { + "id": "tutorials-ims#2335", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2335, + "title": "fix(teched): don't prune session speaker links on incomplete seed input (#2312)", + "summary": "A partial TechEd data refresh no longer accidentally drops a session's speaker links when the incoming data is incomplete.", + "category": "Fix", + "mergedAt": "2026-09-15T22:22:33Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2335" + }, + { + "id": "tutorials-ims#2334", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2334, + "title": "docs(teched): fix DEV docs-build (sidebar) + reconcile RainFocus contract (#2312)", + "summary": "Updates the TechEd documentation to match the confirmed live session-catalog data source and fixes the docs site build.", + "category": "Docs", + "mergedAt": "2026-09-15T21:54:38Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2334" + }, + { + "id": "tutorials-ims#2326", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2326, + "title": "feat(teched): bidirectional TechEd <-> Devtoberfest session cross-links (#2312)", + "summary": "Links TechEd and Devtoberfest sessions to each other based on shared topics, so you can discover related talks across both events.", + "category": "Feature", + "mergedAt": "2026-09-15T21:54:27Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2326" + }, + { + "id": "tutorials-ims#2325", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2325, + "title": "feat(kg): project SAP TechEd sessions into the RDF/SPARQL graph (#2312 Unit 3)", + "summary": "Adds TechEd sessions to the queryable knowledge graph, connecting them to concepts, tracks, and speakers.", + "category": "Feature", + "mergedAt": "2026-09-15T21:54:12Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2325" + }, + { + "id": "tutorials-ims#2323", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2323, + "title": "docs(teched): document TechEd sessions subsystem (#2312, Unit 11)", + "summary": "Adds developer documentation describing how the TechEd sessions feature works.", + "category": "Docs", + "mergedAt": "2026-09-15T21:33:23Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2323" + }, + { + "id": "tutorials-ims#2324", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2324, + "title": "feat(homepage): surface TechEd 2026 sessions in the events band (#2312)", + "summary": "Upcoming SAP TechEd 2026 sessions can now appear in the homepage events band, each linking to its session page.", + "category": "Feature", + "mergedAt": "2026-09-15T21:33:15Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2324" + }, + { + "id": "tutorials-ims#2327", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2327, + "title": "feat(search): add search_teched MCP tool on SearchService (#2312)", + "summary": "Adds a search tool that lets AI assistants query the TechEd 2026 session catalog by venue, track, and keyword.", + "category": "Feature", + "mergedAt": "2026-09-15T21:32:51Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2327" + }, + { + "id": "tutorials-ims#2328", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2328, + "title": "feat(teched): teched-sessions-grid Vue island (#2312)", + "summary": "Adds the TechEd session browser with filtering by venue, track, and speaker plus text search, all reflected in shareable links.", + "category": "Feature", + "mergedAt": "2026-09-15T21:32:42Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2328" + }, + { + "id": "tutorials-ims#2329", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2329, + "title": "feat(kg): add TechEd sessions to HANA property graph (#2312)", + "summary": "Adds TechEd sessions, tracks, and speakers to the knowledge graph so they connect to related concepts and content.", + "category": "Feature", + "mergedAt": "2026-09-15T21:32:34Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2329" + }, + { + "id": "tutorials-ims#2330", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2330, + "title": "feat(teched): /teched/ top-level page (Unit 7, #2312)", + "summary": "Adds the top-level SAP TechEd 2026 sessions page that hosts the filterable session browser.", + "category": "Feature", + "mergedAt": "2026-09-15T21:32:24Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2330" + }, + { + "id": "tutorials-ims#2331", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2331, + "title": "feat(teched): TechEd sessions in semantic search + embedding backfill (#2312)", + "summary": "TechEd sessions are now discoverable through the site's semantic search so you can find relevant talks by meaning, not just keywords.", + "category": "Feature", + "mergedAt": "2026-09-15T21:32:14Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2331" + }, + { + "id": "tutorials-ims#2332", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2332, + "title": "feat(teched): real RainFocus /api/sessions fetcher + delta cron jobs (#2312 Unit 2)", + "summary": "Adds the real TechEd session fetcher and scheduled updates so the session catalog stays current across the Berlin and Virtual events.", + "category": "Feature", + "mergedAt": "2026-09-15T21:32:04Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2332" + }, + { + "id": "tutorials-ims#2322", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2322, + "title": "feat(teched): RainFocus fetcher + data model + seed + /build/teched feed (Unit F, #2312)", + "summary": "Lays the foundation for TechEd 2026 sessions on the site, including the session data model, fetcher, and public session feed.", + "category": "Feature", + "mergedAt": "2026-09-15T20:08:17Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2322" + }, + { + "id": "tutorials-ims#2321", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2321, + "title": "feat(kg): Devtoberfest sessions as first-class KG + semantic-search nodes (#2311)", + "summary": "Devtoberfest sessions are now first-class entries in the knowledge graph and semantic search, connecting talks to the tutorials and topics they cover.", + "category": "Feature", + "mergedAt": "2026-09-15T18:47:19Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2321" + }, + { + "id": "tutorials-ims#2319", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2319, + "title": "feat(skills): tutorial-qa-to-prod author skill (#2310)", + "summary": "Adds a helper that lets tutorial authors promote a QA-previewed tutorial to production with a single request.", + "category": "Feature", + "mergedAt": "2026-09-15T17:30:04Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2319" + }, + { + "id": "tutorials-ims#2318", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2318, + "title": "fix(ord): serve ORD discovery endpoints at runtime (#2307)", + "summary": "The Open Resource Discovery endpoints now respond correctly at runtime instead of returning a not-found error.", + "category": "Fix", + "mergedAt": "2026-09-15T16:07:16Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2318" + }, + { + "id": "tutorials-ims#2317", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2317, + "title": "fix(provenance): read signing key credstore-first via resolveSecret (#2308)", + "summary": "Fixes the signed tutorial provenance feature so its signing key is read from secure storage, letting the provenance endpoints work correctly.", + "category": "Fix", + "mergedAt": "2026-09-15T16:06:33Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2317" + }, + { + "id": "tutorials-ims#2316", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2316, + "title": "fix(display-app): pin websocket-only transport (#2306)", + "summary": "The event display app now stays reliably connected instead of getting stuck reconnecting.", + "category": "Fix", + "mergedAt": "2026-09-15T15:07:18Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2316" + }, + { + "id": "tutorials-ims#2315", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2315, + "title": "fix(app-space): correct event for anonymous visitors + no default-event flash (#2314)", + "summary": "The App Space kiosk page now shows the correct event for anonymous visitors using an event link, with no brief flash of the wrong event name.", + "category": "Fix", + "mergedAt": "2026-09-15T14:48:48Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2315" + }, + { + "id": "tutorials-ims#2305", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2305, + "title": "Release 1.26.0 — DEV → main (PROD promotion)", + "summary": "Promotes the accumulated changes to production as the 1.26.0 release.", + "category": "Maintenance", + "mergedAt": "2026-09-14T20:21:44Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2305" + }, + { + "id": "tutorials-ims#2304", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2304, + "title": "chore(release): 1.26.0 — What's New digest + version bump", + "summary": "Prepares the 1.26.0 release by refreshing the What's New digest and bumping the version.", + "category": "Maintenance", + "mergedAt": "2026-09-14T20:09:12Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2304" + }, + { + "id": "tutorials-ims#2303", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2303, + "title": "Copy Mission — one-click deep copy", + "summary": "Admins can duplicate an entire mission, including all its nested content, as a starting point for a new one.", + "category": "Feature", + "mergedAt": "2026-09-14T19:22:55Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2303" + }, + { + "id": "tutorials-ims#2301", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2301, + "title": "Markdown formatting in event descriptions", + "summary": "Event descriptions now render Markdown as clean, safe HTML in the App Space.", + "category": "Feature", + "mergedAt": "2026-09-14T18:55:26Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2301" + }, + { + "id": "tutorials-ims#2302", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2302, + "title": "Faster concept-page builds", + "summary": "Concept pages build faster by reading their link tables in parallel.", + "category": "Performance", + "mergedAt": "2026-09-14T18:49:07Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2302" + }, + { + "id": "tutorials-ims#2298", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2298, + "title": "Event QR codes open the right event", + "summary": "Scanning an event's QR code now takes you straight to that event's App Space.", + "category": "Fix", + "mergedAt": "2026-09-14T18:44:02Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2298" + }, + { + "id": "tutorials-ims#2297", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2297, + "title": "Correct no-access contact info", + "summary": "The 'no access' page now shows the correct contact information.", + "category": "Fix", + "mergedAt": "2026-09-14T18:43:21Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2297" + }, + { + "id": "tutorials-ims#2299", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2299, + "title": "Event displays handle zero completions", + "summary": "Event display screens now handle events with no completions yet instead of breaking.", + "category": "Fix", + "mergedAt": "2026-09-14T18:43:00Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2299" + }, + { + "id": "tutorials-ims#2292", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2292, + "title": "Edited images republish on rebuild", + "summary": "Editing a tutorial image in place now correctly republishes the updated image.", + "category": "Fix", + "mergedAt": "2026-09-14T17:30:34Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2292" + }, + { + "id": "tutorials-ims#2291", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2291, + "title": "Indented list code blocks render", + "summary": "Tutorials with code blocks nested inside list items now render correctly.", + "category": "Fix", + "mergedAt": "2026-09-14T16:34:53Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2291" + }, + { + "id": "tutorials-ims#2290", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2290, + "title": "Publishing retries transient DB timeouts", + "summary": "Content publishing now retries automatically through transient database timeouts instead of failing.", + "category": "Fix", + "mergedAt": "2026-09-14T16:24:54Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2290" + }, + { + "id": "tutorials-ims#2289", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2289, + "title": "New acronym-trainer lessons: ABAP, BDC, SAP & AI", + "summary": "The acronym trainer gains new lessons covering ABAP, BDC, and a new unit on SAP & AI.", + "category": "Feature", + "mergedAt": "2026-09-14T15:55:07Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2289" + }, + { + "id": "tutorials-ims#2284", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2284, + "title": "Acronym trainer: mastery gating and XP", + "summary": "The acronym trainer now requires a 70% score for mastery and surfaces your XP level and streak.", + "category": "Fix", + "mergedAt": "2026-09-14T12:29:00Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2284" + }, + { + "id": "tutorials-ims#2282", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2282, + "title": "Acronym trainer dark-mode and navigation polish", + "summary": "Better dark-mode contrast, a lesson back button, and clearer labels in the acronym trainer.", + "category": "Fix", + "mergedAt": "2026-09-14T06:50:06Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2282" + }, + { + "id": "tutorials-ims#2281", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2281, + "title": "Acronym trainer backend routing", + "summary": "Adds the routing the acronym trainer needs to reach its backend service.", + "category": "Fix", + "mergedAt": "2026-09-14T05:53:45Z", + "week": "2026-W38", + "weekStart": "2026-09-14", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2281" + }, + { + "id": "tutorials-ims#2280", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2280, + "title": "Acronym trainer landing-page layout", + "summary": "Polishes the acronym trainer's landing page layout and mascot sizing.", + "category": "Fix", + "mergedAt": "2026-09-13T22:18:01Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2280" + }, + { + "id": "tutorials-ims#2279", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2279, + "title": "Interactive widgets load after rebuilds", + "summary": "Interactive page widgets no longer fail to load after a rebuild because of missing shared code bundles.", + "category": "Fix", + "mergedAt": "2026-09-13T19:57:49Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2279" + }, + { + "id": "tutorials-ims#2278", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2278, + "title": "Fix a service startup crash", + "summary": "Resolves a backend startup crash caused by a missing runtime dependency.", + "category": "Fix", + "mergedAt": "2026-09-13T17:37:45Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2278" + }, + { + "id": "tutorials-ims#2277", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2277, + "title": "Chat semantic-search setting migration", + "summary": "Corrects the database migration for the chat semantic-search setting.", + "category": "Fix", + "mergedAt": "2026-09-13T16:36:24Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2277" + }, + { + "id": "tutorials-ims#2276", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2276, + "title": "Deploy-watcher descriptor", + "summary": "Adds a descriptor used by the automated deploy-watcher tooling.", + "category": "Maintenance", + "mergedAt": "2026-09-13T14:15:47Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2276" + }, + { + "id": "tutorials-ims#2274", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2274, + "title": "Load-shedding guard", + "summary": "A load-shedding guard keeps the site responsive under sudden traffic spikes.", + "category": "Feature", + "mergedAt": "2026-09-13T03:05:36Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2274" + }, + { + "id": "tutorials-ims#2273", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2273, + "title": "Input validation and GraphQL query limits", + "summary": "Hardens the platform with WAF-style input validation and limits on GraphQL query depth and complexity.", + "category": "Feature", + "mergedAt": "2026-09-12T21:53:28Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2273" + }, + { + "id": "tutorials-ims#2269", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2269, + "title": "Development tooling improvements", + "summary": "Internal tooling: quieter build logs and token-efficiency rules for development agents.", + "category": "Maintenance", + "mergedAt": "2026-09-12T17:32:53Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2269" + }, + { + "id": "tutorials-ims#2264", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2264, + "title": "Edge-cache fast purge", + "summary": "An edge-cache fast-purge hook gets updated content to visitors sooner after a publish.", + "category": "Feature", + "mergedAt": "2026-09-12T17:26:45Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2264" + }, + { + "id": "tutorials-ims#2263", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2263, + "title": "Origin-side rate limiter", + "summary": "Introduces an origin-side rate limiter (off by default) to protect the backend from abusive traffic.", + "category": "Feature", + "mergedAt": "2026-09-12T17:24:39Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2263" + }, + { + "id": "tutorials-ims#2262", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2262, + "title": "Kasimir Teaches TLAs — acronym trainer", + "summary": "Adds Kasimir Teaches TLAs, a gamified SAP acronym trainer (preview, off by default).", + "category": "Feature", + "mergedAt": "2026-09-12T16:08:44Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2262" + }, + { + "id": "tutorials-ims#2261", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2261, + "title": "Installable Skill bundle endpoint", + "summary": "A new endpoint serves an installable Skill bundle for AI assistants.", + "category": "Feature", + "mergedAt": "2026-09-12T04:00:18Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2261" + }, + { + "id": "tutorials-ims#2260", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2260, + "title": "Learning-path prerequisite reasoning", + "summary": "Prerequisite-chain reasoning can suggest a learning path across related tutorials (preview).", + "category": "Feature", + "mergedAt": "2026-09-12T03:45:18Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2260" + }, + { + "id": "tutorials-ims#2259", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2259, + "title": "Parse and store assertion blocks", + "summary": "Assertion blocks in tutorial source are now parsed and persisted for downstream features.", + "category": "Feature", + "mergedAt": "2026-09-12T01:15:07Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2259" + }, + { + "id": "tutorials-ims#2257", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2257, + "title": "HCQL on authenticated services", + "summary": "Re-enables HCQL query support on five authenticated services on CAP 10.1.0.", + "category": "Feature", + "mergedAt": "2026-09-11T23:46:38Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2257" + }, + { + "id": "tutorials-ims#2256", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2256, + "title": "Signed provenance for served tutorials", + "summary": "Served tutorials can carry a signed provenance envelope so consumers can verify their source.", + "category": "Feature", + "mergedAt": "2026-09-11T22:31:26Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2256" + }, + { + "id": "tutorials-ims#2255", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2255, + "title": "MCP surfaces in the ORD catalog", + "summary": "The ORD catalog document now lists the platform's MCP surfaces.", + "category": "Fix", + "mergedAt": "2026-09-11T22:13:29Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2255" + }, + { + "id": "tutorials-ims#2254", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2254, + "title": "Machine-readable /sitemap.md", + "summary": "A navigable /sitemap.md helps AI tools discover and traverse the site's content.", + "category": "Feature", + "mergedAt": "2026-09-11T19:13:29Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2254" + }, + { + "id": "tutorials-ims#2253", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2253, + "title": "Public semantic search", + "summary": "Public semantic search across the tutorial corpus is now available without signing in.", + "category": "Feature", + "mergedAt": "2026-09-11T18:58:28Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2253" + }, + { + "id": "tutorials-ims#2252", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2252, + "title": "Markdown content negotiation", + "summary": "Tutorial URLs can return raw Markdown when a client asks for it, which suits AI tools and automation.", + "category": "Feature", + "mergedAt": "2026-09-11T18:52:05Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2252" + }, + { + "id": "tutorials-ims#2248", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2248, + "title": "Per-step Markdown over MCP", + "summary": "The MCP server can return individual tutorial steps as Markdown in your chosen format.", + "category": "Feature", + "mergedAt": "2026-09-11T18:51:37Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2248" + }, + { + "id": "tutorials-ims#2243", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2243, + "title": "Devtoberfest session survey links", + "summary": "Devtoberfest session details now include a link to the session survey.", + "category": "Feature", + "mergedAt": "2026-09-11T17:28:01Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2243" + }, + { + "id": "tutorials-ims#2242", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2242, + "title": "Absolute image URLs in tutorial Markdown", + "summary": "Images in served tutorial Markdown now use absolute URLs so they load correctly everywhere.", + "category": "Feature", + "mergedAt": "2026-09-11T15:49:58Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2242" + }, + { + "id": "tutorials-ims#2241", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2241, + "title": "Automatic re-auth on expired sessions", + "summary": "Stale sessions now re-authenticate automatically on expiry instead of showing an error.", + "category": "Fix", + "mergedAt": "2026-09-11T15:40:51Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2241" + }, + { + "id": "tutorials-ims#2238", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2238, + "title": "Release 1.25.0 to production", + "summary": "Promotes the 1.25.0 release from DEV to production.", + "category": "Maintenance", + "mergedAt": "2026-09-10T23:35:11Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2238" + }, + { + "id": "tutorials-ims#2237", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2237, + "title": "Release 1.25.0 digest and version bump", + "summary": "Refreshes the What's New digest and bumps the version for the 1.25.0 release.", + "category": "Maintenance", + "mergedAt": "2026-09-10T23:29:28Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2237" + }, + { + "id": "tutorials-ims#2236", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2236, + "title": "fix(highlight-cds): show every step in tutorials with long code blocks", + "summary": "Tutorials that contain a long, collapsible code block no longer drop the steps that follow it, so every step of a walkthrough now renders correctly.", + "category": "Fix", + "mergedAt": "2026-09-10T21:49:19Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2236" + }, + { + "id": "tutorials-ims#2234", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2234, + "title": "feat(agent-readiness): Markdown source, MCP manifest, and improved discovery for AI agents", + "summary": "Tutorials are now easier for AI assistants and agents to consume: each tutorial exposes its Markdown source, an MCP manifest is published, and llms.txt and sitemap discovery were fixed so tools can find the content reliably.", + "category": "Feature", + "mergedAt": "2026-09-10T21:44:20Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2234" + }, + { + "id": "tutorials-ims#2233", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2233, + "title": "fix(content): stale content now self-heals within a short window", + "summary": "Added a time-based backstop to the content cache so that if a refresh signal is ever missed, recently updated pages correct themselves automatically instead of staying stale.", + "category": "Fix", + "mergedAt": "2026-09-10T20:26:39Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2233" + }, + { + "id": "tutorials-ims#2231", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2231, + "title": "fix(graphql-docs): runnable examples and downloadable schema", + "summary": "The GraphQL documentation now offers working, runnable examples and serves the schema file directly, making it easier to explore and try the API.", + "category": "Docs", + "mergedAt": "2026-09-10T19:59:58Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2231" + }, + { + "id": "tutorials-ims#2230", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2230, + "title": "fix: Copy button on code blocks works outside tutorial pages", + "summary": "The copy-to-clipboard button on code snippets now works on pages beyond tutorials, so code can be copied anywhere it appears on the site.", + "category": "Fix", + "mergedAt": "2026-09-10T18:27:56Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2230" + }, + { + "id": "tutorials-ims#2225", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2225, + "title": "fix(author): correct tutorial attribution when a user record lacks an identity", + "summary": "Author dashboards no longer misattribute tutorials to the wrong person when some legacy user records are missing identity details.", + "category": "Fix", + "mergedAt": "2026-09-09T22:46:08Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2225" + }, + { + "id": "tutorials-ims#2224", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2224, + "title": "Release 1.24.0 — What's New refresh + version bump", + "summary": "Promoted the accumulated DEV changes to production as release 1.24.0, refreshing the What's New digest and version.", + "category": "Maintenance", + "mergedAt": "2026-09-09T17:16:03Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2224" + }, + { + "id": "tutorials-ims#2222", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2222, + "title": "fix(deploy): guard prepare hook so CF staging doesn't fail", + "summary": "Deployments to Cloud Foundry no longer fail during staging when an optional developer git-hook script isn't shipped, making releases more reliable.", + "category": "Maintenance", + "mergedAt": "2026-09-09T15:24:54Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2222" + }, + { + "id": "tutorials-ims#2221", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2221, + "title": "feat(skills): provision-tutorial-repo skill + script", + "summary": "A new guided skill and script make it easy to provision a fresh tutorial source repository with the right structure and settings.", + "category": "Feature", + "mergedAt": "2026-09-09T15:15:52Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2221" + }, + { + "id": "tutorials-ims#2220", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2220, + "title": "fix(puzzles): assign legacyId to admin-authored puzzles", + "summary": "Puzzles created in the admin tools now receive a proper identifier, so they track and display consistently alongside imported puzzles.", + "category": "Fix", + "mergedAt": "2026-09-09T15:12:53Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2220" + }, + { + "id": "tutorials-ims#2218", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2218, + "title": "promote(DEV→main): product-ID meta-tag emit-all fix + queued DEV changes", + "summary": "Promoted a batch of queued DEV changes to production, including a fix that emits product-ID meta tags for every tag on a page.", + "category": "Maintenance", + "mergedAt": "2026-09-09T04:18:24Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2218" + }, + { + "id": "tutorials-ims#2217", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2217, + "title": "fix(sm_tech_ids): emit semaphoreId for every tag", + "summary": "Product-ID meta tags are now emitted for every tag on a page rather than only primary ones, improving downstream content classification.", + "category": "Fix", + "mergedAt": "2026-09-09T04:10:42Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2217" + }, + { + "id": "tutorials-ims#2216", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2216, + "title": "feat(admin): surface feedback-email digest flag in Feature Flags UI", + "summary": "Admins can now toggle the feedback-email digest directly from the Feature Flags screen instead of changing configuration by hand.", + "category": "Feature", + "mergedAt": "2026-09-09T03:25:09Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2216" + }, + { + "id": "tutorials-ims#2215", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2215, + "title": "docs(a2a): document A2A agent + add quickstart", + "summary": "New documentation and a quickstart on the API docs page explain the agent-to-agent (A2A) integration and how to get started with it.", + "category": "Docs", + "mergedAt": "2026-09-09T02:05:38Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2215" + }, + { + "id": "tutorials-ims#2214", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2214, + "title": "ci: split unit tests from static guards", + "summary": "Continuous-integration now runs unit tests separately from static checks, so build failures are clearer and faster to diagnose.", + "category": "Maintenance", + "mergedAt": "2026-09-09T01:02:57Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2214" + }, + { + "id": "tutorials-ims#2213", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2213, + "title": "Release 1.23.0 to production", + "summary": "Promotes the 1.23.0 release with a What's New refresh and version bump.", + "category": "Maintenance", + "mergedAt": "2026-09-08T22:12:34Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2213" + }, + { + "id": "tutorials-ims#2212", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2212, + "title": "fix(admin): categorical week axis for Devtoberfest Signups report", + "summary": "The Devtoberfest Signups admin report now uses a categorical week axis and a trimmed layout for clearer reading.", + "category": "Fix", + "mergedAt": "2026-09-08T21:41:06Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2212" + }, + { + "id": "tutorials-ims#2211", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2211, + "title": "feat(mcp): add search_channels curated tool (#2205)", + "summary": "MCP clients can now discover the external-channels catalog through a new anonymous search_channels tool, searchable by name, category, and platform.", + "category": "Feature", + "mergedAt": "2026-09-08T21:22:33Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2211" + }, + { + "id": "tutorials-ims#2210", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2210, + "title": "docs(skills): add sap-developers-mcp skill for the hosted MCP server", + "summary": "A published guide explains how to connect any MCP client — Claude, Joule, Cursor, and others — to the SAP Developers hosted MCP server across anonymous, PAT, and OAuth access.", + "category": "Docs", + "mergedAt": "2026-09-08T21:21:59Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2210" + }, + { + "id": "tutorials-ims#2208", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2208, + "title": "fix(feedback-digest): mark pre-canonicalized slug lookup (fix DEV unit tests)", + "summary": "Tidied an internal slug lookup in the feedback digest so it passes the build's static checks; no behavior change.", + "category": "Maintenance", + "mergedAt": "2026-09-08T21:04:45Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2208" + }, + { + "id": "tutorials-ims#2207", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2207, + "title": "fix(admin-shell): restore dropped _loadNotificationConfig header (#2199)", + "summary": "Restored a controller method in the Tutorial Health dashboard that had been accidentally broken, so admin builds and notifications work again.", + "category": "Fix", + "mergedAt": "2026-09-08T20:51:25Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2207" + }, + { + "id": "tutorials-ims#2204", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2204, + "title": "feat(#2199): personal watch list in Tutorial Health dashboard", + "summary": "Authors can now build a personal watch list to monitor tutorials they don't own, with the health report scoped to owned, watched, or both.", + "category": "Feature", + "mergedAt": "2026-09-08T20:22:54Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2204" + }, + { + "id": "tutorials-ims#2203", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2203, + "title": "fix(users): backfill email from token subject when JWT email claim is absent (#2199)", + "summary": "An author's email is now backfilled from their sign-in identity when the login token omits it, so their ownership and monitoring dashboards report tutorials correctly.", + "category": "Fix", + "mergedAt": "2026-09-08T20:20:34Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2203" + }, + { + "id": "tutorials-ims#2202", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2202, + "title": "test: fix stale lockstep counts for #2184 semaphore sync (flag + job)", + "summary": "Updated internal test counts to match the newly added taxonomy-sync flag and job.", + "category": "Maintenance", + "mergedAt": "2026-09-08T19:56:03Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2202" + }, + { + "id": "tutorials-ims#2201", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2201, + "title": "feat(channels): alert on new channel submissions awaiting approval (#2198)", + "summary": "DevRel now receives an alert whenever a new external-channel submission is waiting in the moderation queue, so proposals don't sit unnoticed.", + "category": "Feature", + "mergedAt": "2026-09-08T18:18:10Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2201" + }, + { + "id": "tutorials-ims#2200", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2200, + "title": "test(smoke): make the deploy smoke gate a reliable green set", + "summary": "Made the deploy smoke checks a reliably green set by fixing test-only defects, so a red run once again signals a real problem.", + "category": "Maintenance", + "mergedAt": "2026-09-08T18:01:51Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2200" + }, + { + "id": "tutorials-ims#2197", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2197, + "title": "feat(tags): automate Semaphore taxonomy sync (#2184)", + "summary": "A weekly automated sync keeps the tag taxonomy aligned with the central Semaphore model, updating renamed terms in place instead of duplicating them.", + "category": "Feature", + "mergedAt": "2026-09-08T13:56:44Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2197" + }, + { + "id": "tutorials-ims#2196", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2196, + "title": "test: fix two stale unit tests failing CI", + "summary": "Refreshed two stale tests to match earlier source changes.", + "category": "Maintenance", + "mergedAt": "2026-09-08T13:30:49Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2196" + }, + { + "id": "tutorials-ims#2195", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2195, + "title": "fix(scavenger-hunt): correct Shilpa clue string", + "summary": "Corrected the API-docs scavenger hunt clue so it matches the current site snippet.", + "category": "Fix", + "mergedAt": "2026-09-08T12:57:16Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2195" + }, + { + "id": "tutorials-ims#2191", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2191, + "title": "test(sm-tech-ids): env-gate tutorial-page sm_tech_ids smoke assertion", + "summary": "Made a tutorial product-ID smoke check opt-in via configuration so it no longer fails on environments lacking that data.", + "category": "Maintenance", + "mergedAt": "2026-09-08T04:00:49Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2191" + }, + { + "id": "tutorials-ims#2190", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2190, + "title": "feat(feedback): email tutorial owners new commented feedback (#2188)", + "summary": "Tutorial owners now receive a daily email digest of new commented feedback on their tutorials.", + "category": "Feature", + "mergedAt": "2026-09-08T03:51:16Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2190" + }, + { + "id": "tutorials-ims#2189", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2189, + "title": "fix(attachments): base64url-encode source URLs to dodge Akamai WAF 403 (#1931 follow-up)", + "summary": "Tutorial attachment downloads work again by encoding source URLs so they no longer trip a content-delivery security block.", + "category": "Fix", + "mergedAt": "2026-09-08T03:23:22Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2189" + }, + { + "id": "tutorials-ims#2187", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2187, + "title": "Restore sm_tech_ids product-ID meta tags across content pages", + "summary": "Content pages once again emit product-ID meta tags so the site search crawler can filter migrated documents by product.", + "category": "Feature", + "mergedAt": "2026-09-08T02:38:08Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2187" + }, + { + "id": "tutorials-ims#2186", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2186, + "title": "fix(puzzles): wire Submit button as the completion finalizer (#2185)", + "summary": "The puzzle solver's Submit button now works as the completion step, so solving and submitting a puzzle records it correctly.", + "category": "Fix", + "mergedAt": "2026-09-07T23:00:30Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2186" + }, + { + "id": "tutorials-ims#2183", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2183, + "title": "fix(tutorial-author): relabel 'Created by' to 'Created on' (#2177)", + "summary": "Relabeled a tutorial's date line from 'Created by' to 'Created on' since it shows only a date, not a person.", + "category": "Fix", + "mergedAt": "2026-09-07T11:12:56Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2183" + }, + { + "id": "tutorials-ims#2182", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2182, + "title": "fix(author): stop mixing named authors with last-changed-by identity (#2181)", + "summary": "Fixed tutorial bylines so a named author is no longer paired with a different person's photo and profile link when the author profile is missing.", + "category": "Fix", + "mergedAt": "2026-09-07T11:07:34Z", + "week": "2026-W37", + "weekStart": "2026-09-07", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2182" + }, + { + "id": "tutorials-ims#2176", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2176, + "title": "Release 1.22.0 — What's New refresh + version bump", + "summary": "Promoted the accumulated DEV changes to production as release 1.22.0, refreshing the What's New digest and version.", + "category": "Maintenance", + "mergedAt": "2026-09-06T19:08:20Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2176" + }, + { + "id": "tutorials-ims#2175", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2175, + "title": "fix(channel-atlas): dark-mode theming — legible text + visible filter selection", + "summary": "The Channel Atlas now reads correctly in dark mode, with legible text and clearly highlighted filter selections.", + "category": "Fix", + "mergedAt": "2026-09-06T17:44:52Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2175" + }, + { + "id": "tutorials-ims#2174", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2174, + "title": "fix(channel-atlas): recover from double-encoded inline payload (blank Atlas)", + "summary": "Fixed a bug that left the Channel Atlas showing a blank page, so the channel ecosystem graph now loads reliably.", + "category": "Fix", + "mergedAt": "2026-09-06T16:53:00Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2174" + }, + { + "id": "tutorials-ims#2173", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2173, + "title": "fix(channels): hub UX — crosswalk 404, media-diet layout, health enrichment", + "summary": "Polished the Channels hub — removed a dead link, gave the Build-Your-Media-Diet page a clearer two-column layout with a live match count, and made the Ecosystem Health view easier to read at a glance.", + "category": "Fix", + "mergedAt": "2026-09-06T15:25:17Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2173" + }, + { + "id": "tutorials-ims#2172", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2172, + "title": "fix(ci): mark pre-canonicalized slug lookup in build-channel-detail", + "summary": "Internal build-guard adjustment for the channels publishing pipeline.", + "category": "Maintenance", + "mergedAt": "2026-09-06T15:25:02Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2172" + }, + { + "id": "tutorials-ims#2171", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2171, + "title": "fix(channels): chunk ChannelTopicMap AI seed to avoid token-cap zero-result", + "summary": "Channels are now reliably tagged with the topics they cover, so topic pages surface the right related channels.", + "category": "Fix", + "mergedAt": "2026-09-06T14:44:43Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2171" + }, + { + "id": "tutorials-ims#2170", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2170, + "title": "fix(ci): allowlist GET /content/channel-detail/:slug (route-drift guard)", + "summary": "Internal route-parity guard update for the channels content service.", + "category": "Maintenance", + "mergedAt": "2026-09-06T13:46:35Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2170" + }, + { + "id": "tutorials-ims#2169", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2169, + "title": "feat(channels): Phase 3 — Channel Atlas SPA (/channels/atlas/)", + "summary": "New interactive Channel Atlas maps the SAP developer channel ecosystem as a visual graph you can explore and filter by owner type.", + "category": "Feature", + "mergedAt": "2026-09-06T12:04:55Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2169" + }, + { + "id": "tutorials-ims#2168", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2168, + "title": "feat(channels-hub): Phase 2 — crosswalk Direction 2, media-diet signed-in + export", + "summary": "Added per-channel detail pages, a Learn-to-Follow crosswalk between topics and channels, and the ability to build and export a personalized media diet of channels.", + "category": "Feature", + "mergedAt": "2026-09-06T11:59:20Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2168" + }, + { + "id": "tutorials-ims#2167", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2167, + "title": "fix(channels): health page baked empty stats — data-key filename mismatch", + "summary": "Fixed the Channels Ecosystem Health page that was showing zero channels; it now displays the real totals.", + "category": "Fix", + "mergedAt": "2026-09-06T00:40:48Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2167" + }, + { + "id": "tutorials-ims#2166", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2166, + "title": "feat(channels): Channels Hub Phase 1 — hub band + ecosystem-health + media-diet", + "summary": "Turned the Channels page into a hub with an Ecosystem Health view and a Build-Your-Media-Diet tool for discovering channels by focus area.", + "category": "Feature", + "mergedAt": "2026-09-05T22:37:58Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2166" + }, + { + "id": "tutorials-ims#2165", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2165, + "title": "feat(channels): Phase 0 foundation — slug+feedUrl schema, migration, ingest", + "summary": "Behind-the-scenes foundation for the Channels hub, adding stable channel permalinks and feed links.", + "category": "Maintenance", + "mergedAt": "2026-09-05T21:01:10Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2165" + }, + { + "id": "tutorials-ims#2164", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2164, + "title": "fix(admin-ui): restore FE list→object navigation in headless shell (unblocks Channels Edit)", + "summary": "Fixed the admin console so clicking a list row opens its detail page for editing across the Channels and other management screens.", + "category": "Fix", + "mergedAt": "2026-09-05T18:03:50Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2164" + }, + { + "id": "tutorials-ims#2163", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2163, + "title": "fix(admin): enable Edit — Channels list rows now navigate to object page", + "summary": "Enabled editing of Channels, Channel Collections, and Channel Topic Maps in the admin console by wiring list rows to their detail pages.", + "category": "Fix", + "mergedAt": "2026-09-05T16:41:30Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2163" + }, + { + "id": "tutorials-ims#2162", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2162, + "title": "fix(nav): remember open folder, Tutorial Navigator first, fix palette + channels", + "summary": "Navigation improvements — the menu now remembers your open section, the command palette and Channels page are fixed, and Tutorial Navigator is listed first.", + "category": "Fix", + "mergedAt": "2026-09-05T14:25:45Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2162" + }, + { + "id": "tutorials-ims#2161", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2161, + "title": "feat(nav): restore 'About the Knowledge Graph' (/explore/about/) menu item", + "summary": "Restored the 'About the Knowledge Graph' entry in the navigation menu alongside the interactive Explorer.", + "category": "Feature", + "mergedAt": "2026-09-05T12:39:10Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2161" + }, + { + "id": "tutorials-ims#2160", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2160, + "title": "feat(nav+channels): shared nav data + two-level menu, palette wiring, channels admin + suggest-form", + "summary": "Unified the top navigation and command palette from a single source so Channels, Topics, Browse, What's New, and more appear consistently in a cleaner two-level menu.", + "category": "Feature", + "mergedAt": "2026-09-05T12:29:36Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2160" + }, + { + "id": "tutorials-ims#2159", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2159, + "title": "fix(channels): make seed runnable + widen platform (unblocks DEV channel data load)", + "summary": "Internal reliability fixes to the channels data-loading pipeline so the full channel dataset loads cleanly.", + "category": "Maintenance", + "mergedAt": "2026-09-05T08:20:16Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2159" + }, + { + "id": "tutorials-ims#2158", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2158, + "title": "polish(channels): tighten P4 submit-service contract (405 READ + EDIT/REMOVE target guard)", + "summary": "Hardening of the community channel-submission service for more predictable behavior.", + "category": "Maintenance", + "mergedAt": "2026-09-04T23:03:51Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2158" + }, + { + "id": "tutorials-ims#2157", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2157, + "title": "feat(channels): P4 community submission loop", + "summary": "Community members can now suggest adding, editing, or removing channels, with an admin moderation queue to review each submission.", + "category": "Feature", + "mergedAt": "2026-09-04T22:52:55Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2157" + }, + { + "id": "tutorials-ims#2156", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2156, + "title": "fix(#2138): report filter value help + labels, legible survey charts", + "summary": "Report filters for Mission and Group now show proper labels and value help, and the Survey report charts are legible.", + "category": "Fix", + "mergedAt": "2026-09-04T21:49:24Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2156" + }, + { + "id": "tutorials-ims#2155", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2155, + "title": "fix(devtoberfest): unblock promo video (CSP host) + side-by-side layout (#2144)", + "summary": "Fixed the Devtoberfest promo video that was blocked from playing and corrected its side-by-side layout.", + "category": "Fix", + "mergedAt": "2026-09-04T21:30:33Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2155" + }, + { + "id": "tutorials-ims#2154", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2154, + "title": "fix(homepage): Joule purple→pink brand gradient on Devtoberfest banner (#2131)", + "summary": "Updated the homepage Devtoberfest banner to the Joule purple-to-pink brand gradient with accessible contrast.", + "category": "Fix", + "mergedAt": "2026-09-04T21:27:31Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2154" + }, + { + "id": "tutorials-ims#2153", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2153, + "title": "feat(channels): Surface C — related-channels band on /topics/* (P3)", + "summary": "Topic pages now show a 'Related channels' band linking out to relevant SAP developer channels.", + "category": "Feature", + "mergedAt": "2026-09-04T21:00:55Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2153" + }, + { + "id": "tutorials-ims#2152", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2152, + "title": "fix(channels): unbreak unit-tests slug-lookup guard after PR #2151", + "summary": "Internal build-guard fix for the channel collections pipeline.", + "category": "Maintenance", + "mergedAt": "2026-09-04T20:17:55Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2152" + }, + { + "id": "tutorials-ims#2151", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2151, + "title": "feat(channels): P2 — clustering & editorial collections", + "summary": "Added curated editorial collections that group related channels and lead the Channels directory.", + "category": "Feature", + "mergedAt": "2026-09-04T19:37:24Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2151" + }, + { + "id": "tutorials-ims#2150", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2150, + "title": "feat(#2138) standard reports in Admin UI Reporting folder", + "summary": "New standard reports in the admin Reporting folder — Tutorial Engagement, Tutorial Completions, and a Tutorial Survey view — replacing the retired Power BI dashboard.", + "category": "Feature", + "mergedAt": "2026-09-04T19:36:43Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2150" + }, + { + "id": "tutorials-ims#2149", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2149, + "title": "docs(mcp): add Joule Work Desktop MCP connection instructions", + "summary": "Added instructions for connecting to the platform's MCP server from Joule Work Desktop.", + "category": "Docs", + "mergedAt": "2026-09-04T18:56:00Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2149" + }, + { + "id": "tutorials-ims#2148", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2148, + "title": "feat(me): show partial completions in Recent Activity (#2146)", + "summary": "Your Recent Activity on the My Completions page now shows in-progress tutorials so you can pick up where you left off.", + "category": "Feature", + "mergedAt": "2026-09-04T18:23:03Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2148" + }, + { + "id": "tutorials-ims#2147", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2147, + "title": "External channels P1 follow-ups: facets, owner badges, feed hardening", + "summary": "Enhanced the Channels directory with more filters (focus area and status), clearer owner badges, and related links on each channel.", + "category": "Feature", + "mergedAt": "2026-09-04T18:07:22Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2147" + }, + { + "id": "tutorials-ims#2145", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2145, + "title": "feat(devtoberfest): embed promo video in content gap (#2144)", + "summary": "Added the Devtoberfest promo video to the event home page.", + "category": "Feature", + "mergedAt": "2026-09-04T18:06:10Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2145" + }, + { + "id": "tutorials-ims#2143", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2143, + "title": "fix(docs): register channels reference page in sidebar", + "summary": "Registered the External Channels reference page in the documentation sidebar.", + "category": "Docs", + "mergedAt": "2026-09-04T17:53:15Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2143" + }, + { + "id": "tutorials-ims#2142", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2142, + "title": "feat: external SAP channels P1 foundation", + "summary": "Introduced the external SAP channels directory at /channels, bringing hundreds of curated developer channels into the site with search, filters, and admin management.", + "category": "Feature", + "mergedAt": "2026-09-04T17:42:09Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2142" + }, + { + "id": "tutorials-ims#2141", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2141, + "title": "fix(puzzles): sort admin clue lists by number, not grid position (#2140)", + "summary": "Fixed the crossword puzzle builder so Down clues are listed in numeric order.", + "category": "Fix", + "mergedAt": "2026-09-04T15:51:32Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2141" + }, + { + "id": "tutorials-ims#2136", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2136, + "title": "docs(mcp): fix OAuth quickstart to use prod client_id", + "summary": "Corrected the MCP OAuth quickstart to use the production client ID.", + "category": "Docs", + "mergedAt": "2026-09-04T13:27:00Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2136" + }, + { + "id": "tutorials-ims#2137", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2137, + "title": "fix(mcp-oauth): advertise approuter as authorization server (self-issuer)", + "summary": "Fixed the MCP server OAuth sign-in flow so the token exchange completes correctly.", + "category": "Fix", + "mergedAt": "2026-09-04T08:14:40Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2137" + }, + { + "id": "tutorials-ims#2135", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2135, + "title": "feat(events): per-event name, description & logo on event-display + app-space (#2133)", + "summary": "Event display and App Space pages now show each event's real name, description, and logo instead of a hardcoded label.", + "category": "Feature", + "mergedAt": "2026-09-04T07:42:07Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2135" + }, + { + "id": "tutorials-ims#2134", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2134, + "title": "feat(homepage): Devtoberfest banner with live countdown (#2131)", + "summary": "Added a homepage Devtoberfest banner with a live countdown to the event.", + "category": "Feature", + "mergedAt": "2026-09-04T06:40:22Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2134" + }, + { + "id": "tutorials-ims#2132", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2132, + "title": "Update Devtoberfest scavenger hunt clue captions (#2130)", + "summary": "Updated the Devtoberfest scavenger hunt clue captions.", + "category": "Maintenance", + "mergedAt": "2026-09-04T06:17:42Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2132" + }, + { + "id": "tutorials-ims#2129", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2129, + "title": "fix(api-docs): sap-devs CLI install no longer on npm (#2123)", + "summary": "Updated the API Docs page with current install instructions for the sap-devs CLI (Homebrew, Scoop, and GitHub Releases) now that it's no longer on npm.", + "category": "Fix", + "mergedAt": "2026-09-03T18:00:37Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2129" + }, + { + "id": "tutorials-ims#2128", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2128, + "title": "fix(tutorials): support no-step + commented-out-step validation tutorials (#2127)", + "summary": "Fixed rendering of Devtoberfest validation tutorials that intentionally ship with no steps or commented-out steps yet.", + "category": "Fix", + "mergedAt": "2026-09-03T17:40:43Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2128" + }, + { + "id": "tutorials-ims#2126", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2126, + "title": "fix(sitemap): guard catalog-only rebuilds from wiping /tutorials/ URLs", + "summary": "Fixed an issue where catalog-only content rebuilds could strip tutorial URLs from the sitemap, restoring full search-crawler coverage.", + "category": "Fix", + "mergedAt": "2026-09-03T15:15:59Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2126" + }, + { + "id": "tutorials-ims#2122", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2122, + "title": "promote: rebuild-content phantom-step fix (#2121) to main", + "summary": "Promoted a content-rebuild pipeline fix to production.", + "category": "Maintenance", + "mergedAt": "2026-09-03T02:49:28Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2122" + }, + { + "id": "tutorials-ims#2121", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2121, + "title": "fix(rebuild-content): drop phantom 'Fetch topics gallery' step (breaks all full rebuilds)", + "summary": "Fixed the content rebuild pipeline that was failing on a missing step, restoring full content publishes.", + "category": "Maintenance", + "mergedAt": "2026-09-03T02:47:30Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2121" + }, + { + "id": "tutorials-ims#2119", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2119, + "title": "Release 1.21.0 → PROD", + "summary": "Release 1.21.0 promotion to production.", + "category": "Maintenance", + "mergedAt": "2026-09-03T01:33:17Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2119" + }, + { + "id": "tutorials-ims#2118", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2118, + "title": "chore(release): bump MTA 1.20.1 → 1.21.0 + refresh What's New digest", + "summary": "Version bump and What's New digest refresh for the 1.21.0 release.", + "category": "Maintenance", + "mergedAt": "2026-09-03T01:31:30Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2118" + }, + { + "id": "tutorials-ims#2117", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2117, + "title": "fix(topics): nest /topics/ tree by parsing real titlePath separators", + "summary": "The Topics browser now nests into proper drill-in folders instead of showing every tag as a single flat entry.", + "category": "Fix", + "mergedAt": "2026-09-02T16:47:28Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2117" + }, + { + "id": "tutorials-ims#2116", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2116, + "title": "feat(devtoberfest): Live vs Prerecorded session tag + format filter (#2110)", + "summary": "Devtoberfest sessions now carry a Live vs Prerecorded badge, with a new Format filter across the grid, calendar, and schedule views.", + "category": "Feature", + "mergedAt": "2026-09-02T16:30:44Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2116" + }, + { + "id": "tutorials-ims#2115", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2115, + "title": "fix(tutorial): make Overview tags clickable (#2112)", + "summary": "Tags in a tutorial's Overview section are now clickable links to browse related tutorials, matching the header chips.", + "category": "Fix", + "mergedAt": "2026-09-02T16:26:08Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2115" + }, + { + "id": "tutorials-ims#2114", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2114, + "title": "fix(admin): stop prompting non-SuperAdmin for publish rights on description edits (#2111)", + "summary": "Authors and admins can again save a group's description or title edit without hitting a false 'SuperAdmin only' publish-rights error.", + "category": "Fix", + "mergedAt": "2026-09-02T16:09:53Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2114" + }, + { + "id": "tutorials-ims#2109", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2109, + "title": "feat(cross-container): ADVOCATE_VALUE_HELP_V1 view for planner Session.host (#2102)", + "summary": "The active SAP Developer Advocate roster is now shared as an authoritative value-help source, letting the Devtoberfest planner pick session hosts from the real list.", + "category": "Feature", + "mergedAt": "2026-09-02T12:15:09Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2109" + }, + { + "id": "tutorials-ims#2108", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2108, + "title": "fix(ci): allowlist /content/topics* in srv-qa route-drift guard", + "summary": "Build-guard update so the new Topics content routes pass continuous integration.", + "category": "Maintenance", + "mergedAt": "2026-09-02T11:41:19Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2108" + }, + { + "id": "tutorials-ims#2107", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2107, + "title": "feat(devtoberfest): schedule-consistency check across planner + external assets (#2103)", + "summary": "A new admin check flags Devtoberfest sessions whose planner time disagrees with their YouTube livestream or community-event schedule.", + "category": "Feature", + "mergedAt": "2026-09-02T11:23:34Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2107" + }, + { + "id": "tutorials-ims#2106", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2106, + "title": "fix(topics): URL-safe topic slugs so /topics/ serves (#2099 follow-up)", + "summary": "Topic detail pages now resolve correctly — topic slugs are made URL-safe so /topics/ no longer returns 404.", + "category": "Fix", + "mergedAt": "2026-09-02T11:09:44Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2106" + }, + { + "id": "tutorials-ims#2100", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2100, + "title": "fix(approuter): /search 301 via middleware — unblock DEV approuter boot", + "summary": "Restored the site frontend after a bad redirect setting; the /search shortcut now redirects reliably.", + "category": "Fix", + "mergedAt": "2026-09-02T00:43:35Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2100" + }, + { + "id": "tutorials-ims#2099", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2099, + "title": "feat(topics): tag-tree topics — CAP-served index + detail, concept enrichment, search fix", + "summary": "Rebuilt the Topics area with a browsable tag tree, per-topic detail pages enriched with related concepts, and a smarter search redirect.", + "category": "Feature", + "mergedAt": "2026-09-01T22:02:12Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2099" + }, + { + "id": "tutorials-ims#2098", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2098, + "title": "fix(#2097): scope QA notify workflow to default branch", + "summary": "The QA content-rebuild automation no longer misfires when work is pushed to non-default branches.", + "category": "Maintenance", + "mergedAt": "2026-09-01T20:10:29Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2098" + }, + { + "id": "tutorials-ims#2096", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2096, + "title": "feat(admin-ui): make Tutorials OP facets readable (concepts/community/images)", + "summary": "The admin Tutorials page now shows readable concept names, community descriptions, and image links instead of raw IDs.", + "category": "Feature", + "mergedAt": "2026-09-01T18:39:29Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2096" + }, + { + "id": "tutorials-ims#2095", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2095, + "title": "fix(categories): resolve namespaced entities for HANA backfill + seed classifier descriptions", + "summary": "Fixed the Categories facet staying empty by resolving entities correctly against SAP HANA and seeding classifier descriptions.", + "category": "Fix", + "mergedAt": "2026-09-01T18:39:11Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2095" + }, + { + "id": "tutorials-ims#2093", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2093, + "title": "fix(publish): gate category self-heal to avoid OOM on bulk publishes", + "summary": "Full content publishes no longer risk exhausting backend memory while auto-categorizing tutorials.", + "category": "Fix", + "mergedAt": "2026-09-01T15:15:27Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2093" + }, + { + "id": "tutorials-ims#2092", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2092, + "title": "fix(srv-qa): lazy-import category-classifier-llm to unbreak srv-qa boot", + "summary": "Deploy-stability fix so the QA content container boots reliably.", + "category": "Maintenance", + "mergedAt": "2026-08-31T21:29:34Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2092" + }, + { + "id": "tutorials-ims#2091", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2091, + "title": "fix(ci): allowlist srv-only publish-contributors + publish-validation-rules routes", + "summary": "Build-guard update covering the new contributor and validation-rule publish routes.", + "category": "Maintenance", + "mergedAt": "2026-08-31T21:29:22Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2091" + }, + { + "id": "tutorials-ims#2090", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2090, + "title": "Admin OP Phase 3: Knowledge-Graph facet", + "summary": "The admin Tutorials page gains a Knowledge-Graph facet surfacing the graph relationships computed nightly.", + "category": "Feature", + "mergedAt": "2026-08-31T20:30:02Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2090" + }, + { + "id": "tutorials-ims#2089", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2089, + "title": "Admin OP Phase 2: Media facet + Freshness report header", + "summary": "The admin Tutorials page adds a Media facet with object-store visibility plus a freshness run-history header.", + "category": "Feature", + "mergedAt": "2026-08-31T19:49:05Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2089" + }, + { + "id": "tutorials-ims#2088", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2088, + "title": "Admin OP Phase 1: fix empty Categories / Contributors / Validation facets", + "summary": "Fixed three empty facets — Categories, Contributors, and Validation — on the admin Tutorials page.", + "category": "Fix", + "mergedAt": "2026-08-31T19:08:22Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2088" + }, + { + "id": "tutorials-ims#2087", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2087, + "title": "fix(docs): unbreak VitePress build — backtick bare in gotchas.md", + "summary": "Fixed the developer documentation site build.", + "category": "Docs", + "mergedAt": "2026-08-31T15:29:27Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2087" + }, + { + "id": "tutorials-ims#2086", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2086, + "title": "docs: slim CLAUDE.md Top Gotchas (relocate detail to gotchas.md)", + "summary": "Streamlined the internal contributor guidance for faster, leaner tooling sessions.", + "category": "Maintenance", + "mergedAt": "2026-08-31T15:19:34Z", + "week": "2026-W36", + "weekStart": "2026-08-31", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2086" + }, + { + "id": "tutorials-ims#2084", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2084, + "title": "chore: sync main into DEV (reconcile hotfixes #2081 + #2083)", + "summary": "Reconciled two production hotfixes back into the development branch to keep branches in sync.", + "category": "Maintenance", + "mergedAt": "2026-08-29T06:56:28Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2084" + }, + { + "id": "tutorials-ims#2083", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2083, + "title": "fix(admin): Feature Flags Enable/Disable buttons (Unknown action import)", + "summary": "The Enable/Disable buttons on the admin Feature Flags page work again.", + "category": "Fix", + "mergedAt": "2026-08-29T06:45:56Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2083" + }, + { + "id": "tutorials-ims#2081", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2081, + "title": "fix(rebuild-content): fetch topic-clusters/featured-topics/topics-gallery/tags so homepage bands bake fresh", + "summary": "The homepage Explore 'topic clusters' band now shows fresh, curated topic data instead of falling back to a tutorials-only list.", + "category": "Fix", + "mergedAt": "2026-08-28T23:23:27Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2081" + }, + { + "id": "tutorials-ims#2080", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2080, + "title": "Release 1.20.1 → PROD", + "summary": "Shipped release 1.20.1 to production.", + "category": "Maintenance", + "mergedAt": "2026-08-28T21:07:50Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2080" + }, + { + "id": "tutorials-ims#2078", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2078, + "title": "chore(release): bump MTA 1.20.0 → 1.20.1 + refresh What's New digest", + "summary": "Release 1.20.1 preparation and What's New digest refresh.", + "category": "Maintenance", + "mergedAt": "2026-08-28T20:52:20Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2078" + }, + { + "id": "tutorials-ims#2079", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2079, + "title": "fix(homepage): boot-seed HomepageShelves; retire seed CSV + manual seed:thirdparty", + "summary": "Curated homepage shelf links (Prior Labs, Dremio, Hugging Face, and others) no longer disappear after a deployment.", + "category": "Fix", + "mergedAt": "2026-08-28T20:52:09Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2079" + }, + { + "id": "tutorials-ims#2076", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2076, + "title": "docs: register akamai-well-known-forward in sidebar (fix docs:build)", + "summary": "Corrected the developer-docs sidebar so a new operations runbook page publishes correctly.", + "category": "Docs", + "mergedAt": "2026-08-28T17:58:23Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2076" + }, + { + "id": "tutorials-ims#2075", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2075, + "title": "feat(approuter): complete .well-known MCP discovery surface (openid-config, mcp.json, WWW-Authenticate pointer)", + "summary": "External MCP clients such as the Claude and ChatGPT connectors can now auto-discover the platform's OAuth endpoints through a complete set of .well-known discovery documents.", + "category": "Feature", + "mergedAt": "2026-08-28T17:47:32Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2075" + }, + { + "id": "tutorials-ims#2074", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2074, + "title": "fix(freshness): calibrate prompt by severity so Check Freshness surfaces findings again", + "summary": "The admin Check Freshness tool once again surfaces potentially outdated API references instead of returning an empty report.", + "category": "Fix", + "mergedAt": "2026-08-28T16:15:34Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2074" + }, + { + "id": "tutorials-ims#2073", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2073, + "title": "fix(feature-flags): don't connect to db before model is loaded (fixes #2066 unit regression + latent boot bug)", + "summary": "Fixed a startup issue in the feature-flag system that could cause service errors before the data model finished loading.", + "category": "Fix", + "mergedAt": "2026-08-28T16:00:02Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2073" + }, + { + "id": "tutorials-ims#2072", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2072, + "title": "fix(me): AllCompletions/RecentActivity sign-in gate must check /auth/user JSON, not resp.ok", + "summary": "My Completions and Recent Activity now prompt you to sign in when your session has expired, instead of silently failing to load.", + "category": "Fix", + "mergedAt": "2026-08-28T14:41:55Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2072" + }, + { + "id": "tutorials-ims#2071", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2071, + "title": "fix(tokens): /me/tokens sign-in gate must check /auth/user JSON, not resp.ok", + "summary": "The personal access tokens page now shows a sign-in prompt when your session lapses, rather than a generic load error.", + "category": "Fix", + "mergedAt": "2026-08-28T14:34:04Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2071" + }, + { + "id": "tutorials-ims#2070", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2070, + "title": "fix(test): repair unit-suite fallout from flag→DB migration (WIP)", + "summary": "Internal test-suite repairs following the feature-flag configuration migration.", + "category": "Maintenance", + "mergedAt": "2026-08-28T13:47:42Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2070" + }, + { + "id": "tutorials-ims#2069", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2069, + "title": "fix(qa): slug-scope QA content publish + resilient commit + lock release", + "summary": "Made QA content republishing more reliable by scoping it to changed tutorials and hardening the publish step.", + "category": "Fix", + "mergedAt": "2026-08-28T13:47:08Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2069" + }, + { + "id": "tutorials-ims#2068", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2068, + "title": "fix(content): skip Option-B delta flag boot-seed under vitest", + "summary": "Test-environment fix so content fast-path defaults do not leak into the automated test suite.", + "category": "Maintenance", + "mergedAt": "2026-08-28T12:46:37Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2068" + }, + { + "id": "tutorials-ims#2066", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2066, + "title": "feat(feature-flags): migrate remaining 14 env flags to DB config (#2060)", + "summary": "Moved the remaining runtime feature flags to database-backed configuration so they are editable in admin and survive deployments.", + "category": "Maintenance", + "mergedAt": "2026-08-28T12:06:08Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2066" + }, + { + "id": "tutorials-ims#2064", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2064, + "title": "feat(content): default Option-B fast-path flags ON (seed ImsConfig if absent)", + "summary": "Content fast-path optimizations now default on and persist across deployments, keeping tutorial content updates fast.", + "category": "Performance", + "mergedAt": "2026-08-28T10:38:23Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2064" + }, + { + "id": "tutorials-ims#2062", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2062, + "title": "ci(rebuild-qa): add force-publish input to re-seed Option B ContentCurrent (QA)", + "summary": "Added a force-republish option to the QA content rebuild workflow.", + "category": "Maintenance", + "mergedAt": "2026-08-28T10:28:07Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2062" + }, + { + "id": "tutorials-ims#2061", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2061, + "title": "fix(content): move Option-B fast-path flags from env vars to DB config (ImsConfig)", + "summary": "Moved content fast-path settings to durable database configuration so they are no longer reset on deployment.", + "category": "Maintenance", + "mergedAt": "2026-08-28T10:27:42Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2061" + }, + { + "id": "tutorials-ims#2058", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2058, + "title": "Release 1.20.0 → PROD", + "summary": "Promoted the 1.20.0 release to production.", + "category": "Maintenance", + "mergedAt": "2026-08-27T20:41:46Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2058" + }, + { + "id": "tutorials-ims#2059", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2059, + "title": "chore: sync main into DEV (reconcile for 1.20.0 release)", + "summary": "Release housekeeping to keep the DEV and main branches in sync ahead of a release.", + "category": "Maintenance", + "mergedAt": "2026-08-27T20:41:22Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2059" + }, + { + "id": "tutorials-ims#2057", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2057, + "title": "perf(qa): reuse cached non-target content on QA slug-targeted rebuilds despite feed drift", + "summary": "QA single-tutorial content rebuilds are much faster now that untouched tutorials reuse cached content.", + "category": "Performance", + "mergedAt": "2026-08-27T19:30:20Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2057" + }, + { + "id": "tutorials-ims#2056", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2056, + "title": "fix(parsers): comment-aware section/intro extraction", + "summary": "Tutorials that disable a section with an HTML comment now render all their steps correctly, with no stray characters left on the page.", + "category": "Fix", + "mergedAt": "2026-08-27T19:12:29Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2056" + }, + { + "id": "tutorials-ims#2055", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2055, + "title": "chore(release): bump MTA 1.19.0 → 1.20.0 + refresh What's New digest", + "summary": "Release version bump and What's New digest refresh.", + "category": "Maintenance", + "mergedAt": "2026-08-27T18:10:53Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2055" + }, + { + "id": "tutorials-ims#2054", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2054, + "title": "fix(admin): readable Devtoberfest Signups report — week axis, labeled total, breakdowns (#2047)", + "summary": "Polished the Devtoberfest Signups report by hiding internal week indices, labeling the total, and correcting the week axis.", + "category": "Fix", + "mergedAt": "2026-08-27T17:47:13Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2054" + }, + { + "id": "tutorials-ims#2053", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2053, + "title": "fix(build/tags): emit mdFormat (category>value) slugs instead of display names", + "summary": "Fixed the tag feed to emit canonical category-value slugs instead of display names so CI tag validation works.", + "category": "Fix", + "mergedAt": "2026-08-27T17:23:59Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2053" + }, + { + "id": "tutorials-ims#2052", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2052, + "title": "feat(devtoberfest): rename \"Hit the Cat\" → \"Tag the Cat\" (#2042)", + "summary": "Renamed the Devtoberfest mini-game from 'Hit the Cat' to the friendlier 'Tag the Cat'.", + "category": "Feature", + "mergedAt": "2026-08-27T17:06:20Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2052" + }, + { + "id": "tutorials-ims#2051", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2051, + "title": "feat: add /build/tags tag-taxonomy feed for CI frontmatter validation", + "summary": "Added a build-time tag-taxonomy feed so downstream CI can validate tutorial frontmatter tags against the canonical list.", + "category": "Feature", + "mergedAt": "2026-08-27T14:17:59Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2051" + }, + { + "id": "tutorials-ims#2049", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2049, + "title": "feat(devtoberfest): Hit the Cat mini-game + gameboard task-type/bonus fixes (#2042)", + "summary": "Added a hidden Chrome-dino-style cat mini-game to the Devtoberfest home page that awards gameboard points to signed-in players.", + "category": "Feature", + "mergedAt": "2026-08-27T14:08:29Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2049" + }, + { + "id": "tutorials-ims#2050", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2050, + "title": "Devtoberfest Signups report: readable week axis, total KPI, region breakdown (#2047)", + "summary": "Made the Devtoberfest Signups admin report readable with a real week-date axis, a labeled total, and region/edition/role breakdowns.", + "category": "Feature", + "mergedAt": "2026-08-27T14:07:25Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2050" + }, + { + "id": "tutorials-ims#2048", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2048, + "title": "fix(devtoberfest-calendar): month grid fits at normal resolution (#2046)", + "summary": "Fixed the Devtoberfest month calendar overflowing the screen at normal resolution.", + "category": "Fix", + "mergedAt": "2026-08-27T13:57:08Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2048" + }, + { + "id": "tutorials-ims#2044", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2044, + "title": "Turn generated-content fast path ON by default (cherry-pick to main)", + "summary": "Cherry-picked the rebuild fast-path default to production ahead of the release train.", + "category": "Maintenance", + "mergedAt": "2026-08-26T22:19:47Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2044" + }, + { + "id": "tutorials-ims#2039", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2039, + "title": "Turn generated-content fast path ON by default (Workstream C follow-up)", + "summary": "Made the faster generated-content rebuild path the default, cutting warm rebuilds from about 56 seconds to 11.", + "category": "Performance", + "mergedAt": "2026-08-26T21:58:36Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2039" + }, + { + "id": "tutorials-ims#2043", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2043, + "title": "feat(admin-shell): page-search command palette (#2041)", + "summary": "Added a Ctrl/Cmd+K command palette to the admin console for jumping to any of its 50-plus pages.", + "category": "Feature", + "mergedAt": "2026-08-26T21:54:46Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2043" + }, + { + "id": "tutorials-ims#2038", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2038, + "title": "Release 1.19.0 → PROD (Option B content migration + bundled features)", + "summary": "Production release of the new content-model migration and bundled features, shipped safely behind flags.", + "category": "Maintenance", + "mergedAt": "2026-08-25T21:31:23Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2038" + }, + { + "id": "tutorials-ims#2037", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2037, + "title": "chore(release): bump MTA version to 1.19.0 for PROD release", + "summary": "Version bump for the production release carrying the content-model migration.", + "category": "Maintenance", + "mergedAt": "2026-08-25T21:10:14Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2037" + }, + { + "id": "tutorials-ims#2036", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2036, + "title": "fix(guard): mark Option B ContentCurrent slug lookups (fixes check-slug-lookups CI failure)", + "summary": "Fixed a slug-lookup build guard for the new content read paths.", + "category": "Maintenance", + "mergedAt": "2026-08-25T19:08:48Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2036" + }, + { + "id": "tutorials-ims#2033", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2033, + "title": "docs(CLAUDE): Option B content-model gotcha + rollout order", + "summary": "Documented the new content model, its feature flags, and the rollout order.", + "category": "Docs", + "mergedAt": "2026-08-25T18:25:49Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2033" + }, + { + "id": "tutorials-ims#2035", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2035, + "title": "fix(deploy): build + copy display-app into approuter static (/display-app/ 404)", + "summary": "Fixed /display-app/ returning 404 by building and shipping it alongside the approuter.", + "category": "Fix", + "mergedAt": "2026-08-25T18:25:26Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2035" + }, + { + "id": "tutorials-ims#2032", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2032, + "title": "feat: Option B reader sweep + carry-forward removal + rollback replay (Workstream D 6.2-6.5, 8.4)", + "summary": "Completed the new content model migration: all readers use the mutable current table and single-tutorial publishes become proportional to what changed, cutting publish time from minutes to under a second.", + "category": "Feature", + "mergedAt": "2026-08-25T16:03:37Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2032" + }, + { + "id": "tutorials-ims#2031", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2031, + "title": "feat(devtoberfest): deep-link URLs for sessions grid filters/search (#2030)", + "summary": "The Devtoberfest sessions page now supports shareable deep-link URLs for search, filters, and an open session panel.", + "category": "Feature", + "mergedAt": "2026-08-25T14:53:12Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2031" + }, + { + "id": "tutorials-ims#2028", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2028, + "title": "feat(serve): Option B read cutover + rollback replay (Workstream D, flag-gated, draft)", + "summary": "Flag-gated read cutover to the new content model, with rollback that replays history.", + "category": "Feature", + "mergedAt": "2026-08-25T12:59:08Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2028" + }, + { + "id": "tutorials-ims#2025", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2025, + "title": "fix(notify): dispatch source-repo rebuilds on both master and main", + "summary": "Fixed change notifications not firing for source repositories that default to the master branch, which had been quietly leaving content stale.", + "category": "Fix", + "mergedAt": "2026-08-25T11:52:08Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2025" + }, + { + "id": "tutorials-ims#2024", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2024, + "title": "fix(#2023): stop Hugo coercing yes/no quiz options to true/false", + "summary": "Fixed yes/no quiz options being silently turned into true/false by the frontmatter serializer.", + "category": "Fix", + "mergedAt": "2026-08-25T11:25:07Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2024" + }, + { + "id": "tutorials-ims#2021", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2021, + "title": "feat(db): Option B schema — ContentCurrent + ContentHistory (Workstream D, draft)", + "summary": "Added the new content data model (a mutable current table plus append-only history) as the foundation for much faster publishing.", + "category": "Feature", + "mergedAt": "2026-08-25T10:30:09Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2021" + }, + { + "id": "tutorials-ims#2020", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2020, + "title": "feat(rebuild): generated-content fast path — Workstream C wiring (flag-gated, draft)", + "summary": "Wired the rebuild fast path so single-tutorial rebuilds reuse cached content for the thousands of unchanged tutorials.", + "category": "Feature", + "mergedAt": "2026-08-25T10:29:55Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2020" + }, + { + "id": "tutorials-ims#2019", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2019, + "title": "feat(rebuild): generated-content cache — Workstream C (foundation, draft)", + "summary": "Foundation helpers for a fast rebuild path that reuses cached generated content.", + "category": "Feature", + "mergedAt": "2026-08-25T01:15:51Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2019" + }, + { + "id": "tutorials-ims#2018", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2018, + "title": "fix(fetch): unmask GraphQL discovery errors + loud REST fallback", + "summary": "Fixed a silent fallback to a slow tutorial-discovery path by surfacing GraphQL errors loudly.", + "category": "Fix", + "mergedAt": "2026-08-24T23:51:54Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2018" + }, + { + "id": "tutorials-ims#2017", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2017, + "title": "Design: slug-targeted delta rebuild (O(changed) end-to-end)", + "summary": "Design proposal to make single-tutorial rebuilds scale with the changed content instead of the whole corpus.", + "category": "Docs", + "mergedAt": "2026-08-24T23:44:33Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2017" + }, + { + "id": "tutorials-ims#2016", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2016, + "title": "perf(rebuild): cache node_modules to skip ~48s npm ci on unchanged lockfiles", + "summary": "Content rebuilds skip roughly 48 seconds of dependency install by caching node_modules when lockfiles are unchanged.", + "category": "Performance", + "mergedAt": "2026-08-24T23:44:21Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2016" + }, + { + "id": "tutorials-ims#2012", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2012, + "title": "freshness: feed tutorial context + SAP-aware rules to the scan", + "summary": "Improved the freshness scanner's advice by feeding it surrounding tutorial prose, frontmatter, and SAP/CAP-aware rules.", + "category": "Fix", + "mergedAt": "2026-08-24T21:03:46Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2012" + }, + { + "id": "tutorials-ims#2014", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2014, + "title": "Release 1.18.3 → main", + "summary": "Production release promoting DEV changes.", + "category": "Maintenance", + "mergedAt": "2026-08-24T20:34:03Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2014" + }, + { + "id": "tutorials-ims#2013", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2013, + "title": "chore(release): bump MTA version to 1.18.3", + "summary": "Version bump ahead of a production release.", + "category": "Maintenance", + "mergedAt": "2026-08-24T20:32:04Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2013" + }, + { + "id": "tutorials-ims#2011", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2011, + "title": "fix(rebuild): stop slug-targeted rebuilds from wiping verb/shelf pages", + "summary": "Fixed single-tutorial rebuilds from wiping the shelves on hub pages like /build/ and /learn/.", + "category": "Fix", + "mergedAt": "2026-08-24T19:07:16Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2011" + }, + { + "id": "tutorials-ims#2010", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2010, + "title": "docs: legacy Semaphore→IMS/AEM tag import process", + "summary": "Documented the legacy Semaphore-to-IMS/AEM tag import process for authors.", + "category": "Docs", + "mergedAt": "2026-08-24T17:54:11Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2010" + }, + { + "id": "tutorials-ims#2009", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2009, + "title": "feat(devtoberfest): deep-link URLs for calendar sessions/dates (#2006)", + "summary": "The Devtoberfest calendar now has shareable, restorable deep-link URLs for sessions, dates, ranges, and filters.", + "category": "Feature", + "mergedAt": "2026-08-24T14:27:21Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2009" + }, + { + "id": "tutorials-ims#2008", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2008, + "title": "feat(devtoberfest): show speakers on calendar session items (#2007)", + "summary": "Speaker names now appear directly on Devtoberfest calendar session items, not just in the detail popup.", + "category": "Feature", + "mergedAt": "2026-08-24T14:15:36Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2008" + }, + { + "id": "tutorials-ims#2003", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2003, + "title": "feat(devtoberfest): Markdown support in session abstract (calendar item details)", + "summary": "Devtoberfest session details now render Markdown formatting in the session abstract.", + "category": "Feature", + "mergedAt": "2026-08-24T11:25:40Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2003" + }, + { + "id": "tutorials-ims#2002", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2002, + "title": "fix(notifications): digest emails render 'N tutorials', not 'N s'", + "summary": "Fixed author-reminder digest emails that read 'N s' instead of 'N tutorials'.", + "category": "Fix", + "mergedAt": "2026-08-24T11:25:00Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2002" + }, + { + "id": "tutorials-ims#2001", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 2001, + "title": "fix(freshness): pass resolved embedding model to embed() (fixes ScheduledJobFailed)", + "summary": "Fixed a scheduled-job failure in the tutorial freshness embedding pipeline.", + "category": "Fix", + "mergedAt": "2026-08-24T11:24:36Z", + "week": "2026-W35", + "weekStart": "2026-08-24", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/2001" + }, + { + "id": "tutorials-ims#1997", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1997, + "title": "Release 1.18.2 → main (PROD promotion)", + "summary": "Production release promoting DEV changes.", + "category": "Maintenance", + "mergedAt": "2026-08-23T19:09:46Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1997" + }, + { + "id": "tutorials-ims#1996", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1996, + "title": "chore(release): bump MTA version to 1.18.2 for PROD release", + "summary": "Version bump ahead of a production release.", + "category": "Maintenance", + "mergedAt": "2026-08-23T19:08:46Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1996" + }, + { + "id": "tutorials-ims#1995", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1995, + "title": "a11y: neutralize animations in scan + ratchet baseline to 0 critical/serious", + "summary": "Made the accessibility scan measure the settled page state and re-baselined to zero critical and serious issues.", + "category": "Maintenance", + "mergedAt": "2026-08-23T17:55:26Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1995" + }, + { + "id": "tutorials-ims#1994", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1994, + "title": "a11y: fix tutorial duplicate-banner regression + lengthen scan settle", + "summary": "Accessibility fix for a duplicate banner landmark on tutorial pages.", + "category": "Fix", + "mergedAt": "2026-08-23T16:46:07Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1994" + }, + { + "id": "tutorials-ims#1993", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1993, + "title": "feat(selfie): add 13 advocate frames + thumbnails", + "summary": "Added 13 new advocate cut-out frames to the Devtoberfest selfie photo booth.", + "category": "Feature", + "mergedAt": "2026-08-23T15:31:55Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1993" + }, + { + "id": "tutorials-ims#1992", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1992, + "title": "fix(prefs): guard size/width segmented-button emit on mount (#1980)", + "summary": "Minor fix so tutorial-preference controls don't redundantly re-apply their value on load.", + "category": "Fix", + "mergedAt": "2026-08-23T14:50:02Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1992" + }, + { + "id": "tutorials-ims#1991", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1991, + "title": "fix(tutorial-prefs): hand gestures navigate steps + calibrated head-pitch eye scroll (up/down)", + "summary": "Fixed the experimental camera controls so hand swipes move between steps and head-pitch scrolls both up and down.", + "category": "Fix", + "mergedAt": "2026-08-23T14:28:35Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1991" + }, + { + "id": "tutorials-ims#1990", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1990, + "title": "feat(prefs): add Super wide reading-width option (#1966)", + "summary": "Added a Super-wide reading-width option to tutorial preferences for people who want full-viewport content.", + "category": "Feature", + "mergedAt": "2026-08-23T14:17:11Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1990" + }, + { + "id": "tutorials-ims#1989", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1989, + "title": "a11y: duplicate-main + browse banner + figcaption contrast + concepts landmark", + "summary": "Accessibility fixes for duplicate page landmarks and caption contrast across the browse and concepts pages.", + "category": "Fix", + "mergedAt": "2026-08-23T14:00:07Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1989" + }, + { + "id": "tutorials-ims#1988", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1988, + "title": "a11y: ratchet baseline down after advocates/nav-progress fixes deployed", + "summary": "Tightened the accessibility baseline after the landmark fixes were deployed.", + "category": "Maintenance", + "mergedAt": "2026-08-23T13:59:57Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1988" + }, + { + "id": "tutorials-ims#1986", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1986, + "title": "feat(freshness): AI tutorial freshness detector (v1, reviewer-assist)", + "summary": "New AI-assisted freshness detector that flags stale code and dependencies in tutorials to authors, grounded against real SAP documentation.", + "category": "Feature", + "mergedAt": "2026-08-22T22:03:57Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1986" + }, + { + "id": "tutorials-ims#1985", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1985, + "title": "Camera input: accuracy fixes + per-user calibration (eye + hand)", + "summary": "Improved the accuracy of the experimental webcam eye-tracking and hand-gesture tutorial navigation, adding per-user calibration.", + "category": "Fix", + "mergedAt": "2026-08-22T21:36:22Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1985" + }, + { + "id": "tutorials-ims#1984", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1984, + "title": "a11y: fix advocate flip card (serious) + video-band redundant alt", + "summary": "Accessibility fixes to the developer-advocate flip cards and homepage video captions, including a latent keyboard-focus bug.", + "category": "Fix", + "mergedAt": "2026-08-22T17:50:28Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1984" + }, + { + "id": "tutorials-ims#1983", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1983, + "title": "a11y: exclude TrustArc banner from scan + make nav-progress decorative", + "summary": "Accessibility: excluded a third-party consent banner from the scan and marked the top loading bar as decorative.", + "category": "Fix", + "mergedAt": "2026-08-22T17:37:23Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1983" + }, + { + "id": "tutorials-ims#1982", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1982, + "title": "perf(prefs): subset OpenDyslexic web font ~115KB→~31KB (#1979)", + "summary": "Shrank the dyslexia-friendly web font by around 73% for faster loading.", + "category": "Performance", + "mergedAt": "2026-08-22T17:28:03Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1982" + }, + { + "id": "tutorials-ims#1978", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1978, + "title": "feat(prefs): tutorial reading preferences batch 2 (#1966)", + "summary": "Added a second batch of reading preferences to tutorials: text size and width, code size/wrap/copy-without-prompt, screenshot sizing, reduce-motion, and a dyslexia-friendly font.", + "category": "Feature", + "mergedAt": "2026-08-22T17:12:00Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1978" + }, + { + "id": "tutorials-ims#1981", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1981, + "title": "test(a11y): turn post-deploy axe scan into a regression gate", + "summary": "Turned the post-deploy accessibility scan into a real regression gate and fixed defects that made it collect no data.", + "category": "Maintenance", + "mergedAt": "2026-08-22T17:11:24Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1981" + }, + { + "id": "tutorials-ims#1977", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1977, + "title": "fix(tutorial-prefs): remove direct @ui5 SegmentedButton imports from island entry", + "summary": "Fixed a dark-mode island bug by removing a duplicate UI5 component import.", + "category": "Fix", + "mergedAt": "2026-08-22T15:55:22Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1977" + }, + { + "id": "tutorials-ims#1976", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1976, + "title": "Expand homepage topic clusters to KG multi-source content", + "summary": "Homepage topic clusters now surface all knowledge-graph content types — missions, learning journeys, blogs, videos, and events — not just tutorials.", + "category": "Feature", + "mergedAt": "2026-08-22T15:45:45Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1976" + }, + { + "id": "tutorials-ims#1975", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1975, + "title": "feat(mcp): Tier 2 hosted MCP tools — search_events + get_news_detail", + "summary": "Added two public MCP tools — event search and news detail — to the developers.sap.com hosted MCP surface.", + "category": "Feature", + "mergedAt": "2026-08-22T14:35:59Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1975" + }, + { + "id": "tutorials-ims#1974", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1974, + "title": "perf(navigator): SSR the chrome to kill the mount flash on /tutorial-navigator", + "summary": "Removed the layout jump on the tutorial navigator by server-rendering the full page chrome up front.", + "category": "Performance", + "mergedAt": "2026-08-22T14:25:24Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1974" + }, + { + "id": "tutorials-ims#1973", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1973, + "title": "fix(tutorial-prefs): reflect stored Header pref on popover (re)open (#1966)", + "summary": "Fixed the tutorial preferences dialog not showing the saved header setting when reopened.", + "category": "Fix", + "mergedAt": "2026-08-22T14:13:23Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1973" + }, + { + "id": "tutorials-ims#1971", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1971, + "title": "fix(ui5): heal dark-mode boot-order race (DEV dark mode unreadable)", + "summary": "Fixed dark mode rendering with light colors on the first page load.", + "category": "Fix", + "mergedAt": "2026-08-21T22:08:20Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1971" + }, + { + "id": "tutorials-ims#1970", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1970, + "title": "fix(tutorials): force-load lazy images before print (#1943)", + "summary": "Fixed the new Print feature printing blank images by loading lazy images before the print dialog opens.", + "category": "Fix", + "mergedAt": "2026-08-21T21:37:57Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1970" + }, + { + "id": "tutorials-ims#1969", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1969, + "title": "feat(display-prefs): tutorial-page display preferences (#1966)", + "summary": "Added a Display section to tutorial preferences for controlling header and footer chrome, with a compact treatment auto-applied on short screens.", + "category": "Feature", + "mergedAt": "2026-08-21T20:17:24Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1969" + }, + { + "id": "tutorials-ims#1967", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1967, + "title": "Attachment object-store pipeline: serve tutorial repo attachments like images (#1931)", + "summary": "Tutorial file attachments (.txt, .zip, .pdf, and more) are now served through the platform instead of returning 404s.", + "category": "Feature", + "mergedAt": "2026-08-21T19:31:26Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1967" + }, + { + "id": "tutorials-ims#1965", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1965, + "title": "feat(scanner): source-markdown scanner + fixer (#1963)", + "summary": "New tool that fixes malformed tutorial markdown at the source and opens a PR per repo, letting the render-time patches eventually be retired.", + "category": "Feature", + "mergedAt": "2026-08-21T19:06:55Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1965" + }, + { + "id": "tutorials-ims#1964", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1964, + "title": "feat(tutorials): Print / Save-as-PDF button (#1943)", + "summary": "Added a Print / Save-as-PDF button to tutorial pages so readers can save any tutorial as a PDF.", + "category": "Feature", + "mergedAt": "2026-08-21T17:21:03Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1964" + }, + { + "id": "tutorials-ims#1962", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1962, + "title": "fix(selfie): align background tests with renamed scene ids", + "summary": "Fixed tests after the selfie photo-booth backgrounds were renamed.", + "category": "Maintenance", + "mergedAt": "2026-08-21T15:59:58Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1962" + }, + { + "id": "tutorials-ims#1961", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1961, + "title": "fix(#1960): reclassify contentless tutorials to DELETED (datasphere & other legacy phantoms)", + "summary": "Removed phantom tutorials from search that had no published content and returned 404s when clicked.", + "category": "Fix", + "mergedAt": "2026-08-21T15:31:48Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1961" + }, + { + "id": "tutorials-ims#1958", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1958, + "title": "Release 1.18.1 → main", + "summary": "Production release promoting DEV changes.", + "category": "Maintenance", + "mergedAt": "2026-08-20T22:55:47Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1958" + }, + { + "id": "tutorials-ims#1959", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1959, + "title": "chore: sync main into DEV (reconcile selfie/csrf/puzzle) + 1.18.1", + "summary": "Synced the main branch back into DEV to keep the release merge conflict-free.", + "category": "Maintenance", + "mergedAt": "2026-08-20T22:55:21Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1959" + }, + { + "id": "tutorials-ims#1957", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1957, + "title": "chore(release): bump MTA version to 1.18.1", + "summary": "Version bump ahead of a release.", + "category": "Maintenance", + "mergedAt": "2026-08-20T22:43:49Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1957" + }, + { + "id": "tutorials-ims#1956", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1956, + "title": "docs(whats-new): weekly digest refresh (2026-08-14 → 08-20)", + "summary": "Refreshed the public What's New weekly digest.", + "category": "Docs", + "mergedAt": "2026-08-20T21:33:22Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1956" + }, + { + "id": "tutorials-ims#1955", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1955, + "title": "Rescue tutorial prose and screenshots trapped inside code blocks", + "summary": "Fixes tutorials where explanatory text and screenshots that followed a code sample inside a numbered step were mistakenly rendered as raw code, so those steps now read the way the author intended.", + "category": "Fix", + "mergedAt": "2026-08-20T21:21:30Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1955" + }, + { + "id": "tutorials-ims#1954", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1954, + "title": "Refresh the Devtoberfest Selfie backgrounds, stickers, and frames", + "summary": "Gives the Devtoberfest Selfie tool a fresh set of backgrounds, stickers, and advocate frames so your event selfies look current.", + "category": "Feature", + "mergedAt": "2026-08-20T19:53:08Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1954" + }, + { + "id": "tutorials-ims#1953", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1953, + "title": "docs: Devtoberfest selfie art update runbook", + "summary": "Adds an internal runbook explaining where the Devtoberfest Selfie art lives and how to swap in new backgrounds, stickers, and frames.", + "category": "Docs", + "mergedAt": "2026-08-20T19:52:57Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1953" + }, + { + "id": "tutorials-ims#1952", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1952, + "title": "docs: register ai-skills-catalog page in sidebar", + "summary": "Registers the new AI Skills Catalog page in the documentation sidebar so it is easy to find.", + "category": "Docs", + "mergedAt": "2026-08-20T16:10:03Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1952" + }, + { + "id": "tutorials-ims#1950", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1950, + "title": "docs: AI Skills Catalog (internal AI capabilities reference)", + "summary": "Adds an internal reference page cataloguing every AI capability across the tutorials platform, from Joule chat tools to the knowledge-graph jobs.", + "category": "Docs", + "mergedAt": "2026-08-20T15:38:06Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1950" + }, + { + "id": "tutorials-ims#1951", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1951, + "title": "Restore group and mission completion tracking", + "summary": "Restores automatic credit for completing tutorial groups and missions, so finishing all the tutorials in a learning path once again marks the whole path complete.", + "category": "Fix", + "mergedAt": "2026-08-20T15:37:26Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1951" + }, + { + "id": "tutorials-ims#1949", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1949, + "title": "Grade submitted code against the stated goal, not the sample answer", + "summary": "Makes the AI code-check grader judge your answer against what the exercise actually asks for rather than nitpicking details of the reference solution, so correct submissions are no longer rejected over unrequested specifics.", + "category": "Fix", + "mergedAt": "2026-08-20T15:26:33Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1949" + }, + { + "id": "tutorials-ims#1947", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1947, + "title": "Refresh cached puzzle answers instead of trusting stale copies", + "summary": "Fixes puzzle tutorials where edited answers were ignored, so updated puzzle solutions now validate correctly on the live site.", + "category": "Fix", + "mergedAt": "2026-08-20T15:16:10Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1947" + }, + { + "id": "tutorials-ims#1948", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1948, + "title": "Enable search in the QA tutorial preview site", + "summary": "Makes tutorial search work again on the QA author-preview channel so authors can find and open the tutorial they are searching for.", + "category": "Fix", + "mergedAt": "2026-08-20T15:14:34Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1948" + }, + { + "id": "tutorials-ims#1946", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1946, + "title": "Redirect QA group and mission pages to production", + "summary": "Replaces a raw error on QA-preview group and mission pages with a graceful redirect to the live page, and shows a friendly error page when a catalog page can't render.", + "category": "Fix", + "mergedAt": "2026-08-20T15:03:19Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1946" + }, + { + "id": "tutorials-ims#1945", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1945, + "title": "Show titles and links on Featured Missions cards", + "summary": "Fixes the Featured Missions cards on the Tutorial Navigator that were rendering blank, so they once again show their title, description, and link.", + "category": "Fix", + "mergedAt": "2026-08-20T14:52:37Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1945" + }, + { + "id": "tutorials-ims#1944", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1944, + "title": "Show correct acronym casing on group and mission tag chips", + "summary": "Fixes tag chips on group and mission pages so acronyms like 'SAP BTP Cockpit' display with proper capitalization instead of 'Sap Btp Cockpit'.", + "category": "Fix", + "mergedAt": "2026-08-20T14:48:07Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1944" + }, + { + "id": "tutorials-ims#1936", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1936, + "title": "Render deeply-indented code blocks with syntax highlighting", + "summary": "Fixes hundreds of tutorials where code blocks indented inside list steps showed their raw backtick fences instead of a proper highlighted code window.", + "category": "Fix", + "mergedAt": "2026-08-20T12:51:44Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1936" + }, + { + "id": "tutorials-ims#1935", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1935, + "title": "Let puzzle designers toggle grid squares back to white", + "summary": "Fixes the admin crossword puzzle designer so clicking a black grid square turns it white again, unblocking puzzle layout work.", + "category": "Fix", + "mergedAt": "2026-08-20T12:38:20Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1935" + }, + { + "id": "tutorials-ims#1933", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1933, + "title": "Stop treating edge errors as expired sessions on photo upload", + "summary": "Fixes Petoberfest photo uploads behind the CDN that were reloading the page instead of surfacing the real error, so upload failures now report a meaningful message.", + "category": "Fix", + "mergedAt": "2026-08-20T12:25:51Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1933" + }, + { + "id": "tutorials-ims#1934", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1934, + "title": "Bound memory use during content publishing", + "summary": "Stops content rebuilds from crashing on out-of-memory by no longer loading the entire catalog's content into memory during publish, making large publishes reliable.", + "category": "Fix", + "mergedAt": "2026-08-20T12:07:20Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1934" + }, + { + "id": "tutorials-ims#1929", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1929, + "title": "Release 1.18.0 to production", + "summary": "Ships the 1.18.0 production release, bundling the self-service token page, Devtoberfest and Petoberfest features, and a batch of fixes to developers.sap.com.", + "category": "Maintenance", + "mergedAt": "2026-08-19T21:33:49Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1929" + }, + { + "id": "tutorials-ims#1928", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1928, + "title": "Bump release version to 1.18.0", + "summary": "Bumps the project version to 1.18.0 ahead of the production promotion.", + "category": "Maintenance", + "mergedAt": "2026-08-19T21:30:36Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1928" + }, + { + "id": "tutorials-ims#1927", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1927, + "title": "Unblock the documentation build", + "summary": "Fixes the documentation build that was failing on a link pointing to a live app route rather than a doc page.", + "category": "Maintenance", + "mergedAt": "2026-08-19T20:41:02Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1927" + }, + { + "id": "tutorials-ims#1926", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1926, + "title": "Make scavenger-hunt clue captions readable", + "summary": "Gives the floating Devtoberfest scavenger-hunt clue captions a solid background so the clue text is readable against the page behind it.", + "category": "Fix", + "mergedAt": "2026-08-19T20:30:06Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1926" + }, + { + "id": "tutorials-ims#1925", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1925, + "title": "Show authored tutorials in the SAGE 'My Tutorials' panel", + "summary": "Fixes the 'My Tutorials' panel so tutorials you authored show up, not just ones where you match on email or name.", + "category": "Fix", + "mergedAt": "2026-08-19T20:28:03Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1925" + }, + { + "id": "tutorials-ims#1924", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1924, + "title": "Allowlist puzzle routes in the QA route-drift guard", + "summary": "Registers the new puzzle content routes with the internal build guard that keeps the QA preview site in sync, turning the build green again.", + "category": "Maintenance", + "mergedAt": "2026-08-19T18:54:02Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1924" + }, + { + "id": "tutorials-ims#1922", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1922, + "title": "Fix advocate photo uploads behind the CDN", + "summary": "Switches advocate photo uploads to a CDN-friendly format so they succeed on developers.sap.com and report clear errors when something goes wrong.", + "category": "Fix", + "mergedAt": "2026-08-19T18:23:43Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1922" + }, + { + "id": "tutorials-ims#1923", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1923, + "title": "Add a /puzzles/ index page and admin link", + "summary": "Adds a proper puzzles landing page listing every puzzle, replacing the 404 that used to appear at /puzzles/.", + "category": "Fix", + "mergedAt": "2026-08-19T18:23:07Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1923" + }, + { + "id": "tutorials-ims#1921", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1921, + "title": "Let authors add intro text to puzzles and Petoberfest", + "summary": "Lets authors add formatted intro text with links to puzzle and Petoberfest pages, so participants get clear instructions on how to take part.", + "category": "Feature", + "mergedAt": "2026-08-19T18:07:20Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1921" + }, + { + "id": "tutorials-ims#1919", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1919, + "title": "Serve puzzle pages dynamically", + "summary": "Fixes newly created puzzles that returned a 404 by serving every puzzle page dynamically from the catalog instead of relying on hand-authored files.", + "category": "Fix", + "mergedAt": "2026-08-19T18:00:16Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1919" + }, + { + "id": "tutorials-ims#1920", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1920, + "title": "Fix Petoberfest photo uploads behind the CDN", + "summary": "Fixes Petoberfest pet-photo uploads that failed silently on developers.sap.com by switching to a CDN-friendly upload format and surfacing errors.", + "category": "Fix", + "mergedAt": "2026-08-19T17:58:11Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1920" + }, + { + "id": "tutorials-ims#1918", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1918, + "title": "Let users withdraw their own Petoberfest photo", + "summary": "Lets Petoberfest participants withdraw a photo they uploaded so it no longer appears, even after it was approved.", + "category": "Feature", + "mergedAt": "2026-08-19T17:53:11Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1918" + }, + { + "id": "tutorials-ims#1917", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1917, + "title": "Hide the Petoberfest upload form from logged-out visitors", + "summary": "Fixes the Petoberfest page so anonymous visitors see a sign-in prompt instead of the upload form.", + "category": "Fix", + "mergedAt": "2026-08-19T17:51:02Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1917" + }, + { + "id": "tutorials-ims#1916", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1916, + "title": "Randomize the Petoberfest slideshow order", + "summary": "Shuffles the Petoberfest photo slideshow on each visit so it's no longer always the newest uploads first.", + "category": "Feature", + "mergedAt": "2026-08-19T17:27:27Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1916" + }, + { + "id": "tutorials-ims#1915", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1915, + "title": "Repair puzzle JSON import in the admin builder", + "summary": "Fixes the admin puzzle builder so importing a puzzle JSON file after creating a new puzzle actually loads it.", + "category": "Fix", + "mergedAt": "2026-08-19T17:07:00Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1915" + }, + { + "id": "tutorials-ims#1913", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1913, + "title": "Add Devtoberfest scavenger-hunt clues", + "summary": "Adds three hidden Devtoberfest scavenger-hunt clues, one each on the home, AI, and API docs pages, featuring SAP developer advocates.", + "category": "Feature", + "mergedAt": "2026-08-19T16:46:05Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1913" + }, + { + "id": "tutorials-ims#1907", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1907, + "title": "Prompt re-login when a session has expired", + "summary": "Fixes the tutorial step 'Done' button so that in an expired session it prompts you to sign in again instead of silently failing to record your progress.", + "category": "Fix", + "mergedAt": "2026-08-19T15:49:07Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1907" + }, + { + "id": "tutorials-ims#1906", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1906, + "title": "Keep the quiz verdict badge round", + "summary": "Fixes the per-question pass/fail badge in tutorial quizzes so it stays a neat circle next to long questions instead of squishing into an oval.", + "category": "Fix", + "mergedAt": "2026-08-19T15:16:51Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1906" + }, + { + "id": "tutorials-ims#1903", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1903, + "title": "Release 1.17.0 to production", + "summary": "Ships the 1.17.0 production release, bringing the self-service token page, image persistence, and a batch of fixes to developers.sap.com.", + "category": "Maintenance", + "mergedAt": "2026-08-18T22:01:43Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1903" + }, + { + "id": "tutorials-ims#1902", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1902, + "title": "chore(release): bump MTA version to 1.17.0 for PROD release", + "summary": "Prepares the platform's next release version so the latest batch of improvements can roll out to production.", + "category": "Maintenance", + "mergedAt": "2026-08-18T22:01:24Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1902" + }, + { + "id": "tutorials-ims#1901", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1901, + "title": "Fix build check for the new token page", + "summary": "Fixes an internal build check so the new personal access token page builds and ships cleanly.", + "category": "Maintenance", + "mergedAt": "2026-08-18T20:40:52Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1901" + }, + { + "id": "tutorials-ims#1900", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1900, + "title": "Publish skills to the SAP AI Skills Library", + "summary": "Publishes the platform's AI skills (like the knowledge-graph builder and the What's New generator) so you can discover and install them into tools like Claude Code, Cursor, and Codex via the SAP AI Skills Library.", + "category": "Docs", + "mergedAt": "2026-08-18T18:53:31Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1900" + }, + { + "id": "tutorials-ims#1894", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1894, + "title": "fix(deploy): pin tutorials-srv-qa memory to 1536M (#1893)", + "summary": "Gives the QA content service enough memory to finish large content rebuilds without crashing, keeping the QA preview channel dependable.", + "category": "Maintenance", + "mergedAt": "2026-08-18T18:53:15Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1894" + }, + { + "id": "tutorials-ims#1899", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1899, + "title": "Self-service page to create MCP access tokens", + "summary": "Adds a self-service page at /me/tokens where you can create, view, and revoke your own personal access tokens for the hosted MCP server, without needing admin access.", + "category": "Feature", + "mergedAt": "2026-08-18T18:52:57Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1899" + }, + { + "id": "tutorials-ims#1898", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1898, + "title": "Enable desktop MCP sign-in (Joule Desktop)", + "summary": "Lets desktop MCP tools such as Joule Desktop complete sign-in through their local callback, so connecting them to the platform's MCP server works reliably.", + "category": "Fix", + "mergedAt": "2026-08-18T18:14:04Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1898" + }, + { + "id": "tutorials-ims#1896", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1896, + "title": "Keyword search for Devtoberfest sessions", + "summary": "Adds a keyword search box to the Devtoberfest sessions page that matches across session titles, abstracts, and speaker details, and fixes the Join banner so you can find the right session faster.", + "category": "Feature", + "mergedAt": "2026-08-18T14:51:31Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1896" + }, + { + "id": "tutorials-ims#1892", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1892, + "title": "Fix the tutorial feedback form", + "summary": "Repairs the tutorial feedback form so the detailed-feedback popup opens and submissions go through, letting you share feedback on tutorials again.", + "category": "Fix", + "mergedAt": "2026-08-18T11:07:23Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1892" + }, + { + "id": "tutorials-ims#1891", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1891, + "title": "Tutorial images self-populate the image store", + "summary": "Makes the platform automatically save tutorial images to its own store the first time they're requested, so images keep loading even when the original source is unavailable.", + "category": "Feature", + "mergedAt": "2026-08-18T11:06:17Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1891" + }, + { + "id": "tutorials-ims#1887", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1887, + "title": "fix(ci): allowlist dark-launched image routes in srv-qa route-drift guard", + "summary": "Updates an internal build check to recognize the new image-serving routes so continuous integration passes.", + "category": "Maintenance", + "mergedAt": "2026-08-18T03:42:45Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1887" + }, + { + "id": "tutorials-ims#1886", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1886, + "title": "Release 1.16.0 — DEV → main (PROD promotion)", + "summary": "Promotes a batch of features and fixes, including durable tutorial-image storage and Joule's What's New support, to production.", + "category": "Maintenance", + "mergedAt": "2026-08-18T02:32:11Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1886" + }, + { + "id": "tutorials-ims#1885", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1885, + "title": "chore(release): bump MTA version to 1.16.0 for PROD release", + "summary": "Prepares the release version ahead of a production rollout that adds durable tutorial-image storage.", + "category": "Maintenance", + "mergedAt": "2026-08-18T02:13:53Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1885" + }, + { + "id": "tutorials-ims#1884", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1884, + "title": "Heal broken tutorial images in the store", + "summary": "Adds a way to force-refresh tutorial images that were saved incompletely, cleaning up broken entries so those images display correctly.", + "category": "Fix", + "mergedAt": "2026-08-18T01:41:45Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1884" + }, + { + "id": "tutorials-ims#1883", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1883, + "title": "Fix tutorial image uploads to storage", + "summary": "Fixes a startup configuration gap that was causing tutorial-image uploads to storage to fail, so images now persist as intended.", + "category": "Fix", + "mergedAt": "2026-08-18T01:32:46Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1883" + }, + { + "id": "tutorials-ims#1881", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1881, + "title": "Store tutorial images independently of GitHub", + "summary": "Lets the platform ingest and store tutorial images directly, plus a backfill for existing ones, so tutorial screenshots no longer depend on fetching from GitHub at page-load time.", + "category": "Feature", + "mergedAt": "2026-08-18T00:31:16Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1881" + }, + { + "id": "tutorials-ims#1880", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1880, + "title": "Fix empty Featured Missions carousel on the homepage", + "summary": "Fixes the homepage Featured Missions carousel that had stopped showing any cards, so featured missions appear again.", + "category": "Fix", + "mergedAt": "2026-08-17T22:36:46Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1880" + }, + { + "id": "tutorials-ims#1879", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1879, + "title": "Fix empty tutorial image store", + "summary": "Fixes an issue that prevented tutorial images from ever being written to storage, so the image store now populates correctly.", + "category": "Fix", + "mergedAt": "2026-08-17T22:36:36Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1879" + }, + { + "id": "tutorials-ims#1878", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1878, + "title": "Store tutorial images in Object Store and fix boot crash", + "summary": "Moves tutorial-image storage to BTP Object Store and fixes a startup crash, so the service boots reliably and images are stored in the right place.", + "category": "Fix", + "mergedAt": "2026-08-17T21:00:00Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1878" + }, + { + "id": "tutorials-ims#1877", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1877, + "title": "Persist tutorial images with GitHub fallback", + "summary": "Stores tutorial images durably and serves them from the platform's own store, falling back to GitHub only when needed, so tutorial screenshots stay available even during GitHub outages or rate limits.", + "category": "Feature", + "mergedAt": "2026-08-17T19:30:41Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1877" + }, + { + "id": "tutorials-ims#1876", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1876, + "title": "Fix product tag filtering in the Tutorial Navigator", + "summary": "Fixes product-tag deep links in the Tutorial Navigator so clicking a product now shows all of that product's tutorials instead of just a subset.", + "category": "Fix", + "mergedAt": "2026-08-17T17:29:18Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1876" + }, + { + "id": "tutorials-ims#1873", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1873, + "title": "fix(#1859): register ChatSettings.whatsNewEnabled feature flag (DEV CI green)", + "summary": "Registers the What's New chat setting in the internal feature-flag registry to keep configuration consistent and tests passing.", + "category": "Maintenance", + "mergedAt": "2026-08-17T16:58:53Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1873" + }, + { + "id": "tutorials-ims#1872", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1872, + "title": "Collapsible 'More from author' section", + "summary": "Makes the 'More from author' section on tutorial pages collapsible and closed by default, giving you a cleaner reading view while keeping the related tutorials one click away.", + "category": "Feature", + "mergedAt": "2026-08-17T16:58:30Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1872" + }, + { + "id": "tutorials-ims#1874", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1874, + "title": "Reduce layout shift on the Browse page", + "summary": "Eliminates the remaining layout shift on the Browse page by loading card styling up front, so cards no longer jump around as the page loads.", + "category": "Performance", + "mergedAt": "2026-08-17T16:58:07Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1874" + }, + { + "id": "tutorials-ims#1875", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1875, + "title": "Restore the Mission crumb in tutorial breadcrumbs", + "summary": "Restores the missing Mission entry in tutorial breadcrumbs, so you can navigate back up to the mission when you reached a tutorial through one.", + "category": "Fix", + "mergedAt": "2026-08-17T16:57:39Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1875" + }, + { + "id": "tutorials-ims#1871", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1871, + "title": "Fix breadcrumb separator on cross-linked tutorials", + "summary": "Fixes a missing separator in the breadcrumb when you open a tutorial from a group or mission link, so the trail reads clearly.", + "category": "Fix", + "mergedAt": "2026-08-17T16:56:38Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1871" + }, + { + "id": "tutorials-ims#1870", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1870, + "title": "docs(spec): persist tutorial images in Object Store (decouple from GitHub)", + "summary": "Documents the design for storing tutorial images in Object Store so they no longer depend on GitHub at request time.", + "category": "Docs", + "mergedAt": "2026-08-17T16:24:49Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1870" + }, + { + "id": "tutorials-ims#1868", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1868, + "title": "Fix tutorial images failing to load on mobile", + "summary": "Fixes tutorial images that were failing to load on mobile devices due to rate-limiting on mobile-sized image variants, so screenshots now render on phones and tablets.", + "category": "Fix", + "mergedAt": "2026-08-17T16:24:37Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1868" + }, + { + "id": "tutorials-ims#1867", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1867, + "title": "test(#1614): fix DEV CI — resolve provisioned user by sapId not uuid", + "summary": "Fixes an internal test to look up users the correct way, keeping the test suite green.", + "category": "Maintenance", + "mergedAt": "2026-08-17T16:24:10Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1867" + }, + { + "id": "tutorials-ims#1863", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1863, + "title": "Ask Joule what's new", + "summary": "Adds a Joule capability so you can ask what's new and get the latest platform updates from the What's New digest instead of a refusal.", + "category": "Feature", + "mergedAt": "2026-08-17T13:25:01Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1863" + }, + { + "id": "tutorials-ims#1862", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1862, + "title": "Add tooltips to header toolbar icons", + "summary": "Adds hover tooltips to all the icons in the top-right header bar, so it's clear what each button does.", + "category": "Fix", + "mergedAt": "2026-08-17T12:33:11Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1862" + }, + { + "id": "tutorials-ims#1861", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1861, + "title": "Fix account-linking save error for new users", + "summary": "Fixes an error that stopped some new users from saving their community profile link on first sign-in, so account linking now works for everyone.", + "category": "Fix", + "mergedAt": "2026-08-17T12:32:02Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1861" + }, + { + "id": "tutorials-ims#1860", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1860, + "title": "Redirect legacy sitemap URLs", + "summary": "Redirects old sitemap URLs left over from the previous platform to the current sitemap, so search engines can crawl and index tutorials again.", + "category": "Fix", + "mergedAt": "2026-08-17T10:51:41Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1860" + }, + { + "id": "tutorials-ims#1856", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1856, + "title": "Fix broken images in the 'You will learn' section", + "summary": "Fixes broken images in the 'You will learn' section of tutorials so those screenshots display instead of returning 404s.", + "category": "Fix", + "mergedAt": "2026-08-17T10:30:36Z", + "week": "2026-W34", + "weekStart": "2026-08-17", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1856" + }, + { + "id": "tutorials-ims#1855", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1855, + "title": "Release with performance, accessibility, and SEO improvements", + "summary": "Ships a batch of performance, accessibility, and SEO improvements to production, including much faster tutorial page loads, a lighter startup bundle, and better search-engine visibility.", + "category": "Maintenance", + "mergedAt": "2026-08-16T20:23:11Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1855" + }, + { + "id": "tutorials-ims#1853", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1853, + "title": "docs(sidebar): register author-admin-access page (fix Deploy Docs CI)", + "summary": "Adds a missing documentation page to the docs sidebar so it's reachable in the developer docs.", + "category": "Docs", + "mergedAt": "2026-08-16T20:22:57Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1853" + }, + { + "id": "tutorials-ims#1852", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1852, + "title": "Steadier layout on the Browse page", + "summary": "Category chips on the Browse page cards no longer cause the page to jump around as it loads, giving you a smoother, more stable browsing experience.", + "category": "Performance", + "mergedAt": "2026-08-16T19:16:17Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1852" + }, + { + "id": "tutorials-ims#1851", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1851, + "title": "Reliable cache-busting for the nav dropdown and concepts filter", + "summary": "The navigation dropdown and concepts filter now refresh reliably after updates, so you always see the latest version instead of a stale cached one.", + "category": "Fix", + "mergedAt": "2026-08-16T19:15:53Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1851" + }, + { + "id": "tutorials-ims#1850", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1850, + "title": "Restore stable tutorial navigator layout", + "summary": "The tutorial navigator page now loads with a steady layout again, reversing an earlier experiment that had caused the content to shift as it appeared.", + "category": "Performance", + "mergedAt": "2026-08-16T17:41:15Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1850" + }, + { + "id": "tutorials-ims#1849", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1849, + "title": "Correct asset fingerprint detection in deploy checks", + "summary": "Fixed an internal deploy safety check so that correctly versioned page assets are no longer mistakenly flagged, keeping deployments smooth and dependable.", + "category": "Fix", + "mergedAt": "2026-08-16T17:40:19Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1849" + }, + { + "id": "tutorials-ims#1848", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1848, + "title": "Eliminate layout shift on the tutorial navigator", + "summary": "The tutorial navigator cards now reserve their space up front, so the page no longer visibly reflows while loading.", + "category": "Performance", + "mergedAt": "2026-08-16T16:36:21Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1848" + }, + { + "id": "tutorials-ims#1847", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1847, + "title": "Lighter page load by trimming unused UI themes", + "summary": "Removed about 1.4 MB of unused theme data from the page bundle, so tutorial and browse pages load noticeably faster.", + "category": "Performance", + "mergedAt": "2026-08-16T15:22:10Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1847" + }, + { + "id": "tutorials-ims#1846", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1846, + "title": "Load the picture-in-picture player only when needed", + "summary": "The picture-in-picture tutorial player (~1.2 MB) now loads only when you actually open it, making every tutorial page load faster by default.", + "category": "Performance", + "mergedAt": "2026-08-16T15:21:48Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1846" + }, + { + "id": "tutorials-ims#1845", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1845, + "title": "Accessibility improvements across pages", + "summary": "Resolved several accessibility issues around progress indicators, image alt text, and control labels so the site works better with screen readers and assistive tech.", + "category": "Fix", + "mergedAt": "2026-08-16T14:55:13Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1845" + }, + { + "id": "tutorials-ims#1844", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1844, + "title": "Improve link text and crawlable links for SEO", + "summary": "Fixed shared links so search engines can crawl them properly and read meaningful link text, improving how tutorial pages surface in search results.", + "category": "Fix", + "mergedAt": "2026-08-16T14:51:24Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1844" + }, + { + "id": "tutorials-ims#1841", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1841, + "title": "Faster loading of non-critical styles and third-party scripts", + "summary": "Optimized how the consent banner and non-essential stylesheets load, shaving render-blocking delays off page loads.", + "category": "Performance", + "mergedAt": "2026-08-16T14:50:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1841" + }, + { + "id": "tutorials-ims#1842", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1842, + "title": "Stop the Browse page from jumping while it loads", + "summary": "Front-loaded the Browse page styling so the layout settles immediately instead of shifting as content appears, for a much steadier first view.", + "category": "Performance", + "mergedAt": "2026-08-16T14:50:07Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1842" + }, + { + "id": "tutorials-ims#1843", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1843, + "title": "Defer non-essential scripts to speed up first interaction", + "summary": "The tutorial navigator and picture-in-picture button now initialize after the page is interactive, reducing the time before you can start using the page.", + "category": "Performance", + "mergedAt": "2026-08-16T14:49:37Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1843" + }, + { + "id": "tutorials-ims#1840", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1840, + "title": "Correct group shown in tutorial breadcrumbs", + "summary": "Tutorials that also belong to a special event mission now show their real learning group in the breadcrumb and navigation, so you can find your way around a series correctly.", + "category": "Fix", + "mergedAt": "2026-08-16T13:17:38Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1840" + }, + { + "id": "tutorials-ims#1839", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1839, + "title": "Exclude specific accounts when granting author admin access", + "summary": "Added an option to skip specific accounts (like shared group mailboxes) when bulk-granting admin access to tutorial authors, giving admins finer control.", + "category": "Feature", + "mergedAt": "2026-08-16T13:05:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1839" + }, + { + "id": "tutorials-ims#1838", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1838, + "title": "Explain the author console 403 as a role assignment gap", + "summary": "Documented that authors seeing a 403 on the Author Console need the Admin role collection assigned, and provided a helper to grant it.", + "category": "Docs", + "mergedAt": "2026-08-16T12:45:11Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1838" + }, + { + "id": "tutorials-ims#1835", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1835, + "title": "Fix puzzle builder save and import", + "summary": "The admin puzzle builder now saves reliably when grid dimensions are entered and its Import button works again, so authors can build puzzles without hitting validation errors.", + "category": "Fix", + "mergedAt": "2026-08-16T12:09:25Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1835" + }, + { + "id": "tutorials-ims#1832", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1832, + "title": "Remove dead references to the retired rebuild push", + "summary": "Cleaned up leftover configuration referencing a retired internal content-push mechanism, keeping the deployment setup tidy and consistent.", + "category": "Maintenance", + "mergedAt": "2026-08-16T11:47:11Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1832" + }, + { + "id": "tutorials-ims#1831", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1831, + "title": "Serve /llms.txt dynamically from the database", + "summary": "The /llms.txt file is now served from the content store like its companion pages, making it easier to keep up to date.", + "category": "Maintenance", + "mergedAt": "2026-08-16T11:47:00Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1831" + }, + { + "id": "tutorials-ims#1830", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1830, + "title": "Update tests for the database-only content rebuild", + "summary": "Updated internal tests to match the new content-rebuild process that renders pages against already-deployed assets.", + "category": "Maintenance", + "mergedAt": "2026-08-16T11:46:33Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1830" + }, + { + "id": "tutorials-ims#1829", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1829, + "title": "Content rebuilds go database-only and stop clobbering deployed assets", + "summary": "Reworked content rebuilds so admin edits and refreshes update the database only, ending the recurring problem where a rebuild could overwrite freshly deployed site assets.", + "category": "Maintenance", + "mergedAt": "2026-08-16T01:21:59Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1829" + }, + { + "id": "tutorials-ims#1827", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1827, + "title": "Restore the developer advocate detail route", + "summary": "Fixed an internal routing gap so per-advocate detail pages are served correctly after the content-serving migration.", + "category": "Fix", + "mergedAt": "2026-08-15T22:08:25Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1827" + }, + { + "id": "tutorials-ims#1826", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1826, + "title": "Groundwork for decoupling assets from content rebuilds", + "summary": "Added the plumbing to let content rebuilds render pages against the currently deployed assets, a preparatory step with no visible change yet.", + "category": "Maintenance", + "mergedAt": "2026-08-15T21:27:37Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1826" + }, + { + "id": "tutorials-ims#1825", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1825, + "title": "Serve advocate detail pages dynamically from the database", + "summary": "Per-advocate detail pages now come from the dynamic content store, so admin edits to advocate profiles show up reliably.", + "category": "Maintenance", + "mergedAt": "2026-08-15T21:17:13Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1825" + }, + { + "id": "tutorials-ims#1824", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1824, + "title": "Fix routing drift for homepage and author pages", + "summary": "Resolved an internal routing mismatch introduced when the homepage and author pages moved to dynamic serving, keeping the build checks green.", + "category": "Fix", + "mergedAt": "2026-08-15T21:17:03Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1824" + }, + { + "id": "tutorials-ims#1823", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1823, + "title": "Serve author pages dynamically from the database", + "summary": "The roughly 150 per-author pages now come from the dynamic content store, so author profile updates stay fresh and reliable.", + "category": "Maintenance", + "mergedAt": "2026-08-15T20:54:15Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1823" + }, + { + "id": "tutorials-ims#1822", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1822, + "title": "Serve the homepage from the database and drop the restart workaround", + "summary": "The homepage is now served dynamically from the content store, eliminating the post-deploy restart that had been needed to avoid stale content.", + "category": "Maintenance", + "mergedAt": "2026-08-15T20:25:04Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1822" + }, + { + "id": "tutorials-ims#1821", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1821, + "title": "Fix crawlable links and link text on shared popovers", + "summary": "Fixed the glossary and preferences popover links so search engines can crawl them and their text is meaningful, improving SEO across pages.", + "category": "Fix", + "mergedAt": "2026-08-15T18:47:45Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1821" + }, + { + "id": "tutorials-ims#1820", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1820, + "title": "Guard against stale site assets after deploy", + "summary": "Added a safeguard and automated check that catch stale or missing page assets after a deploy, preventing the broken, unstyled pages that could otherwise slip through.", + "category": "Feature", + "mergedAt": "2026-08-15T18:47:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1820" + }, + { + "id": "tutorials-ims#1819", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1819, + "title": "Point accessibility scans at stable live pages", + "summary": "Repointed the automated accessibility scans to reliable live pages so they properly test real content instead of erroring on missing URLs.", + "category": "Fix", + "mergedAt": "2026-08-15T18:47:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1819" + }, + { + "id": "tutorials-ims#1818", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1818, + "title": "Design note for fixing homepage layout shift", + "summary": "Documented the root cause and design for reducing homepage layout shift, where placeholder bands resize once real content loads.", + "category": "Docs", + "mergedAt": "2026-08-15T18:47:16Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1818" + }, + { + "id": "tutorials-ims#1817", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1817, + "title": "Update a homepage topic-clusters test", + "summary": "Updated an internal test to match a recent change in how homepage topic-cluster links render, keeping the test suite accurate.", + "category": "Maintenance", + "mergedAt": "2026-08-15T18:47:07Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1817" + }, + { + "id": "tutorials-ims#1815", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1815, + "title": "Cleaner SEO metadata on group and mission pages", + "summary": "Fixed breadcrumb structured data and added meaningful descriptions to group and mission pages, and cleaned up leftover placeholder text, improving how these pages appear in search.", + "category": "Fix", + "mergedAt": "2026-08-15T16:00:32Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1815" + }, + { + "id": "tutorials-ims#1814", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1814, + "title": "Fix unstyled image lightbox on tutorials", + "summary": "The tutorial image lightbox now displays properly with a single focused image and its styling, instead of dumping all images stacked and unstyled.", + "category": "Fix", + "mergedAt": "2026-08-15T15:18:09Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1814" + }, + { + "id": "tutorials-ims#1813", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1813, + "title": "Fix a build check for shared UI code", + "summary": "Adjusted an internal build guard so shared UI5 code splitting no longer trips a false failure, keeping the build pipeline healthy.", + "category": "Fix", + "mergedAt": "2026-08-15T13:31:02Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1813" + }, + { + "id": "tutorials-ims#1812", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1812, + "title": "Fix mobile overflow and button overlap on tutorials", + "summary": "Fixed tutorial pages on mobile so content no longer overflows horizontally and the Steps button no longer overlaps, for a cleaner reading experience on phones.", + "category": "Fix", + "mergedAt": "2026-08-15T13:07:42Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1812" + }, + { + "id": "tutorials-ims#1810", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1810, + "title": "Slimmer homepage icon styles and right-sized images", + "summary": "The homepage now ships only the handful of icon styles it actually uses and requests appropriately sized images, trimming roughly 150 KB of render-blocking CSS plus oversized thumbnails for faster page loads.", + "category": "Performance", + "mergedAt": "2026-08-15T13:07:20Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1810" + }, + { + "id": "tutorials-ims#1809", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1809, + "title": "Homepage accessibility fixes", + "summary": "Fixed several homepage accessibility issues around color contrast, keyboard focus, link labels, and ARIA attributes so the page works better with screen readers and meets WCAG AA.", + "category": "Fix", + "mergedAt": "2026-08-15T13:06:59Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1809" + }, + { + "id": "tutorials-ims#1808", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1808, + "title": "Concept and catalog pages now have proper SEO metadata", + "summary": "Concept, group, and mission pages now emit their own title, description, canonical URL, and social-preview tags instead of inheriting placeholder metadata, so they're properly indexed by search engines and share cleanly on social media.", + "category": "Fix", + "mergedAt": "2026-08-15T13:06:39Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1808" + }, + { + "id": "tutorials-ims#1807", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1807, + "title": "Alert call-to-action button now appears", + "summary": "The call-to-action button on notification alerts now renders correctly in the popover, so links surfaced in announcements are actually clickable.", + "category": "Fix", + "mergedAt": "2026-08-15T13:06:16Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1807" + }, + { + "id": "tutorials-ims#1811", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1811, + "title": "Tutorial tag chips now filter the navigator correctly", + "summary": "Clicking an experience-level tag like \"Beginner\" on a tutorial now sets the Experience filter in the navigator instead of quietly breaking the Software Product filter, so browsing by product returns the results you expect.", + "category": "Fix", + "mergedAt": "2026-08-15T13:05:48Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1811" + }, + { + "id": "tutorials-ims#1806", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1806, + "title": "Cookie banner no longer shifts the homepage on first visit", + "summary": "The consent banner is now pinned as a fixed overlay so it no longer pushes homepage content around on a first visit, giving new visitors a stable, jank-free first impression.", + "category": "Fix", + "mergedAt": "2026-08-15T12:35:33Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1806" + }, + { + "id": "tutorials-ims#1801", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1801, + "title": "test(scheduler): bump lockstep to 46 jobs for top-tutorials (#1782)", + "summary": "Updated an internal scheduler test to account for the new nightly Top Tutorials job, keeping the build green.", + "category": "Maintenance", + "mergedAt": "2026-08-15T12:01:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1801" + }, + { + "id": "tutorials-ims#1799", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1799, + "title": "Richer image lightbox with keyboard support, thumbnails, and swipe", + "summary": "The tutorial image viewer now supports opening with the keyboard, a thumbnail filmstrip, swipe navigation, double-tap zoom, an image counter with caption, and a loading spinner, making screenshots easier and more accessible to browse.", + "category": "Feature", + "mergedAt": "2026-08-15T00:06:08Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1799" + }, + { + "id": "tutorials-ims#1800", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1800, + "title": "Badge tracking resend reliability improvements", + "summary": "Made the badge-tracking resend process more reliable and correctly scoped to the right completion window, so recent tutorial completions get their badges assigned as expected.", + "category": "Fix", + "mergedAt": "2026-08-15T00:02:21Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1800" + }, + { + "id": "tutorials-ims#1797", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1797, + "title": "Per-page code-splitting of UI5 components", + "summary": "Each page now loads only the UI5 web components it actually needs rather than one monolithic bundle, cutting the homepage's UI5 payload by more than half for noticeably faster loads (rolled out behind a safe toggle).", + "category": "Performance", + "mergedAt": "2026-08-14T22:43:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1797" + }, + { + "id": "tutorials-ims#1793", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1793, + "title": "Badge backfill scripts made runnable and date-scoped", + "summary": "Fixed the badge backfill tooling so it runs against live environments and only stamps recent activity, avoiding an unnecessary sweep of the entire historical backlog.", + "category": "Fix", + "mergedAt": "2026-08-14T21:52:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1793" + }, + { + "id": "tutorials-ims#1790", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1790, + "title": "Top Tutorials ranking on the homepage carousel", + "summary": "The homepage carousel can now flip between Featured missions and a completions-based Top Tutorials ranking with a 90/180/360-day window selector, helping you discover what the community is actually working through.", + "category": "Feature", + "mergedAt": "2026-08-14T20:38:29Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1790" + }, + { + "id": "tutorials-ims#1791", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1791, + "title": "Devtoberfest sign-in prompt for anonymous visitors", + "summary": "Anonymous visitors clicking \"Join the Fest\" on the Devtoberfest homepage now see a friendly log-in prompt instead of a confusing error.", + "category": "Fix", + "mergedAt": "2026-08-14T20:38:00Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1791" + }, + { + "id": "tutorials-ims#1789", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1789, + "title": "Release 1.14.1 — DEV → PROD", + "summary": "Routine release bump shipping the accumulated development work to production.", + "category": "Maintenance", + "mergedAt": "2026-08-14T20:26:59Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1789" + }, + { + "id": "tutorials-ims#1787", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1787, + "title": "Freshness floor keeps stale tutorials off the homepage carousel", + "summary": "Added a configurable age cutoff so genuinely ancient tutorials no longer get ranked onto the homepage Featured carousel, keeping the recommendations feeling current.", + "category": "Feature", + "mergedAt": "2026-08-14T18:38:24Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1787" + }, + { + "id": "tutorials-ims#1781", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1781, + "title": "Next/Prev now flows continuously across a mission's groups", + "summary": "The Next button no longer disappears at the end of a group within a multi-group mission, so you can now flow straight from one group into the next without hitting a dead end.", + "category": "Fix", + "mergedAt": "2026-08-14T18:13:46Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1781" + }, + { + "id": "tutorials-ims#1780", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1780, + "title": "Multiple-choice quizzes no longer pre-select every answer", + "summary": "Fixed multiple-choice knowledge checks that rendered every option pre-selected and always graded as wrong, so quizzes now start unchecked and grade correctly.", + "category": "Fix", + "mergedAt": "2026-08-14T18:06:11Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1780" + }, + { + "id": "tutorials-ims#1776", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1776, + "title": "Minified CSS and self-hosted icon fonts", + "summary": "Several stylesheets are now minified and the icon CSS is served from our own domain instead of a third-party CDN, speeding up rendering and removing an external dependency that could break icons if it went down.", + "category": "Performance", + "mergedAt": "2026-08-14T18:00:17Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1776" + }, + { + "id": "tutorials-ims#1773", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1773, + "title": "ci(rebuild-content): enable keyless DEV content publishing (DRAFT — needs DEV approuter key seed)", + "summary": "Enabled server-side content publishing for the development environment so routine content refreshes no longer need a manual key pasted in during deploys.", + "category": "Maintenance", + "mergedAt": "2026-08-14T16:31:03Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1773" + }, + { + "id": "tutorials-ims#1772", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1772, + "title": "build(deploy): allow DEV/QA deploys from a fresh worktree; keep PROD strict", + "summary": "Relaxed deploy tooling to allow development and QA deploys from an isolated workspace while keeping production deploys strict.", + "category": "Maintenance", + "mergedAt": "2026-08-14T16:30:50Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1772" + }, + { + "id": "tutorials-ims#1770", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1770, + "title": "Dropped unused locale data from the UI5 bootstrap", + "summary": "Removed unused locale and calendar data from the UI5 bundle that loads on every page, shrinking it by nearly 80% (from 16 MB to 3.5 MB) for a much faster first load.", + "category": "Performance", + "mergedAt": "2026-08-14T14:41:58Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1770" + }, + { + "id": "tutorials-ims#1769", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1769, + "title": "Author pages survive overnight content rebuilds", + "summary": "Author profile pages no longer vanish (404) after nightly catalog rebuilds, so links to an author's page stay reliably available.", + "category": "Fix", + "mergedAt": "2026-08-14T14:20:14Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1769" + }, + { + "id": "tutorials-ims#1767", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1767, + "title": "Shorter edge cache and reduced homepage layout shift", + "summary": "Lowered the CDN cache window so newly published content appears within minutes instead of up to a day, and reserved space for homepage video and community sections to cut layout shift by over 90%.", + "category": "Performance", + "mergedAt": "2026-08-14T13:14:56Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1767" + }, + { + "id": "tutorials-ims#1768", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1768, + "title": "Completion tracking now includes the field badges depend on", + "summary": "Tutorial completions now carry the tracking identifier the badging system needs, plus backfill and resend tooling for past completions, so badges get awarded reliably.", + "category": "Fix", + "mergedAt": "2026-08-14T13:13:36Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1768" + }, + { + "id": "tutorials-ims#1766", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1766, + "title": "Alerts can use free-text call-to-action URLs again", + "summary": "The alert call-to-action URL field in the admin UI now keeps a hand-typed URL instead of discarding anything not in the suggestion list.", + "category": "Fix", + "mergedAt": "2026-08-14T12:39:38Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1766" + }, + { + "id": "tutorials-ims#1765", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1765, + "title": "Hide \"More from author\" rail in embedded tutorials", + "summary": "When a tutorial is embedded in another page, the cross-tutorial \"More from this author\" rail is now hidden so the embed stays focused on its own content.", + "category": "Fix", + "mergedAt": "2026-08-14T10:21:43Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1765" + }, + { + "id": "tutorials-ims#1764", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1764, + "title": "Byline fallback links tutorials to established author pages", + "summary": "Tutorials without explicit author frontmatter now link their byline to an existing author's page when the top contributor already has one, so more tutorials are correctly attributed without wrongly crediting bots or reviewers.", + "category": "Feature", + "mergedAt": "2026-08-14T10:15:30Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1764" + }, + { + "id": "tutorials-ims#1762", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1762, + "title": "Dropdown value help for link-health override in admin", + "summary": "The link-health override field in the admin UI now offers a proper OK/SLOW/BROKEN dropdown instead of a free-text box, making it clear what values are valid.", + "category": "Fix", + "mergedAt": "2026-08-14T06:40:53Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1762" + }, + { + "id": "tutorials-ims#1759", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1759, + "title": "QA navigator no longer wiped by content rebuilds", + "summary": "The QA author-preview navigator is now preserved across content-rebuild swaps, ending the recurring issue where it kept disappearing after a rebuild.", + "category": "Fix", + "mergedAt": "2026-08-14T05:48:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1759" + }, + { + "id": "tutorials-ims#1760", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1760, + "title": "Local deploys now build the QA preview navigator", + "summary": "Fixed local deploys so the QA author-preview tutorial navigator is built and shipped rather than serving a broken (404) page, with a guard to catch it if it ever regresses.", + "category": "Fix", + "mergedAt": "2026-08-14T05:48:38Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1760" + }, + { + "id": "tutorials-ims#1761", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1761, + "title": "Author pages exclude unpublished and deleted tutorials", + "summary": "Author pages, the \"more from author\" rail, and bylines now only show published, active tutorials, so unpublished or removed content no longer lingers on author profiles.", + "category": "Fix", + "mergedAt": "2026-08-14T05:48:23Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1761" + }, + { + "id": "tutorials-ims#1757", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1757, + "title": "Release v1.14.0: What's New page, author detail pages, Devtoberfest Signups report", + "summary": "Production release bundling the What's New page, author detail pages, and the Devtoberfest signups report.", + "category": "Maintenance", + "mergedAt": "2026-08-14T01:42:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1757" + }, + { + "id": "tutorials-ims#1756", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1756, + "title": "New public What's New page", + "summary": "Added a public What's New page at /whats-new/ that groups recent platform improvements by week in plain language, so you can see at a glance what's changed on developers.sap.com.", + "category": "Feature", + "mergedAt": "2026-08-14T00:22:13Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1756" + }, + { + "id": "tutorials-ims#1755", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1755, + "title": "feat(#1732): other tutorials by this author (rail + author page)", + "summary": "Readers can now discover more tutorials by the same author through an inline rail and a dedicated author page.", + "category": "Feature", + "mergedAt": "2026-08-13T23:56:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1755" + }, + { + "id": "tutorials-ims#1754", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1754, + "title": "Devtoberfest signups analytics report", + "summary": "A new analytical report in the admin dashboard shows Devtoberfest signup trends by day and geography, giving content managers instant visibility into registration activity.", + "category": "Feature", + "mergedAt": "2026-08-13T23:19:22Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1754" + }, + { + "id": "tutorials-ims#1753", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1753, + "title": "Admin editor: long-form fields now use a proper text area", + "summary": "Long text fields such as descriptions and markdown content in the admin content editor now render as a properly-sized textarea, making it much more comfortable to write and review multi-paragraph content.", + "category": "Fix", + "mergedAt": "2026-08-13T22:30:12Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1753" + }, + { + "id": "tutorials-ims#1751", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1751, + "title": "No more red error highlighting on unrecognised code tokens", + "summary": "Code blocks no longer show distracting red error styling from the syntax highlighter on tokens it could not parse — those tokens now render as plain text instead of looking like errors.", + "category": "Fix", + "mergedAt": "2026-08-13T22:11:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1751" + }, + { + "id": "tutorials-ims#1750", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1750, + "title": "Clearer quiz badge and current-step indicator", + "summary": "The quiz completion badge is now easier to spot, and your current tutorial step is highlighted with a ring and a subtle pulse animation so you can always see where you are at a glance.", + "category": "Fix", + "mergedAt": "2026-08-13T22:11:12Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1750" + }, + { + "id": "tutorials-ims#1749", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1749, + "title": "Devtoberfest session times now shown in your local timezone only", + "summary": "Devtoberfest sessions and activity times now display exclusively in your local timezone, removing the confusing dual-timezone display that showed UTC alongside local time.", + "category": "Fix", + "mergedAt": "2026-08-13T21:56:31Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1749" + }, + { + "id": "tutorials-ims#1748", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1748, + "title": "Author guide: Mission and Group content model explained", + "summary": "Updated author documentation now clarifies how missions map to groups in the new platform and explains how to structure multi-step learning paths as groups — essential reading for contributors building tutorial series.", + "category": "Docs", + "mergedAt": "2026-08-13T21:44:51Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1748" + }, + { + "id": "tutorials-ims#1747", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1747, + "title": "Multi-select quiz answers now validate correctly", + "summary": "Quiz questions that require selecting multiple correct answers (checkboxes) now validate correctly, so tutorials using multi-select questions work as expected instead of falsely rejecting valid answers.", + "category": "Fix", + "mergedAt": "2026-08-13T21:41:01Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1747" + }, + { + "id": "tutorials-ims#1746", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1746, + "title": "Devtoberfest live session recordings show YouTube thumbnails", + "summary": "Recorded Devtoberfest live-stream sessions now display their YouTube thumbnail previews on the sessions page instead of showing a blank placeholder image.", + "category": "Fix", + "mergedAt": "2026-08-13T21:34:23Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1746" + }, + { + "id": "tutorials-ims#1744", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1744, + "title": "AEM-legacy multi-paragraph notes render as a single callout", + "summary": "Tutorial notes and callouts that were originally authored across multiple paragraphs in the old AEM system now render as a single properly-formatted block instead of splitting into bare disconnected text fragments.", + "category": "Fix", + "mergedAt": "2026-08-13T21:31:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1744" + }, + { + "id": "tutorials-ims#1739", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1739, + "title": "Joule button works in embedded reader mode", + "summary": "The Joule AI assistant button in the read-only embedded tutorial view now correctly opens the Joule panel when clicked, instead of silently doing nothing.", + "category": "Fix", + "mergedAt": "2026-08-13T21:06:40Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1739" + }, + { + "id": "tutorials-ims#1738", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1738, + "title": "SAP CodeJam events appear in the homepage events band", + "summary": "Upcoming SAP CodeJam events now appear in the homepage events section alongside other community events, so visitors can discover in-person learning opportunities without having to navigate to a separate page.", + "category": "Fix", + "mergedAt": "2026-08-13T21:05:59Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1738" + }, + { + "id": "tutorials-ims#1737", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1737, + "title": "Gamification badge delivery resumes after credential fix", + "summary": "Badge and point awards to the gamification system resume reliably after fixing how the platform reads authentication credentials — completions that were queued will now flush through.", + "category": "Fix", + "mergedAt": "2026-08-13T21:03:57Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1737" + }, + { + "id": "tutorials-ims#1735", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1735, + "title": "docs: build site from DEV + register discovery-center page in sidebar", + "summary": "The documentation site now builds from the leading-edge DEV branch so upcoming features can be previewed before release.", + "category": "Docs", + "mergedAt": "2026-08-13T19:23:16Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1735" + }, + { + "id": "tutorials-ims#1734", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1734, + "title": "Release DEV → main (v1.14.0)", + "summary": "Production release promoting the latest DEV changes.", + "category": "Maintenance", + "mergedAt": "2026-08-13T19:06:29Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1734" + }, + { + "id": "tutorials-ims#1733", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1733, + "title": "Docs: SAP Discovery Center .model.json integration", + "summary": "Developer documentation now covers the `.model.json` endpoint that feeds SAP Discovery Center mission cards, clarifying the contract between the developer portal and the Discovery Center catalog.", + "category": "Docs", + "mergedAt": "2026-08-13T18:08:22Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1733" + }, + { + "id": "tutorials-ims#1731", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1731, + "title": "Badge delivery token flow fixed", + "summary": "Badge and point awards now complete successfully after a server-side credential flow issue that was silently blocking all deliveries has been resolved.", + "category": "Fix", + "mergedAt": "2026-08-13T16:54:48Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1731" + }, + { + "id": "tutorials-ims#1730", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1730, + "title": "More predictable platform releases", + "summary": "Platform releases are now batched behind a stable integration branch, making production updates more predictable and reducing the risk of mid-sprint changes reaching users before they are fully verified.", + "category": "Maintenance", + "mergedAt": "2026-08-13T16:47:04Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1730" + }, + { + "id": "tutorials-ims#1728", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1728, + "title": "Devtoberfest contest window: countdown timer with exact times and timezone", + "summary": "The Devtoberfest contest period now shows a live countdown timer with the exact start and end times in your local timezone, plus a tooltip explaining the contest window rules so you know precisely when your submissions count.", + "category": "Feature", + "mergedAt": "2026-08-13T16:22:27Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1728" + }, + { + "id": "tutorials-ims#1727", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1727, + "title": "Homepage link-health overrides apply correctly at build time", + "summary": "Link health overrides set by content authors in the admin interface are now correctly applied when the page is built, preventing valid links from being incorrectly flagged as broken in the homepage navigation.", + "category": "Fix", + "mergedAt": "2026-08-13T16:21:18Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1727" + }, + { + "id": "tutorials-ims#1724", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1724, + "title": "Embedded tutorials now have step navigation, Joule, and Next controls", + "summary": "Tutorials embedded in third-party apps now include a persistent action bar with step navigation, Joule AI assistant access, and a Next button, making the embedded reading experience as interactive as the full developer portal.", + "category": "Feature", + "mergedAt": "2026-08-13T15:01:45Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1724" + }, + { + "id": "tutorials-ims#1723", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1723, + "title": "New operational alerts for pipeline errors, secrets, broken links, and stuck publishes", + "summary": "Automated alerts now fire when the content rebuild pipeline encounters errors, secrets approach expiry, broken links are detected, or a content publish gets stuck — reducing time-to-detection for platform issues.", + "category": "Feature", + "mergedAt": "2026-08-13T14:48:50Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1723" + }, + { + "id": "tutorials-ims#1721", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1721, + "title": "Devtoberfest: iCal and RSS calendar feeds plus add-to-calendar links", + "summary": "You can now subscribe to the full Devtoberfest session schedule via iCal or RSS, and add individual sessions to your calendar with a single click — making it easy to plan which sessions to attend from your existing calendar app.", + "category": "Feature", + "mergedAt": "2026-08-13T14:43:17Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1721" + }, + { + "id": "tutorials-ims#1722", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1722, + "title": "Security dependency updates (undici, sharp, tar)", + "summary": "Production dependencies undici, sharp, and tar have been updated to resolve known security vulnerabilities.", + "category": "Maintenance", + "mergedAt": "2026-08-13T14:36:19Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1722" + }, + { + "id": "tutorials-ims#1719", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1719, + "title": "Tutorial pages no longer flash unstyled components before load", + "summary": "Tutorial pages no longer briefly flicker with unstyled UI5 browser components before the UI framework finishes initialising — content is now hidden until it is ready, removing the visual flash on page load.", + "category": "Fix", + "mergedAt": "2026-08-13T13:50:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1719" + }, + { + "id": "tutorials-ims#1713", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1713, + "title": "Tutorial breadcrumb step-picker respects authored sequence order", + "summary": "The breadcrumb dropdown that lets you jump between tutorial steps now lists them in their correct authored sequence rather than alphabetically, so the picker matches the actual reading order of a mission or group.", + "category": "Fix", + "mergedAt": "2026-08-13T01:53:31Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1713" + }, + { + "id": "tutorials-ims#1712", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1712, + "title": "QA channel navigator: search and filter only (no homepage sections)", + "summary": "The tutorial navigator on the QA content preview channel now shows only the search and filter interface, dropping the promotional homepage sections that were inappropriate for a content review environment.", + "category": "Fix", + "mergedAt": "2026-08-13T01:37:39Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1712" + }, + { + "id": "tutorials-ims#1711", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1711, + "title": "Event-display kiosk WebSocket no longer requires login", + "summary": "The live event display screen used at SAP community events can now establish its real-time WebSocket connection without requiring an authenticated session, fixing the connection errors that were disconnecting kiosk displays.", + "category": "Fix", + "mergedAt": "2026-08-13T00:37:15Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1711" + }, + { + "id": "tutorials-ims#1710", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1710, + "title": "Joule help button no longer overlaps the Next navigation button", + "summary": "The Joule AI help floating button no longer covers the Next navigation button when reading tutorials in a group, so both controls are independently accessible without one obscuring the other.", + "category": "Fix", + "mergedAt": "2026-08-12T22:52:01Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1710" + }, + { + "id": "tutorials-ims#1709", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1709, + "title": "Hotfix content rebuilds now reference current JS assets", + "summary": "Single-tutorial hotfix rebuilds now correctly embed versioned JavaScript asset references in the published HTML, preventing visitors from receiving stale interactive components after a quick content update.", + "category": "Fix", + "mergedAt": "2026-08-12T22:18:36Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1709" + }, + { + "id": "tutorials-ims#1708", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1708, + "title": "First-time visitors are no longer auto-redirected to login", + "summary": "The portal no longer automatically triggers a login redirect for first-time visitors — only returning users who previously authenticated are silently re-signed in, giving new readers a frictionless anonymous experience.", + "category": "Fix", + "mergedAt": "2026-08-12T21:54:47Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1708" + }, + { + "id": "tutorials-ims#1707", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1707, + "title": "Admin change history restored for content records", + "summary": "Edit history logging in the admin interface is working again — changes to tutorials, missions, and configuration now correctly appear in the Change History panel as expected.", + "category": "Fix", + "mergedAt": "2026-08-12T21:48:58Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1707" + }, + { + "id": "tutorials-ims#1706", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1706, + "title": "Tutorial step-timing statistics now persist correctly on HANA", + "summary": "A database compatibility issue that caused tutorial reading-time statistics to fail silently on HANA (while appearing to work locally) has been resolved by switching to the correct SAP CAP query API.", + "category": "Fix", + "mergedAt": "2026-08-12T21:29:18Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1706" + }, + { + "id": "tutorials-ims#1704", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1704, + "title": "Admin shelf and verb-definition reports load data automatically", + "summary": "The homepage shelf configuration and verb definitions list pages in the admin interface now load their data automatically when opened, rather than requiring a manual refresh click.", + "category": "Fix", + "mergedAt": "2026-08-12T21:28:55Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1704" + }, + { + "id": "tutorials-ims#1705", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1705, + "title": "Empty admin notification popup no longer shows blank space", + "summary": "The admin notification popup now displays a clean empty state when there are no pending alerts, instead of showing an awkward layout gap.", + "category": "Fix", + "mergedAt": "2026-08-12T21:28:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1705" + }, + { + "id": "tutorials-ims#1703", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1703, + "title": "AEM-legacy blockquoted code samples render inside their code window", + "summary": "Code samples in tutorials originally authored in AEM that were wrapped in blockquotes now render correctly inside the code window instead of appearing as raw text outside it.", + "category": "Fix", + "mergedAt": "2026-08-12T21:27:02Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1703" + }, + { + "id": "tutorials-ims#1702", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1702, + "title": "Content publish: rejected reverts shown correctly, not as failures", + "summary": "When a content publish correctly blocks a rollback to an older version, the outcome is now shown as 'Rejected' rather than misleadingly displayed as a verification failure.", + "category": "Fix", + "mergedAt": "2026-08-12T21:20:40Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1702" + }, + { + "id": "tutorials-ims#1701", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1701, + "title": "Tutorial contributor name no longer shows as 'Unknown'", + "summary": "Tutorial overview pages now correctly display the contributor's display name instead of 'Unknown' for authors whose profile is linked to an SAP Community account.", + "category": "Fix", + "mergedAt": "2026-08-12T21:16:09Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1701" + }, + { + "id": "tutorials-ims#1699", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1699, + "title": "Next/Previous navigation stays within the current group or mission", + "summary": "When reading a tutorial that is part of a group or mission, the Next and Previous buttons now stay within that group's sequence instead of jumping to unrelated tutorials from outside the learning path.", + "category": "Fix", + "mergedAt": "2026-08-12T19:18:13Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1699" + }, + { + "id": "tutorials-ims#1700", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1700, + "title": "fix(ci): mark model-json-handler slug lookups as pre-canonicalized", + "summary": "Fixed a slug-lookup guard for the legacy tutorial-model endpoint.", + "category": "Maintenance", + "mergedAt": "2026-08-12T19:15:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1700" + }, + { + "id": "tutorials-ims#1698", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1698, + "title": "New alerts for gamification badge backlog and exhausted retries", + "summary": "Operators now receive automated alerts when the badge and point delivery backlog to the gamification system is growing, or when all retry attempts have been exhausted — enabling faster incident response before developers notice missing rewards.", + "category": "Feature", + "mergedAt": "2026-08-12T19:12:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1698" + }, + { + "id": "tutorials-ims#1697", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1697, + "title": "fix(ci): allowlist /content/tutorial-model/*slug as srv-only (route-drift guard)", + "summary": "Fixed a route-consistency guard for the legacy tutorial-model endpoint.", + "category": "Maintenance", + "mergedAt": "2026-08-12T18:46:30Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1697" + }, + { + "id": "tutorials-ims#1695", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1695, + "title": "Badge delivery failures are now visible in metrics and alerts", + "summary": "Badge and point award failures are now accurately reflected in platform metrics and trigger operational alerts, replacing the previous silent failure mode that made badge delivery issues invisible to the team.", + "category": "Feature", + "mergedAt": "2026-08-12T18:19:42Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1695" + }, + { + "id": "tutorials-ims#1696", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1696, + "title": "test(#1673): fix seed-thirdparty test path after HomepageShelves CSV move", + "summary": "Fixed a unit test after a seed data file was relocated.", + "category": "Maintenance", + "mergedAt": "2026-08-12T18:18:15Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1696" + }, + { + "id": "tutorials-ims#1691", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1691, + "title": "Homepage content edits now automatically trigger a rebuild", + "summary": "Editing homepage shelves, featured topics, or other catalog content in the admin interface now automatically triggers a content rebuild, so changes reach visitors without needing a separate manual rebuild step.", + "category": "Fix", + "mergedAt": "2026-08-12T17:38:20Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1691" + }, + { + "id": "tutorials-ims#1690", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1690, + "title": "QA tutorial navigator now accessible at its own URL", + "summary": "The QA preview version of the tutorial navigator is now correctly served at its own path, allowing content reviewers to access it independently from the main navigator.", + "category": "Fix", + "mergedAt": "2026-08-12T17:37:59Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1690" + }, + { + "id": "tutorials-ims#1693", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1693, + "title": "Admin UI edits and deletes now work reliably in production", + "summary": "Admin panel content updates and deletions now work correctly for all users in production, fixing an edge compatibility issue that was causing edit and delete actions to fail silently.", + "category": "Fix", + "mergedAt": "2026-08-12T17:37:05Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1693" + }, + { + "id": "tutorials-ims#1694", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1694, + "title": "Live event display WebSocket connection fixed", + "summary": "The real-time event display used at SAP community events can now establish its WebSocket connection correctly after WebSocket support was explicitly enabled in the app router configuration.", + "category": "Fix", + "mergedAt": "2026-08-12T17:35:13Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1694" + }, + { + "id": "tutorials-ims#1692", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1692, + "title": "Deployments verified before going live to prevent broken pages", + "summary": "New releases now automatically verify that all page assets are in place before the update goes live, catching any missing CSS or JavaScript references before visitors could encounter broken pages.", + "category": "Maintenance", + "mergedAt": "2026-08-12T17:34:03Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1692" + }, + { + "id": "tutorials-ims#1687", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1687, + "title": "Developer Advocate photos update immediately after upload", + "summary": "Developer Advocate profile photos now appear immediately after uploading a new image — the CDN cache is invalidated on save so the updated photo is visible right away instead of being stuck behind a stale cached version.", + "category": "Fix", + "mergedAt": "2026-08-12T16:15:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1687" + }, + { + "id": "tutorials-ims#1686", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1686, + "title": "Devtoberfest Sessions page no longer blanks on invalid timezone data", + "summary": "The Devtoberfest Sessions page now fails gracefully if a session has an unrecognised timezone value, rendering the remaining sessions normally instead of going completely blank.", + "category": "Fix", + "mergedAt": "2026-08-12T16:14:12Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1686" + }, + { + "id": "tutorials-ims#1685", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1685, + "title": "SAP Discovery Center mission cards restored", + "summary": "The `.model.json` endpoint that SAP Discovery Center uses to display developer portal missions has been reinstated, restoring the integration that was broken during the migration away from the legacy AEM platform.", + "category": "Fix", + "mergedAt": "2026-08-12T15:48:41Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1685" + }, + { + "id": "tutorials-ims#1677", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1677, + "title": "CSS and JS assets no longer 404 after a fingerprinted deployment", + "summary": "JavaScript and CSS bundles from the previous deployment are now retained during new releases, preventing the brief window where visitors with cached HTML could request a versioned asset that no longer existed on the server.", + "category": "Fix", + "mergedAt": "2026-08-12T14:43:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1677" + }, + { + "id": "tutorials-ims#1682", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1682, + "title": "QA channel quiz questions fully rendered (dependency fix)", + "summary": "Quiz questions and interactive step validation now display correctly on the content preview channel, fully resolving the issue that had prevented them from appearing in preview pages.", + "category": "Fix", + "mergedAt": "2026-08-12T12:47:04Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1682" + }, + { + "id": "tutorials-ims#1680", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1680, + "title": "Quiz questions now render on the QA preview channel", + "summary": "Tutorial quiz questions and interactive step validation now display correctly on the QA content preview channel after a missing JS asset reference file was added to the QA build process.", + "category": "Fix", + "mergedAt": "2026-08-12T12:15:47Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1680" + }, + { + "id": "tutorials-ims#1676", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1676, + "title": "User account auto-provisioning works reliably on HANA", + "summary": "Automatic user account creation when a visitor links their SAP Community profile now works correctly in the HANA-backed production environment, fixing a silent insert failure that left users unable to have their progress tracked.", + "category": "Fix", + "mergedAt": "2026-08-12T02:17:37Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1676" + }, + { + "id": "tutorials-ims#1673", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1673, + "title": "Admin-editable configuration no longer overwritten on deployment", + "summary": "Configuration values that admins edit at runtime — homepage shelves, featured topics — are no longer overwritten by seed data during deployment, preventing live edits from being silently wiped on every new release.", + "category": "Fix", + "mergedAt": "2026-08-12T02:12:56Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1673" + }, + { + "id": "tutorials-ims#1674", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1674, + "title": "Tutorial right rail restored after CDS code block layout regression", + "summary": "An unbalanced HTML tag in the CDS syntax highlighter was pushing the tutorial progress sidebar off-screen; the fix restores correct side-by-side layout so the right rail displays normally alongside CDS code samples.", + "category": "Fix", + "mergedAt": "2026-08-12T01:54:53Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1674" + }, + { + "id": "tutorials-ims#1671", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1671, + "title": "fix(#1659 Phase 2): make pages-routes smoke markers minification-safe", + "summary": "Made deploy smoke tests robust to minified HTML so they stop failing on healthy pages.", + "category": "Fix", + "mergedAt": "2026-08-11T23:55:09Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1671" + }, + { + "id": "tutorials-ims#1670", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1670, + "title": "Browse, Topics, and other content pages now served from HANA", + "summary": "The Browse, Topics, Verbs, Sitemap, and other non-tutorial content pages are now served dynamically from the CAP/HANA content store, completing the migration away from static Hugo files and enabling live content updates without a full redeploy.", + "category": "Feature", + "mergedAt": "2026-08-11T23:03:19Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1670" + }, + { + "id": "tutorials-ims#1669", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1669, + "title": "Per-tutorial override for the content publish rollback protection", + "summary": "Content operators can now override the rollback-protection policy on a per-tutorial basis when a genuine revert is needed, avoiding the all-or-nothing configuration change that was previously required.", + "category": "Feature", + "mergedAt": "2026-08-11T22:46:40Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1669" + }, + { + "id": "tutorials-ims#1666", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1666, + "title": "CDS syntax highlighting colours restored in tutorial code blocks", + "summary": "SAP Core Data Services (CDS) code blocks in tutorials now show correct syntax highlighting colours after a CSS mapping regression was identified and fixed.", + "category": "Fix", + "mergedAt": "2026-08-11T21:51:23Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1666" + }, + { + "id": "tutorials-ims#1665", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1665, + "title": "fix(guard): unbreak main CI — move slug-canonical marker adjacent to .where", + "summary": "Fixed a code-quality guard that was failing the build.", + "category": "Maintenance", + "mergedAt": "2026-08-11T21:51:14Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1665" + }, + { + "id": "tutorials-ims#1664", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1664, + "title": "Content pages can now be served from HANA (initial rollout)", + "summary": "The infrastructure for serving non-tutorial content pages from the HANA content store is now in place, initially enabled in a validation mode to allow incremental verification before the full cut-over to dynamic page serving.", + "category": "Feature", + "mergedAt": "2026-08-11T20:20:18Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1664" + }, + { + "id": "tutorials-ims#1663", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1663, + "title": "Puzzle progress survives login, and orphaned drafts are recovered", + "summary": "Progress made on coding puzzles before signing in is now correctly merged with your account when you log in, completed puzzles are properly recognised after a browser refresh, and orphaned draft submissions are automatically recovered.", + "category": "Fix", + "mergedAt": "2026-08-11T18:39:53Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1663" + }, + { + "id": "tutorials-ims#1662", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1662, + "title": "Repository licensed under Apache-2.0 (OSPO compliance)", + "summary": "The developer portal codebase is now explicitly licensed under Apache-2.0 with REUSE-compliant headers, meeting SAP open-source compliance requirements as the repository moves toward public visibility.", + "category": "Maintenance", + "mergedAt": "2026-08-11T18:06:23Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1662" + }, + { + "id": "tutorials-ims#1661", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1661, + "title": "CDS code highlighting restored on HANA-published tutorials", + "summary": "CDS syntax highlighting was missing from published tutorials after a build pipeline regression; the syntax highlighter is now correctly invoked when tutorials are published to the content store.", + "category": "Fix", + "mergedAt": "2026-08-11T17:04:46Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1661" + }, + { + "id": "tutorials-ims#1660", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1660, + "title": "Link-health checker no longer flags internal or auth-gated URLs as broken", + "summary": "The homepage link-health checker no longer incorrectly marks internal portal URLs and login-protected pages as broken — those links are now either skipped or probed with the correct authentication context.", + "category": "Fix", + "mergedAt": "2026-08-11T16:31:21Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1660" + }, + { + "id": "tutorials-ims#1658", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1658, + "title": "Versioned JS and CSS bundles are retained across deployments", + "summary": "Content-hashed JavaScript and CSS assets are now preserved when a new version is deployed, eliminating the brief window where visitors with cached HTML pages could request a bundle that no longer existed on the server.", + "category": "Feature", + "mergedAt": "2026-08-11T15:24:57Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1658" + }, + { + "id": "tutorials-ims#1654", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1654, + "title": "Navigator mission cards link correctly for nested-group missions", + "summary": "Mission cards in the tutorial navigator now link correctly when the mission's tutorials are structured as nested groups, fixing cards that previously led to a dead end.", + "category": "Fix", + "mergedAt": "2026-08-11T15:07:19Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1654" + }, + { + "id": "tutorials-ims#1656", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1656, + "title": "Homepage footer cleaned up: broken links and padlock icon hidden", + "summary": "Broken placeholder links in the homepage directory footer and a stray sign-in padlock icon have been hidden, cleaning up footer content that was inadvertently visible since launch.", + "category": "Fix", + "mergedAt": "2026-08-11T15:03:54Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1656" + }, + { + "id": "tutorials-ims#1655", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1655, + "title": "Mobile navigation menu now opens on tap", + "summary": "On mobile devices, tapping the Navigate button in the site header now correctly opens the navigation popover instead of doing nothing.", + "category": "Fix", + "mergedAt": "2026-08-11T14:59:29Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1655" + }, + { + "id": "tutorials-ims#1653", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1653, + "title": "docs: register approuter-static-serving page in sidebar (fix Pages CI)", + "summary": "Registered a new architecture page in the documentation sidebar.", + "category": "Docs", + "mergedAt": "2026-08-11T14:37:09Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1653" + }, + { + "id": "tutorials-ims#1649", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1649, + "title": "Admin portal no longer reload-loops on authorization errors", + "summary": "The admin portal no longer enters an infinite reload loop when a session lacks the required authorization scope — it now shows a clear access-denied message so the user knows what action to take.", + "category": "Fix", + "mergedAt": "2026-08-11T14:23:46Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1649" + }, + { + "id": "tutorials-ims#1645", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1645, + "title": "spec: HANA/CAP content-page serving + asset-hash retention (durable fix)", + "summary": "Design spec for serving all pages from the database and retaining asset hashes across deploys.", + "category": "Docs", + "mergedAt": "2026-08-11T13:56:37Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1645" + }, + { + "id": "tutorials-ims#1644", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1644, + "title": "App router recovers from transient module load errors on refresh", + "summary": "The application router now retries its module-loading step when a transient import error occurs, preventing a page refresh from leaving the site in a broken state after a brief network hiccup during startup.", + "category": "Fix", + "mergedAt": "2026-08-11T13:56:18Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1644" + }, + { + "id": "tutorials-ims#1647", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1647, + "title": "Devtoberfest App Space missions load correctly", + "summary": "The Devtoberfest App Space now correctly resolves which mission is associated with an event, fixing a lookup direction bug that was preventing mission content from loading on the App Space page.", + "category": "Fix", + "mergedAt": "2026-08-11T13:55:55Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1647" + }, + { + "id": "tutorials-ims#1648", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1648, + "title": "Animated GIFs in tutorials now animate correctly", + "summary": "Animated GIFs embedded in tutorial content now play their animations correctly — they are no longer flattened to static images by the CDN image processor.", + "category": "Fix", + "mergedAt": "2026-08-11T13:54:53Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1648" + }, + { + "id": "tutorials-ims#1646", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1646, + "title": "Images and links inside Prerequisites tables now render correctly", + "summary": "Images and hyperlinks placed inside Prerequisites tables in tutorial content now render as expected instead of showing raw markdown syntax or escaped HTML tags.", + "category": "Fix", + "mergedAt": "2026-08-11T13:12:22Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1646" + }, + { + "id": "tutorials-ims#1643", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1643, + "title": "chore(deploy): bump prod tutorials-srv instances 2->4 for launch load", + "summary": "Scaled the production backend to four instances to absorb launch-day load.", + "category": "Maintenance", + "mergedAt": "2026-08-11T11:30:47Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1643" + }, + { + "id": "tutorials-ims#1642", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1642, + "title": "docs(architecture): design for durable multi-instance approuter static serving", + "summary": "Design document for serving static assets reliably across multiple server instances.", + "category": "Docs", + "mergedAt": "2026-08-11T11:18:47Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1642" + }, + { + "id": "tutorials-ims#1641", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1641, + "title": "ci(rebuild): guard runtime-push path against bare island paths (follow-up #1628)", + "summary": "Added a safeguard so content rebuilds can no longer ship broken JavaScript asset paths.", + "category": "Fix", + "mergedAt": "2026-08-11T11:18:35Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1641" + }, + { + "id": "tutorials-ims#1636", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1636, + "title": "Intermittent blank page on load fixed (bootstrap race condition)", + "summary": "A timing race between the app router's legacy redirect module and its initial page load was causing intermittent blank pages or redirect loops for some visitors — the startup sequence is now deterministic.", + "category": "Fix", + "mergedAt": "2026-08-11T10:44:27Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1636" + }, + { + "id": "tutorials-ims#1635", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1635, + "title": "chore(deploy): bump tutorials-srv disk-quota 1024M->2048M", + "summary": "Raised the backend service's disk allocation to match what production needs.", + "category": "Maintenance", + "mergedAt": "2026-08-11T10:43:45Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1635" + }, + { + "id": "tutorials-ims#1628", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1628, + "title": "Content rebuilds now ship correct versioned JS assets", + "summary": "Single-tutorial hotfix rebuilds triggered via GitHub Actions now correctly generate versioned JavaScript asset references, ensuring published pages load current interactive components rather than stale cached code.", + "category": "Fix", + "mergedAt": "2026-08-11T10:27:46Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1628" + }, + { + "id": "tutorials-ims#1626", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1626, + "title": "fix(ci): drop build:island-manifest from postbuild:apps guard suite", + "summary": "Fixed a build guard that was failing every continuous-integration run.", + "category": "Maintenance", + "mergedAt": "2026-08-11T04:13:07Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1626" + }, + { + "id": "tutorials-ims#1627", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1627, + "title": "chore(release): bump MTA version to 1.13.3 for PROD", + "summary": "Version bump ahead of a production release.", + "category": "Maintenance", + "mergedAt": "2026-08-11T03:42:01Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1627" + }, + { + "id": "tutorials-ims#1625", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1625, + "title": "SAP events display on the correct calendar day", + "summary": "SAP events on the homepage now show on the calendar day they actually occur, rather than being shifted by server-side timezone conversion — community events authored in a non-UTC timezone no longer appear on the wrong date.", + "category": "Fix", + "mergedAt": "2026-08-11T02:27:41Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1625" + }, + { + "id": "tutorials-ims#1624", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1624, + "title": "Hotfix rebuilds blocked when current CSS fingerprints are not yet deployed", + "summary": "A safety guard now prevents single-tutorial hotfix rebuilds from going through if the current build's CSS fingerprints have not been deployed yet, avoiding a state where published tutorial HTML references styles that do not exist on the server.", + "category": "Maintenance", + "mergedAt": "2026-08-11T01:54:33Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1624" + }, + { + "id": "tutorials-ims#1623", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1623, + "title": "Cache invalidations now propagate across all server instances", + "summary": "Content cache and navigator cache invalidations now propagate reliably across all running server instances, preventing visitors from seeing stale content on one instance after a content publish updated another.", + "category": "Fix", + "mergedAt": "2026-08-11T01:48:51Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1623" + }, + { + "id": "tutorials-ims#1620", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1620, + "title": "fix(test): un-break unit CI — match island-src partial in module-load guards", + "summary": "Restored the unit-test suite after a template refactor changed how JavaScript bundles are referenced.", + "category": "Maintenance", + "mergedAt": "2026-08-11T01:06:45Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1620" + }, + { + "id": "tutorials-ims#1619", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1619, + "title": "Community event dates now show the locally authored day", + "summary": "Community events such as CodeJams and workshops now display the date as authored, rather than being shifted by server timezone conversion — events authored as starting on a Monday no longer appear as Sunday in the portal.", + "category": "Fix", + "mergedAt": "2026-08-11T00:30:15Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1619" + }, + { + "id": "tutorials-ims#1618", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1618, + "title": "SAP Community profile linking now accepts a pasted profile URL", + "summary": "Linking your SAP Community profile to your developer account now works when you paste the full profile URL, and automatically creates your account record if it does not yet exist.", + "category": "Fix", + "mergedAt": "2026-08-11T00:25:39Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1618" + }, + { + "id": "tutorials-ims#1617", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1617, + "title": "Raw image attributes no longer appear as text in option-tab blocks", + "summary": "Images inside option-tab blocks in tutorials no longer leak their raw HTML attributes as visible text below the image — the rendered output is now clean.", + "category": "Fix", + "mergedAt": "2026-08-11T00:21:08Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1617" + }, + { + "id": "tutorials-ims#1613", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1613, + "title": "Local builds now reliably reference correct versioned JS assets", + "summary": "The build step that maps Vue component names to their versioned JS filenames is now always run as part of the main build, fixing a long-standing issue where local builds shipped pages with unversioned JS paths that would not match the assets actually on the server.", + "category": "Maintenance", + "mergedAt": "2026-08-10T23:26:07Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1613" + }, + { + "id": "tutorials-ims#1612", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1612, + "title": "Concepts page no longer 404s on hard refresh with a query string", + "summary": "Refreshing or directly navigating to a `/concepts/` URL with a query parameter no longer returns a 404 — the route is now correctly handled server-side.", + "category": "Fix", + "mergedAt": "2026-08-10T22:05:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1612" + }, + { + "id": "tutorials-ims#1611", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1611, + "title": "Joule and SAP Fundamental Styles CSS are now cache-busted on update", + "summary": "The Joule AI assistant stylesheet and the SAP Fundamental Styles base CSS are now content-hashed, preventing browsers and CDN edges from serving stale cached versions of these critical stylesheets after a platform update.", + "category": "Fix", + "mergedAt": "2026-08-10T21:42:18Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1611" + }, + { + "id": "tutorials-ims#1610", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1610, + "title": "Topics page concept links now point to published content", + "summary": "Placeholder concept links on the Topics page now point to real published concept pages instead of broken placeholder slugs, so all concept browsing links reach actual content.", + "category": "Fix", + "mergedAt": "2026-08-10T21:36:54Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1610" + }, + { + "id": "tutorials-ims#1609", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1609, + "title": "Interactive JS components are now versioned to prevent stale code", + "summary": "Interactive JavaScript components on portal pages are now content-hashed so CDN edges and browsers always fetch the current version after a deployment, eliminating the stale-JS problem that could leave interactive page elements in a broken state.", + "category": "Fix", + "mergedAt": "2026-08-10T21:14:01Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1609" + }, + { + "id": "tutorials-ims#1608", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1608, + "title": "Developer Advocate profile card flip works correctly on iOS Safari", + "summary": "Developer Advocate profile cards now flip correctly on iOS Safari — the front photo is properly hidden when the card flips to reveal the back, instead of both sides being visible at the same time.", + "category": "Fix", + "mergedAt": "2026-08-10T20:41:25Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1608" + }, + { + "id": "tutorials-ims#1606", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1606, + "title": "Homepage verb tiles always navigate on click, even after hovering", + "summary": "Clicking a learning verb tile on the homepage now reliably navigates to the correct page even after hovering over the card triggered the flip animation — the click target was previously lost after the animation completed.", + "category": "Fix", + "mergedAt": "2026-08-10T20:28:18Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1606" + }, + { + "id": "tutorials-ims#1603", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1603, + "title": "Remaining page-level Hugo CSS files are now cache-busted", + "summary": "The remaining page-level stylesheets not yet covered by content hashing are now versioned, completing full CDN cache-busting coverage for CSS across the platform.", + "category": "Fix", + "mergedAt": "2026-08-10T20:18:48Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1603" + }, + { + "id": "tutorials-ims#1602", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1602, + "title": "Devtoberfest event registrations can now be saved to the database", + "summary": "Devtoberfest event registrations can now be correctly persisted — a missing database sequence for generating registration IDs was causing all registrations to fail silently.", + "category": "Fix", + "mergedAt": "2026-08-10T19:59:31Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1602" + }, + { + "id": "tutorials-ims#1601", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1601, + "title": "Hugo CSS files are content-hashed to prevent stale style delivery", + "summary": "Hugo-managed CSS files are now content-hashed at build time, ensuring CDN edges and browsers always retrieve the latest stylesheets after a new release rather than serving stale cached versions.", + "category": "Fix", + "mergedAt": "2026-08-10T19:54:57Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1601" + }, + { + "id": "tutorials-ims#1598", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1598, + "title": "Navigator Type and Experience filter lists render fully", + "summary": "The Type and Experience filter panels in the tutorial navigator now render all available options instead of being cut off partway through the list.", + "category": "Fix", + "mergedAt": "2026-08-10T19:53:40Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1598" + }, + { + "id": "tutorials-ims#1599", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1599, + "title": "Duplicate product tags in navigator filters are now merged", + "summary": "Duplicate Software Product tags in the tutorial navigator filter — caused by slight label variations across tutorial metadata — are now merged by display label, resulting in cleaner filter lists without repetitions.", + "category": "Fix", + "mergedAt": "2026-08-10T19:53:10Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1599" + }, + { + "id": "tutorials-ims#1597", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1597, + "title": "Option-tab controls in tutorials render as interactive buttons", + "summary": "Option-tab controls in tutorials now render as interactive buttons as intended, rather than showing the raw HTML tag text that was being escaped by the Markdown renderer.", + "category": "Fix", + "mergedAt": "2026-08-10T19:24:40Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1597" + }, + { + "id": "tutorials-ims#1593", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1593, + "title": "Explore page no longer breaks the Hugo build", + "summary": "A special character in the Explore page frontmatter description that was causing Hugo build failures has been escaped, restoring the ability to build the full site with the Explore page included.", + "category": "Fix", + "mergedAt": "2026-08-10T19:02:20Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1593" + }, + { + "id": "tutorials-ims#1589", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1589, + "title": "Homepage learning verb tiles updated", + "summary": "The learning verb tiles on the homepage — the Browse by, Learn how to, and Discover action categories — have been updated with refreshed copy and links.", + "category": "Feature", + "mergedAt": "2026-08-10T18:33:26Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1589" + }, + { + "id": "tutorials-ims#1588", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1588, + "title": "Tutorials can now be embedded in SAP Business AI Platform", + "summary": "Tutorials can now be rendered in a clean read-only mode inside SAP Business AI Platform (BAIP), with portal chrome hidden and only the tutorial content and step navigation exposed — enabling seamless in-context learning from within BAIP.", + "category": "Feature", + "mergedAt": "2026-08-10T18:23:34Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1588" + }, + { + "id": "tutorials-ims#1587", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1587, + "title": "Production app router no longer crash-loops under load", + "summary": "The production app router was running out of memory under real traffic and crash-looping; its memory allocation has been increased to handle the load seen since the platform went live.", + "category": "Fix", + "mergedAt": "2026-08-10T18:03:19Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1587" + }, + { + "id": "tutorials-ims#1586", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1586, + "title": "Devtoberfest Planner admin link resolves to the correct environment", + "summary": "The Devtoberfest Planner link in the admin interface now correctly resolves to the current environment — it was previously always pointing to DEV even when accessed from the PROD admin panel.", + "category": "Fix", + "mergedAt": "2026-08-10T17:27:35Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1586" + }, + { + "id": "tutorials-ims#1585", + "repo": "tutorials-ims", + "label": "Developer Portal", + "number": 1585, + "title": "Topics admin actions work reliably regardless of slug casing", + "summary": "Topic publish and unpublish actions in the admin interface now correctly normalise the topic slug before performing the lookup, fixing a case-sensitivity mismatch that was causing failures on any topic change.", + "category": "Fix", + "mergedAt": "2026-08-10T16:00:49Z", + "week": "2026-W33", + "weekStart": "2026-08-10", + "url": "https://github.com/sap-tutorials/tutorials-ims/pull/1585" + } + ] +} diff --git a/scripts/__tests__/backfill-images-slug-filter.test.ts b/scripts/__tests__/backfill-images-slug-filter.test.ts index 2d268a9a3..f51533449 100644 --- a/scripts/__tests__/backfill-images-slug-filter.test.ts +++ b/scripts/__tests__/backfill-images-slug-filter.test.ts @@ -1,5 +1,5 @@ -import { describe, it, expect, beforeAll, afterAll } from 'vitest' -import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'node:fs' +import { describe, it, expect, beforeEach, afterEach } from 'vitest' +import { mkdtempSync, mkdirSync, writeFileSync, rmSync, readFileSync } from 'node:fs' import { join } from 'node:path' import { tmpdir } from 'node:os' import { collectImageUrls, parseSlug, parseChannel } from '../backfill-images' @@ -12,17 +12,30 @@ function page(slug: string, img: string): string { } describe('backfill-images --slug filter', () => { + // Per-test (not per-file) fixtures. `collectImageUrls` reaches `extractImgCdnUrls` + // through the workspace-first async-import shim in srv/lib/image-warm-utils.js; + // under the CI forks pool with `retry:1`, a per-file `beforeAll` left the fixture + // and the lazily-resolved binding exposed to cross-attempt/worker timing, which + // surfaced as a non-reproducible `[] !== ['beta']` on retry (#2808 CI flake — + // code was correct, the test was non-hermetic). beforeEach rebuilds the fixture + // for every attempt; the fixture guard below turns any future silent `[]` from a + // broken shim resolution into a loud, diagnosable failure instead of a flake. + let root: string let publicDir: string - beforeAll(() => { - const root = mkdtempSync(join(tmpdir(), 'backfill-slug-')) + beforeEach(() => { + root = mkdtempSync(join(tmpdir(), 'backfill-slug-')) publicDir = join(root, 'public') const tut = join(publicDir, 'tutorials') mkdirSync(join(tut, 'alpha'), { recursive: true }) mkdirSync(join(tut, 'beta'), { recursive: true }) writeFileSync(join(tut, 'alpha', 'index.html'), page('alpha', 'a.png')) writeFileSync(join(tut, 'beta', 'index.html'), page('beta', 'b.png')) + // Fixture + import-shim sanity: fail loudly (not as an empty-map flake) if the + // file isn't on disk or the lazily-imported binding didn't resolve to a fn. + expect(readFileSync(join(tut, 'beta', 'index.html'), 'utf8')).toContain('/img-cdn?u=') + expect(typeof collectImageUrls).toBe('function') }) - afterAll(() => { rmSync(join(publicDir, '..'), { recursive: true, force: true }) }) + afterEach(() => { rmSync(root, { recursive: true, force: true }) }) it('enumerates all slugs when no filter is given', () => { const map = collectImageUrls(publicDir) diff --git a/test/unit/admin-shell-manifest-generator.test.js b/test/unit/admin-shell-manifest-generator.test.js index 59de6485f..64d495686 100644 --- a/test/unit/admin-shell-manifest-generator.test.js +++ b/test/unit/admin-shell-manifest-generator.test.js @@ -8,8 +8,9 @@ // mirrors with a scan-driven build step — these tests lock in the invariants. import { describe, it, expect } from 'vitest'; -import { readFileSync } from 'node:fs'; +import { readFileSync, mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'node:fs'; import { join } from 'node:path'; +import { tmpdir } from 'node:os'; import { discoverComponents, toCamelCase } from '../../app/admin-shell/scripts/discover-admin-components.js'; import { buildBlocks } from '../../app/admin-shell/scripts/generate-manifest.js'; @@ -116,3 +117,46 @@ describe('toCamelCase', () => { expect(toCamelCase('kgCommunities')).toBe('kgCommunities'); }); }); + +// Guard: every real admin app under app/admin/ carries its own ui5.yaml. +// Without it, copy-components.js silently falls back from the preload build to +// a raw copy that ships NO Component-preload.js; a freestyle OData-V4 tile +// (app/admin/health) then dies at runtime with a "script load error" +// ModuleError on sap/ui/model/odata/v4/library.js. discoverComponents now fails +// the build the moment a non-excluded component lacks its ui5.yaml. +describe('ui5.yaml-presence guard', () => { + it('every real admin component ships a ui5.yaml', () => { + // Real tree must pass — if this fails, a tile is missing its ui5.yaml. + expect(() => discoverComponents(ADMIN)).not.toThrow(); + }); + + it('throws when a discovered component has no ui5.yaml', () => { + const root = mkdtempSync(join(tmpdir(), 'admin-guard-')); + try { + const webapp = join(root, 'widget', 'webapp'); + mkdirSync(webapp, { recursive: true }); + writeFileSync(join(webapp, 'Component.js'), '// stub'); + writeFileSync(join(webapp, 'manifest.json'), + JSON.stringify({ 'sap.app': { id: 'sap.tutorials.admin.widget' } })); + // No ui5.yaml written → must throw. + expect(() => discoverComponents(root)).toThrow(/missing ui5\.yaml/); + } finally { + rmSync(root, { recursive: true, force: true }); + } + }); + + it('exempts a component listed in the preload-exclude set', () => { + const root = mkdtempSync(join(tmpdir(), 'admin-guard-')); + try { + const webapp = join(root, 'widget', 'webapp'); + mkdirSync(webapp, { recursive: true }); + writeFileSync(join(webapp, 'Component.js'), '// stub'); + writeFileSync(join(webapp, 'manifest.json'), + JSON.stringify({ 'sap.app': { id: 'sap.tutorials.admin.widget' } })); + const { components } = discoverComponents(root, new Set(['widget'])); + expect(components.map(c => c.folder)).toContain('widget'); + } finally { + rmSync(root, { recursive: true, force: true }); + } + }); +});