diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 2825ca3..f590ba1 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -4,6 +4,18 @@ on: workflow_dispatch: jobs: + acceptance: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: verify generated Claude surface + run: | + test -s claude/index.html + python3 -m json.tool claude.json >/dev/null + grep -q 'claude.json' claude/index.html + grep -q 'COPY claude ' Dockerfile + - name: build published image + run: docker build --tag notplanned-acceptance . note: runs-on: ubuntu-latest steps: diff --git a/Dockerfile b/Dockerfile index 9ef0b29..47d7595 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,5 @@ FROM nginx:1.27-alpine COPY index.html /usr/share/nginx/html/index.html +COPY claude /usr/share/nginx/html/claude +COPY claude.json /usr/share/nginx/html/claude.json EXPOSE 80 diff --git a/README.md b/README.md index 33814fd..d06a323 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # notplanned -notplanned — we build the features maintainers won't \ No newline at end of file +notplanned — we build the features maintainers won't + +## deterministic surfaces + +- `/claude/` is a bounded public GitHub commit scout. Refresh it with `python3 claude.py`; it writes `claude/index.html` and `claude.json`. +- The scan uses five fixed commit-search queries over a 30-day window, dedupes by repository + commit SHA, applies fixed keyword categories, and separates `anthropics/*` from independent repositories. +- GitHub Search is unauthenticated and rate-limited; each JSON snapshot records query results, rate-limit headers, and errors instead of hiding partial scans. diff --git a/claude-template.html b/claude-template.html new file mode 100644 index 0000000..fc6dcbc --- /dev/null +++ b/claude-template.html @@ -0,0 +1,24 @@ + + +notplanned / claude + +
+
notplanned / claude
+

claude signal.

A bounded, deterministic mirror of public GitHub commits attributed to Claude, Claude Code, or Claude co-authorship. The independent ecosystem stays visible beside official Anthropic work.

+
__COUNT__commits
__INDEPENDENT__independent
__OFFICIAL__official
__REPOS__repos
__QUERIES__bounded queries
+

Updated __UPDATED__ UTC. Search window: last 30 days. Results are deduped by repository + commit SHA, sorted newest first, and categorized with fixed keyword rules. GitHub search can be incomplete when its public rate limit is low.

+

independent ecosystem

Public repositories outside the Anthropic organization: the clearest demand/discovery signal for what people are asking Claude to build.

__INDEPENDENT_CARDS__
+

official Anthropic

Anthropic-owned repositories are separated so first-party implementation work does not obscure independent activity.

__OFFICIAL_CARDS__
+ +
diff --git a/claude.json b/claude.json new file mode 100644 index 0000000..d137630 --- /dev/null +++ b/claude.json @@ -0,0 +1,3185 @@ +{ + "generated_at": "2026-10-07T04:03:43.750708+00:00", + "source": "https://api.github.com/search/commits", + "rules": { + "lookback_days": 30, + "max_results_per_query": 50, + "dedupe_key": "repo + commit_sha", + "searches": [ + "author:claude[bot]", + "committer:claude[bot]", + "author:claude", + "committer:claude", + "\"Co-authored-by: Claude\"" + ], + "official_definition": "repo full_name starts with anthropics/" + }, + "api": { + "rate_limit": { + "limit": "10", + "remaining": "5", + "reset": "1791345883" + }, + "queries": [ + { + "term": "author:claude[bot]", + "query": "author:claude[bot] committer-date:>=2026-09-07 committer-date:<=2026-10-07", + "returned": 50, + "total_count": 62426 + }, + { + "term": "committer:claude[bot]", + "query": "committer:claude[bot] committer-date:>=2026-09-07 committer-date:<=2026-10-07", + "returned": 50, + "total_count": 13187 + }, + { + "term": "author:claude", + "query": "author:claude committer-date:>=2026-09-07 committer-date:<=2026-10-07", + "returned": 50, + "total_count": 20090543 + }, + { + "term": "committer:claude", + "query": "committer:claude committer-date:>=2026-09-07 committer-date:<=2026-10-07", + "returned": 50, + "total_count": 19783164 + }, + { + "term": "\"Co-authored-by: Claude\"", + "query": "\"Co-authored-by: Claude\" committer-date:>=2026-09-07 committer-date:<=2026-10-07", + "returned": 0, + "error": "You have exceeded a secondary rate limit. Please wait a few minutes before you try again. For more on scraping GitHub and how it may affect your rights, please review our Terms of Service (https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) If you reach out to GitHub Support for help, please include the request ID B8EC:5A8BB:D2F6A9:2B5E6D0:6AC5C4A2." + } + ] + }, + "filters": { + "future_timestamps_excluded": 100 + }, + "candidates": [ + { + "repo": "kylesnowschwartz/plugin-dev", + "repo_url": "https://github.com/kylesnowschwartz/plugin-dev", + "commit_sha": "5075bea4eda58df7edee5a2233baee87c4f777e7", + "commit_url": "https://github.com/kylesnowschwartz/plugin-dev/commit/5075bea4eda58df7edee5a2233baee87c4f777e7", + "commit_message": "feat: sync plugin-dev with Claude Code v2.1.284-v2.1.289 (#83)\n\nApply 22 Must Update items from the CC 2.1.284-2.1.289 changelog and\nbinary, and 7 Stage 2-confirmed doc drift audit fixes. Bump to 0.49.0.\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 5.5 ", + "subject": "feat: sync plugin-dev with Claude Code v2.1.284-v2.1.289 (#83)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T16:52:40.000+13:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "integration", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "supabase/supabase", + "repo_url": "https://github.com/supabase/supabase", + "commit_sha": "fb382b301866e4a1dd6fa796399058ff91f642c1", + "commit_url": "https://github.com/supabase/supabase/commit/fb382b301866e4a1dd6fa796399058ff91f642c1", + "commit_message": "Add Terms of Service v4 (effective October 5, 2026) (#51107)\n\n\n_Requested by **Nicole Kramer** \u00b7 [Slack\nthread](https://supabase.slack.com/archives/C0161K73J1J/p1790784371448999)_\n\n## Problem\n\nCommercial & Product Counsel supplied a new version of the Supabase\nTerms of Service to be published as Version 4, effective October 5, 2026\n(the same date the Enterprise Terms v4 update takes effect, once the\ncode freeze lifts).\n\n## Solution\n\nAdds `apps/www/data/legal/terms/v4.mdx` with the new agreement text\n(transcribed from the supplied source document) and registers it as the\nnewest version in `apps/www/pages/terms.tsx`'s versions array, dated\nOctober 5, 2026. Versions 1-3 are untouched. The new text also defines\n\"Supplemental Terms\" and links it, at the one point the source\nhyperlinks it, to `/legal/customer-resources/supplemental-terms`.\n\n## Review instructions\n\n1. Open the Vercel preview link for `/terms` below.\n2. Confirm \"Version 4\" appears as the newest tab/version, dated October\n5, 2026, with the updated agreement text.\n3. Do not merge \u2014 this PR is held until the code freeze lifts on October\n5, 2026 (see PRs #51100 and #51106 for the related Enterprise Terms /\nSupplemental Terms work landing the same day).\n\n## Checklist\n\n- [x] I have read\n[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nhttps://claude.ai/code/session_01K2vqszbsJiMJPABAnLMgaC\n\n\n---\n_Generated by [Claude\nCode](https://claude.ai/code/session_01K2vqszbsJiMJPABAnLMgaC)_\n\nCo-authored-by: Claude ", + "subject": "Add Terms of Service v4 (effective October 5, 2026) (#51107)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T09:07:10.000+11:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "supabase/supabase", + "repo_url": "https://github.com/supabase/supabase", + "commit_sha": "c006499d481a55bf5911dde57299442218b897bb", + "commit_url": "https://github.com/supabase/supabase/commit/c006499d481a55bf5911dde57299442218b897bb", + "commit_message": "Add Enterprise Terms v4 (effective October 5, 2026) (#51106)\n\n\n_Requested by **Nicole Kramer** \u00b7 [Slack\nthread](https://supabase.slack.com/archives/C0161K73J1J/p1790784371448999)_\n\n## Problem\n\nThe Enterprise SaaS Subscription Agreement at `/enterprise-terms` needed\na new version reflecting legal's latest draft, which introduces a\n\"Supplemental Terms\" defined term, a standalone \"Supabase\"\ncontracting-entity definition (to support marketplace purchases), a new\nBeta Releases warranty carve-out, and related marketplace billing/refund\nlanguage.\n\n## Solution\n\nBefore: `/enterprise-terms` had three versions (v1\u2013v3), with v3 dated\nAugust 1, 2026, and no concept of \"Supplemental Terms\" anywhere in the\nagreement.\n\nAfter: adds **Version 4, effective October 5, 2026** as the newest entry\nin the page's `versions` array (v1\u2013v3 untouched):\n\n- `apps/www/data/legal/enterprise-terms/v4.mdx` \u2014 new versioned MDX,\ntranscribed from legal's source document and following this directory's\nexisting formatting conventions (bold section numbers/defined terms,\n`##`/`###` headings, no frontmatter or h1 \u2014 the h1 is rendered by\n`PageHeader`).\n- `apps/www/pages/enterprise-terms.tsx` \u2014 imports `v4.mdx` and adds it\nto the front of the `versions` array with `effectiveDate: 'October 5,\n2026'`.\n\nHow: the new v4 text is a faithful transcription of legal's draft onto\nthe existing v3 structure, so the diff is easy to review against v3 \u2014\nthe substantive additions are the \"Supabase\" entity definition (1.9),\nthe \"Supplemental Terms\" defined term (1.13) and its references in\nSection 2.1 (license scope) and Section 14.1 (order of precedence), a\nnew Section 10.5 (Beta Releases), and marketplace-related payment/refund\nlanguage in Section 5.1. The \"Supplemental Terms\" defined term is a live\nmarkdown link to the new `/legal/customer-resources/supplemental-terms`\npage (shipped separately in #51100) at its point of definition (Section\n1.13), matching how the source document hyperlinks it.\n\n## Review instructions\n\n1. Open the `zone-www-dot-com` preview's `/enterprise-terms` page and\nconfirm the version selector defaults to \"Version 4 \u2014 October 5, 2026\".\n2. Confirm Section 1.13 \"Supplemental Terms\" renders as a live link to\n`/legal/customer-resources/supplemental-terms`.\n3. Confirm Version 3 (and v1\u2013v2) still render unchanged via the version\nselector.\n\n## Checklist\n\n- [x] I have read\n[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)\n- [ ] N/A \u2014 no docs topic edited (this is versioned legal content, not\n`apps/docs`)\n\n---\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nhttps://claude.ai/code/session_01K2vqszbsJiMJPABAnLMgaC\n\n---------\n\nCo-authored-by: Claude ", + "subject": "Add Enterprise Terms v4 (effective October 5, 2026) (#51106)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T09:06:49.000+11:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "7fd1586bc18ac260475b6cefd9baa9aca3cc0eeb", + "commit_url": "https://github.com/leandersabel/solvent/commit/7fd1586bc18ac260475b6cefd9baa9aca3cc0eeb", + "commit_message": "An administrator's password card can no longer be edited while the change runs (#427)\n\nCloses #381\n\nWhile an administrator's password change runs, the Your password card\nnow goes quiet: its fields, Show toggles and button are disabled until\nthe server answers, so nothing can be typed and no second change can\nstart. This matches the vault owner's Change password card.\n\n
\nTechnical\n\n- `passwordCard()` in `solvent/static/js/page-admin.js` gets the\n`quiet()` that `changePasswordCard()` in `view-settings.js` has. It\ndisables every input and button in the fields while working and keeps\nthe button disabled, and re-enables them after the answer.\n- `spec/features/admin-invites.md`: criterion 58.\n- Tests: a held change in `tests/browser/parts/admin.mjs`, and the\nreviewer's `tests/browser/parts/admin-review-working.mjs`.\n\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "An administrator's password card can no longer be edited while the change runs (#427)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T03:41:38.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "LiamBMX/joshymc-plugin", + "repo_url": "https://github.com/LiamBMX/joshymc-plugin", + "commit_sha": "df706b6d1ba25da64a57e35e92a35eab3cf00932", + "commit_url": "https://github.com/LiamBMX/joshymc-plugin/commit/df706b6d1ba25da64a57e35e92a35eab3cf00932", + "commit_message": "feat(staff): /sj toggle for private silent join/leave notifications (#1063) (#1064)\n\nWhen a vanished or joshymc.silentjoin player joins or leaves, other\nonline joshymc.silentjoin staff with /sj on (default) get a private\n[Silent Join]/[Silent Leave] line. The preference is a hidden, cached\nplayer setting, so it persists by UUID across reconnects and restarts.\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 5.5 ", + "subject": "feat(staff): /sj toggle for private silent join/leave notifications (#1063) (#1064)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T03:39:46.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "mazyu36/aws-oss-update", + "repo_url": "https://github.com/mazyu36/aws-oss-update", + "commit_sha": "687d970832edea7053df502a15f02edb3cea1a5f", + "commit_url": "https://github.com/mazyu36/aws-oss-update/commit/687d970832edea7053df502a15f02edb3cea1a5f", + "commit_message": "feat: add bedrock-agentcore-sdk-python v1.24.1 release article (#92)\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.7 ", + "subject": "feat: add bedrock-agentcore-sdk-python v1.24.1 release article (#92)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T03:25:56.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 4.7", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "274ebe386f9f33d14fadfda47115e88818b6e738", + "commit_url": "https://github.com/leandersabel/solvent/commit/274ebe386f9f33d14fadfda47115e88818b6e738", + "commit_message": "Screen readers name each value field on Update values by its holding (#426)\n\nCloses #197\n\nA screen reader now names each value field on Update values by its\nholding, such as \"Mortgage value\", the way the rate fields already read\n\"Gold, troy ounce rate\".\n\n
\n\n- `solvent/static/js/view-sweep.js`: the sweep row's quantity input\ncarries `aria-label` of the holding's name plus \" value\", set through\n`el`, which uses `setAttribute`, so the decrypted name never renders as\nmarkup.\n- `spec/features/record-snapshot.md`: Update values, Layout, states the\nfield's name. New criterion 105.\n- Tests: a check in `tests/browser/parts/update-values.mjs`, and the\nreviewer's `tests/browser/parts/update-values-review-field-names.mjs`,\nwhich reads the computed accessible name on today's sweep, a new and a\nreopened recording (archived holding included), after Record, at phone\nwidth, and for a name holding markup. Both fail on `master`.\n\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Screen readers name each value field on Update values by its holding (#426)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T03:14:46.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "d8532c2010b1eb14c023a1c0851b4f00f1015dd1", + "commit_url": "https://github.com/leandersabel/solvent/commit/d8532c2010b1eb14c023a1c0851b4f00f1015dd1", + "commit_message": "Lists of names in a sentence read \"A, B and C\" (#425)\n\nCloses #196\n\nThe delete confirmation for a recording now names the units it moves as\n\"USD, XAU-ozt and XAG-ozt\" instead of chaining them with \"and\". Every\nother list of names in a sentence reads the same way: the archived\nholdings and what a partial delete keeps on a recording, the units whose\nprices were not updated when recording or updating values, and the\nnotice after leaving with unsaved changes.\n\n
\nTechnical\n\n- `listed()` in `solvent/static/js/dom.js` joins names as \"A\", \"A and\nB\", \"A, B and C\". `view-recording.js`, `view-forms.js`,\n`view-holding-form.js`, `view-sweep.js` and `app.js` use it in place of\n`join(', ')` and `join(' and ')`.\n- The verb already agreed with the count on `master` (\"1 holding ...\nmoves\").\n- `spec/design-system.md`, Figures, gains the rule.\n`spec/features/record-snapshot.md` updates the leave notice copy and\nadds criterion 104.\n- Tests: `tests/browser/parts/recording-detail-units.mjs`, and\nreviewer's `*-review-names.mjs` parts for Recording detail, Snapshot\nentry, Update values and Account detail.\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Lists of names in a sentence read \"A, B and C\" (#425)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T02:46:53.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "MarwanMoh11/Gymtrack", + "repo_url": "https://github.com/MarwanMoh11/Gymtrack", + "commit_sha": "108d6d1baa6e5c622a274efa6cabb9fef6d757ea", + "commit_url": "https://github.com/MarwanMoh11/Gymtrack/commit/108d6d1baa6e5c622a274efa6cabb9fef6d757ea", + "commit_message": "Port the headless watch-command and widget scripts to Swift Testing and delete them (#40)\n\n* Port the ten headless watch-command and widget scripts to Swift Testing and delete them\n\nPart 2 of #6. The scripts each compiled a slice of the app against stubs, and\nthree of those stubs behaved differently from the app: acceptWatchWorkout always\nlinked, discardOrphanWorkout always succeeded, and publishHeadless recorded\nevery call. The new tests run the real code in the hosted app.\n\nWatchCommandCenter gains one seam: its Health save, backfill, orphan discard and\nphone-workout note go through `health`, each the real call by default, and the\nHealth task it starts is kept in `healthFollowUp` so a test can await it rather\nthan sleep. HealthKitService has a private init and no store in a test host, so\nwithout it nothing could see what the headless path asked of Health.\n\nThe rig the headless tests drive the center with moves to GymTrackTests/Support\nso later parts can use it. The widget tests take their day from TestClock, so\nthey no longer fail between midnight and 00:18 or on daylight-saving days.\n\nCo-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>\nCo-Authored-By: Claude Opus 5.5 \n\n* Port the three late-log repairs the first pass missed\n\nlate-wrist-log-repairs also checked that a set the phone took back stays taken\nback through the wrist's Finish, before and after the phone's own Finish, and\nthat a late log, its undo and a re-log land in either order. Those blocks were\nleft out of the port; they are tests now, so every assertion of the deleted\nscript has a home.\n\nCo-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>\nCo-Authored-By: Claude Opus 5.5 \n\n---------\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>\nCo-authored-by: Claude Opus 5.5 ", + "subject": "Port the headless watch-command and widget scripts to Swift Testing and delete them (#40)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T02:02:22.000+03:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + }, + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "rpvessoni-sys/Commodities-Radar", + "repo_url": "https://github.com/rpvessoni-sys/Commodities-Radar", + "commit_sha": "1116269d520ec52e188f4b0208fb84e39ef24482", + "commit_url": "https://github.com/rpvessoni-sys/Commodities-Radar/commit/1116269d520ec52e188f4b0208fb84e39ef24482", + "commit_message": "leitura 2026-10-07 (#107)\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 ", + "subject": "leitura 2026-10-07 (#107)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T01:55:43.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "e3f9f4eedd1271e4e6340f979b138cb547646b24", + "commit_url": "https://github.com/leandersabel/solvent/commit/e3f9f4eedd1271e4e6340f979b138cb547646b24", + "commit_message": "A recording no longer says silver or m2 will be filled in after Update (#424)\n\nCloses #195\n\nA recording no longer says a unit nobody publishes, such as silver or\nm2, \"is filled in after Update\". It names a unit as empty only when its\nprice source did not answer for that date.\n\n
\nTechnical\n\n- `view-recording.js`: the missing-price lines keep only units where\n`vault.quotable(unit, date)` holds, and none on a date that is not a\nrecorded day, since a misdated recording has no Update and no source\nprices it.\n- `record-snapshot.md`, Recording detail, States: a unit with no rate\nsource at the date is not named. New criterion 103 (blind).\n- Tests: a check in `recording-detail.mjs`, and the reviewer's\n`recording-detail-review-unpriced.mjs`.\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "A recording no longer says silver or m2 will be filled in after Update (#424)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T01:47:43.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "testing", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "MarwanMoh11/Gymtrack", + "repo_url": "https://github.com/MarwanMoh11/Gymtrack", + "commit_sha": "efec2a6b4a9030101d434033759786100255bc4a", + "commit_url": "https://github.com/MarwanMoh11/Gymtrack/commit/efec2a6b4a9030101d434033759786100255bc4a", + "commit_message": "Give the Library's first open a minute in the UI tests, so a busy CI simulator stops failing them (#38)\n\nTwo pull requests that never touched the Library went red in ui-tests\nbecause its title, and in the other run its exercise count, missed the\nten-second wait after the tab was tapped. Measured on an idle runner, the\napp spends about half a second building the screen (the full-library\nsearch is under ten milliseconds of that), and the screen appears about\nfour and a half seconds after the tap, up to a second behind the other\ntabs. The failed runs had a simulator that took 45 seconds to launch and\n36 for one accessibility snapshot, so the slowest tab was the one to run\nout of time.\n\nThe three waits for the first thing on the Library now allow a minute,\nwhich outlasts a snapshot that slow. Every assertion is unchanged, and a\nLibrary that never opens still fails.\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 5.5 \nCo-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>", + "subject": "Give the Library's first open a minute in the UI tests, so a busy CI simulator stops failing them (#38)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T01:46:24.000+03:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "MarwanMoh11/Gymtrack", + "repo_url": "https://github.com/MarwanMoh11/Gymtrack", + "commit_sha": "58c60b60ba0674aedd26471252f196d438b6acee", + "commit_url": "https://github.com/MarwanMoh11/Gymtrack/commit/58c60b60ba0674aedd26471252f196d438b6acee", + "commit_message": "Keep the unit-test host's window empty, so RootView's launch work never resets what a test set up (#37)\n\nA unit-test host already skipped configureServices so the tests own the\nsingletons, but its window still showed RootView. That view's launch work\nthen ran against the host's empty in-memory store whenever the window\nappeared: setCustom([]) and the hidden list on the shared catalog, the\nwatch link's screen handler, the watch bridge, the widgets and Health.\nLanding after a test had set one of those up would change what it saw.\n\nThe host now shows nothing in its window. A real launch and a UI-test\nlaunch still show RootView, and the UI tests keep proving it.\n\nCloses #8\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>\nCo-authored-by: Claude Opus 5.5 ", + "subject": "Keep the unit-test host's window empty, so RootView's launch work never resets what a test set up (#37)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T01:29:38.000+03:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "MarwanMoh11/Gymtrack", + "repo_url": "https://github.com/MarwanMoh11/Gymtrack", + "commit_sha": "18e8d29ea74cfd1884a07c29ffd9834b8d78d898", + "commit_url": "https://github.com/MarwanMoh11/Gymtrack/commit/18e8d29ea74cfd1884a07c29ffd9834b8d78d898", + "commit_message": "Send a Start from the watch live instead of behind a queued request for the mirror (#31)\n\nThe wrist queued a request for the mirror whenever it could not send it live:\nat launch, on a wrist raise, on a return to range, and whenever a live send\nfailed. While anything sat in that queue, every later command went into it\ntoo, a Start included, and the system delivers the queue when it chooses. So\na Start tapped after any of those waited there instead of going live: the\nwatch sat on \"Starting\" and gave up, and the phone began the workout whenever\nthe queue finally arrived. The request the idle screen sends three seconds\nafter a Start, to recover a lost reply, was queued behind it the same way, so\nit never recovered anything.\n\nA request for the mirror now goes live or not at all, as a live heart-rate\nreading already did, and holds nothing up. A Start waits in the queue only\nbehind the end of the last workout, since ahead of it the phone would answer\nwith the session the wrist has just closed. Everything else keeps the order\nit was tapped in. The rule lives in WatchCommandRouting so it can be tested\nwithout a paired phone.\n\nCloses #20\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>\nCo-authored-by: Claude Opus 5.5 ", + "subject": "Send a Start from the watch live instead of behind a queued request for the mirror (#31)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T01:26:44.000+03:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "7d9a89c1290be64700e24e3a44fc0afa3374fbc7", + "commit_url": "https://github.com/leandersabel/solvent/commit/7d9a89c1290be64700e24e3a44fc0afa3374fbc7", + "commit_message": "A typed price on a line nobody publishes a price for no longer says there is no price (#421)\n\nCloses #193\n\nWhen you type a price into a rate line for a unit nobody publishes a\nprice for, the line now reads \"Typed by you\" and only says why the price\nis yours to set. It no longer also says \"No price for m2 yet.\", how old\nthe last price is, or asks for a price. The same goes for a line dated\nbefore a unit's published prices begin.\n\n
\nTechnical\n\n- `solvent/static/js/view-sweep.js`, `line.describe`: in the `early` and\n`!quotable` branches, a changed line takes precedence and shows only\n`earlyCopy()` or `ownCopy()`.\n- `spec/features/record-snapshot.md`, Screens: a statement for a typed\nprice on a line with no rate source at this date. Criteria 16 and 17\ncover it.\n- Tests: a new check in `tests/browser/parts/update-values.mjs`, and the\nreviewer's `tests/browser/parts/update-values-review-typed.mjs`.\n\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "A typed price on a line nobody publishes a price for no longer says there is no price (#421)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T01:21:55.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "202db387d2bda0b515e12953711b46e6221d32ae", + "commit_url": "https://github.com/leandersabel/solvent/commit/202db387d2bda0b515e12953711b46e6221d32ae", + "commit_message": "Screen readers name the Password and Confirm password fields when registering (#420)\n\nCloses #191\n\nOn both registration forms, a screen reader now names the Password and\nConfirm password fields by the label beside them. Username and Main\ncurrency were already named.\n\n
\nTechnical\n\n- `solvent/static/js/register-form.js`: the two password inputs get ids\n`register-password` and `register-confirm`, and their labels point at\nthem with `for`.\n- `spec/features/register.md`: new acceptance criterion 51.\n- Tests: a check in `tests/browser/parts/register.mjs` that each field's\nlabel names it, and the reviewer's\n`tests/browser/parts/register-review-names.mjs`, which reads the names\nfrom Chrome's accessibility tree. Both fail on `master` for the two\npassword fields.\n- Main currency got its label in #402. The same unlinked labels on the\nadministrator's and Settings screens are #388 and #385.\n\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Screen readers name the Password and Confirm password fields when registering (#420)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T00:53:47.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/electron", + "repo_url": "https://github.com/electron/electron", + "commit_sha": "6abd6a31bf2f9686420e7c8e3e89815fd3ae8abc", + "commit_url": "https://github.com/electron/electron/commit/6abd6a31bf2f9686420e7c8e3e89815fd3ae8abc", + "commit_message": "test: run WebContentsView focusOnNavigation and shell.openExternal specs serially (#54662)\n\n* test: wait for focus event in WebContentsView focusOnNavigation spec\n\nThe WebContentsView focusOnNavigation block was not tagged serial, unlike\nthe equivalent block in api-web-contents.spec.ts. On macOS another\nparallel worker (notably the shell.openExternal specs, which bring the\ndefault browser to the front) can take app activation away mid-test.\nThe window then stops being key, ReadyToCommitNavigation skips focusing\nbecause the owner window is inactive, and isFocused() returns false.\n\nRun the block in the serial phase, and wait for the webContents 'focus'\nevent after navigating instead of checking isFocused() as soon as\nloadURL resolves.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \nClaude-Session: https://claude.ai/code/session_01X1mwQWDtyUGtjT3hFLoqms\n\n* test: run shell.openExternal specs serially\n\nOn macOS the shell.openExternal specs launch the default browser and bring\nit to the front. While they ran in the parallel phase, that took app\nactivation away from focus-sensitive specs in other workers (for example\nthe WebContentsView focusOnNavigation spec on macOS x64). Run them in the\nserial phase so nothing else is running when the browser activates.\n\nCo-Authored-By: Claude Opus 5.5 (1M context) \nClaude-Session: https://claude.ai/code/session_01X1mwQWDtyUGtjT3hFLoqms\n\n---------\n\nCo-authored-by: Claude ", + "subject": "test: run WebContentsView focusOnNavigation and shell.openExternal specs serially (#54662)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T00:48:41.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5 (1M context)", + "email": "noreply@anthropic.com" + }, + { + "name": "Claude Opus 5.5 (1M context)", + "email": "noreply@anthropic.com" + }, + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "5c36a6980aa8ebb875fd5b7ea7fbf1e9db2abf79", + "commit_url": "https://github.com/leandersabel/solvent/commit/5c36a6980aa8ebb875fd5b7ea7fbf1e9db2abf79", + "commit_message": "Product description says a price's source is shown on its recording, not on a holding's list of values (#419)\n\nCloses #188\n\nNothing in the app changes. Two descriptions of the product said a\nholding's own list of values shows the price on each date and where it\ncame from. The app shows the value, its figure in your main currency and\na link to that day's recording, where the price and its source are. Both\ndescriptions now say so.\n\n
\nTechnical part\n\n- `spec/features/rate-lookup.md`, \"Where you meet a price\": drops the\nholding's history, which shows converted figures but never a price or\nits source.\n- `spec/features/record-snapshot.md`, the \"No screen of nothing but\nprices\" bullet: provenance points to Recording detail instead of the\nholding's page.\n- Both now agree with `spec/features/manage-accounts.md`, Account detail\n(\"No Rate, Source or price-date column\").\n- No code, test or acceptance criterion changes. `reviewer` found\nnothing.\n\n
\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Product description says a price's source is shown on its recording, not on a holding's list of values (#419)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T00:29:50.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Comfy-Org/ComfyUI_frontend", + "repo_url": "https://github.com/Comfy-Org/ComfyUI_frontend", + "commit_sha": "7348cd011b54db9497b7ecab755113b602557013", + "commit_url": "https://github.com/Comfy-Org/ComfyUI_frontend/commit/7348cd011b54db9497b7ecab755113b602557013", + "commit_message": "feat(website): add CTAs and footer link to Nano Banana 2.1 page (#20370)\n\n\n_Requested by **June** \u00b7 [Slack\nthread](https://comfy-organization.slack.com/archives/C0B9ZNZFZB8/p1791330664897469)_\n\n## Summary\n\n**Before:** The /nano-banana page showed the intro copy and badges with\nno buttons under it, so a visitor had no direct way to run the model or\nopen the guide. The footer Models column had no Nano Banana 2.1 entry.\n\n**After:** Two buttons sit below the intro copy: RUN NANO BANANA 2.1\n(primary, opens Comfy Cloud with the Nano Banana 2.1 text-to-image\ntemplate) and READ THE GUIDE (secondary, opens the Comfy Router guide\nfor Nano Banana 2.1 in the docs). Both open in a new tab. The footer\nModels column now lists Nano Banana 2.1 and links to /nano-banana.\n\nHow: the page already supports hero buttons (same as ChatGPT Images\n2.5), so this sets `primaryCta` and `secondaryCta` on the Nano Banana\nhero data and adds `en` and `zh-CN` labels. The run link carries the\nsame utm params as the page's existing Cloud link. The footer entry\nreuses the existing `routes.nanoBanana` route with a new\n`footer.nanoBanana` string in `en` and `zh-CN`.\n\n## Verification\n\n- Localization: `en` and `zh-CN` strings added for both buttons and the\nfooter link. The `/zh-CN/nano-banana` page already exists, so no new\npage twin was needed. The zh-CN button labels are \"\u8fd0\u884c Nano Banana 2.1\"\nand \"\u67e5\u770b\u6559\u7a0b\", copied from the ChatGPT Images 2.5 page wording; worth a\nnative check.\n- Tests: `vitest run` on `src/templates/model-launch` and\n`src/components/common` (219 passed); `pnpm typecheck:website`, `pnpm\n--filter @comfyorg/website format:check` and eslint on the changed files\nare clean.\n- Not run: e2e and screenshots (no browser in this environment); see the\ndeploy preview for the visual check.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nhttps://claude.ai/code/session_01BBFcxj8fzUA7Dbvrnm69RP\n\n\n---\n_Generated by [Claude\nCode](https://claude.ai/code/session_01BBFcxj8fzUA7Dbvrnm69RP)_\n\nCo-authored-by: Claude ", + "subject": "feat(website): add CTAs and footer link to Nano Banana 2.1 page (#20370)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T00:27:26.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "5b1cebebc0b3fa7322b58ff8c2831a4da37bcbbd", + "commit_url": "https://github.com/leandersabel/solvent/commit/5b1cebebc0b3fa7322b58ff8c2831a4da37bcbbd", + "commit_message": "A used invite shows the day it was used and links its username to Accounts (#418)\n\nCloses #187\n\nA used invite now says who used it and on which day, for example \"Used\nsarah on 14.03.2026\". Clicking the name opens Accounts at that person's\nrow. When the account has since been removed, the row reads \"account\nremoved\" with the day, and nothing links.\n\n
\nTechnical\n\n- `solvent/static/js/page-admin.js`: the Status cell reads chip,\nusername, \" on \" and the day in the Created column's format. The\nusername is a `link-button`, which switches to Accounts and passes the\nusername to `accounts()`. The matching row's username cell gets\n`tabindex=\"-1\"`, is scrolled into view and focused, by comparing fetched\ndata, never a selector built from the username. An account removed while\nInvites was open is absent, and nothing is focused.\n- `solvent/static/css/tokens.css`: the focused username cell draws the\npetrol-600 focus ring, and the link button keeps a 44px target at phone\nwidth.\n- `spec/features/admin-invites.md`: the Status bullet states the day,\nthe link and the focus, and that the username starts the next line where\nit does not fit beside the chip (at 320 and 901px the space beside the\nchip is 79px). Criterion 57 is new, and 51, 53 and 57 name the\nreviewer's part.\n- Tests: `tests/browser/parts/admin.mjs`,\n`tests/browser/parts/admin-phone.mjs` (a username button may split, as\nthe page lets a username break anywhere), and the reviewer's\n`tests/browser/parts/admin-review-used.mjs`.\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "A used invite shows the day it was used and links its username to Accounts (#418)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-07T00:03:27.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "repo_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "commit_sha": "97535707af647f6600690a0113a9ed1695a3b81f", + "commit_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io/commit/97535707af647f6600690a0113a9ed1695a3b81f", + "commit_message": "Note pictures (#620): suite reports a refused insert as a check, not a crash\n\nCo-Authored-By: Claude Sonnet 5.5 ", + "subject": "Note pictures (#620): suite reports a refused insert as a check, not a crash", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:56:32.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "repo_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "commit_sha": "1eaa00c6121a09663a77b9cdf021481a86490684", + "commit_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io/commit/1eaa00c6121a09663a77b9cdf021481a86490684", + "commit_message": "Note pictures (#620): Storage Rules candidate, browser suite, owner-only fetch\n\nCo-Authored-By: Claude Sonnet 5.5 ", + "subject": "Note pictures (#620): Storage Rules candidate, browser suite, owner-only fetch", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:45:48.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "repo_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "commit_sha": "89da8f0ec7c4da08c06549cbe9dafc8dfbb725a4", + "commit_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io/commit/89da8f0ec7c4da08c06549cbe9dafc8dfbb725a4", + "commit_message": "Note pictures (#620): resize + upload module, Storage stub, \ud83d\uddbc button, pictures shown when a Note is read\n\nCo-Authored-By: Claude Sonnet 5.5 ", + "subject": "Note pictures (#620): resize + upload module, Storage stub, \ud83d\uddbc button, pictures shown when a Note is read", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:41:51.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "repo_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "commit_sha": "ac72f1b78c9f7003cd5e799910430aeaaaabf2d9", + "commit_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io/commit/ac72f1b78c9f7003cd5e799910430aeaaaabf2d9", + "commit_message": "Note pictures (#620): sanitiser keeps data-mmsa-image paths only; path + step-down module; pure checks\n\nCo-Authored-By: Claude Sonnet 5.5 ", + "subject": "Note pictures (#620): sanitiser keeps data-mmsa-image paths only; path + step-down module; pure checks", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:39:39.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/node-abi", + "repo_url": "https://github.com/electron/node-abi", + "commit_sha": "927c21407b3dd0754f88a7a07bef4ad6bfdde65f", + "commit_url": "https://github.com/electron/node-abi/commit/927c21407b3dd0754f88a7a07bef4ad6bfdde65f", + "commit_message": "ci: set cache-mode on release workflows (#306)\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#306)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:25:53.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/node-minidump", + "repo_url": "https://github.com/electron/node-minidump", + "commit_sha": "654e3eae3286d6826e5ce64cc8d4c5c054313368", + "commit_url": "https://github.com/electron/node-minidump/commit/654e3eae3286d6826e5ce64cc8d4c5c054313368", + "commit_message": "ci: set cache-mode on release workflows (#163)\n\nAdd top-level `cache-mode: none` to release.yml so the release run\n(and the test/build workflows it calls via `uses:`) never reads from\nor writes to the GitHub Actions cache.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#163)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:25:41.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/github-app-auth", + "repo_url": "https://github.com/electron/github-app-auth", + "commit_sha": "a8aef7be943f94afe0706a8ff2b9dc880e6ab3f4", + "commit_url": "https://github.com/electron/github-app-auth/commit/a8aef7be943f94afe0706a8ff2b9dc880e6ab3f4", + "commit_message": "ci: set cache-mode on release workflows (#66)\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#66)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:25:29.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/symbolicate-mac", + "repo_url": "https://github.com/electron/symbolicate-mac", + "commit_sha": "4fab0e94dc3e121ea94f4df4045c57cea19cb816", + "commit_url": "https://github.com/electron/symbolicate-mac/commit/4fab0e94dc3e121ea94f4df4045c57cea19cb816", + "commit_message": "ci: set cache-mode on release workflows (#121)\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#121)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:25:21.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/chromedriver", + "repo_url": "https://github.com/electron/chromedriver", + "commit_sha": "d2dd13a576b70186725e511f85e4d8839884de18", + "commit_url": "https://github.com/electron/chromedriver/commit/d2dd13a576b70186725e511f85e4d8839884de18", + "commit_message": "ci: set cache-mode on release workflows (#193)\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#193)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:25:15.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/devtron", + "repo_url": "https://github.com/electron/devtron", + "commit_sha": "ee090d2f75f96827944cb544a6de05fb8d52fe61", + "commit_url": "https://github.com/electron/devtron/commit/ee090d2f75f96827944cb544a6de05fb8d52fe61", + "commit_message": "ci: set cache-mode on release workflows (#378)\n\nAdd top-level `cache-mode: none` to release.yml so release runs never\nread from or write to the Actions cache, regardless of per-step\nsettings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#378)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:24:59.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/rebuild", + "repo_url": "https://github.com/electron/rebuild", + "commit_sha": "d62d5a2c9dbee5dd27234490f695412d36ca65e2", + "commit_url": "https://github.com/electron/rebuild/commit/d62d5a2c9dbee5dd27234490f695412d36ca65e2", + "commit_message": "ci: set cache-mode on release workflows (#1307)\n\nAdd top-level `cache-mode: none` to release.yml and docs.yml so the\nrelease and docs-publish paths never read from or write to the Actions\ncache, regardless of per-step settings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#1307)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:24:57.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/trop", + "repo_url": "https://github.com/electron/trop", + "commit_sha": "4dcf8c892d093cd57b818efe503446b875e77e2a", + "commit_url": "https://github.com/electron/trop/commit/4dcf8c892d093cd57b818efe503446b875e77e2a", + "commit_message": "feat: request original approvers on manual backports of claude[bot] PRs (#437)\n\nManual backports request review from the original PR's author and the\noptional default review team. When claude[bot] opens both the original\nPR and its backport, nobody is requested. When the original PR's author\nis claude[bot], request the users whose latest review on it is an\napproval instead, skipping bots and the backport's author, and keeping\nthe existing write-access check.\n\n\nClaude-Session: https://claude.ai/code/session_01ViXXtuJhgzS1RHhwnk26N5\n\nCo-authored-by: Claude ", + "subject": "feat: request original approvers on manual backports of claude[bot] PRs (#437)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:23:43.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/rebuild", + "repo_url": "https://github.com/electron/rebuild", + "commit_sha": "3e6bfd14b4d85008ee7cab79a0f9006d9e5aa57a", + "commit_url": "https://github.com/electron/rebuild/commit/3e6bfd14b4d85008ee7cab79a0f9006d9e5aa57a", + "commit_message": "fix: include target platform in .forge-meta rebuild marker (#1319)\n\nThe `.forge-meta` marker only recorded `${arch}--${ABI}`, so once a module\nhad been rebuilt for one platform, a later run targeting a different\nplatform (via the `platform` option) in the same node_modules would skip\nit and keep the previous platform's binary. Record the platform as well.\n\nExisting markers no longer match, so each module is rebuilt once after\nupgrading.\n\nRefs: electron-userland/electron-builder#10031\n\n\nClaude-Session: https://claude.ai/code/session_01NEnGhaCaJpaCKqnpBqpWJs\n\nCo-authored-by: Claude ", + "subject": "fix: include target platform in .forge-meta rebuild marker (#1319)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:23:11.000+01:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "c7de0dca15476e6990a1c9bc7203df1dad4d8814", + "commit_url": "https://github.com/leandersabel/solvent/commit/c7de0dca15476e6990a1c9bc7203df1dad4d8814", + "commit_message": "Adding a unit shows Rate lookup, held at Entered by hand with the reason (#417)\n\nCloses #186\n\nAdding a unit now shows the Rate lookup setting. It is held at \"Entered\nby hand\", with the reason beside it, because every unit a price source\nserves is already in the list. A unit added without a source, such as\nthe currency XTS, stays on \"Entered by hand\" in the unit list and cannot\nbe switched to automatic.\n\n
\nTechnical part\n\n- `solvent/static/js/page-admin.js`: the Add a unit form gets a disabled\nRate lookup `select` at `false` with the no-source hint. The reason text\nis one constant shared with the table rows. The `POST` still sends\n`lookup: false`.\n- The server side, `hasAdapter` from the registry and `lookup: true`\nrefused without an adapter, already held on `master` since #350. The\nreviewer's tests now pin it for added units.\n- `spec/features/admin-invites.md`: the form's Rate lookup line and\ncriterion 56.\n- Tests: `tests/browser/parts/admin.mjs`,\n`tests/browser/parts/admin-review-unit-lookup.mjs`, four tests in\n`tests/test_review_rate_lookup.py`.\n\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Adding a unit shows Rate lookup, held at Entered by hand with the reason (#417)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T23:04:02.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "0977fdda18fa308555efac86b8011e0ab3beb3b0", + "commit_url": "https://github.com/leandersabel/solvent/commit/0977fdda18fa308555efac86b8011e0ab3beb3b0", + "commit_message": "Adding a metal is refused unless its code names a weight (#416)\n\nCloses #185\n\nAn administrator can no longer add a metal whose code names no weight.\nThe add form refuses it and shows the expected shape: `-ozt` or\n`-g`, such as `XAU-ozt`. A metal stored without a weight moves to\nRetired and cannot be restored. Holdings already measured in it keep\ntheir unit and their prices.\n\n
\nTechnical\n\n- `solvent/rates.py`: `POST /api/admin/symbols` holds a metal to\n`METAL_PATTERN`, `^(?=.{1,16}$)[A-Z0-9][A-Z0-9._]*-(ozt|g)$`. Both\npatterns now use `fullmatch`, because `re.match` with `$` admits a\ntrailing newline. `PATCH` with `retired: false` on a weightless metal is\na Bad Request.\n- `solvent/db.py`: every start retires the metal rows that fail\n`METAL_PATTERN`.\n- `solvent/static/js/page-admin.js`: refusal copy for a metal names the\nshape. A retired weightless metal has Restore disabled, with its reason\nbeside it.\n- Spec: `rate-lookup.md` (Maintaining the table, Seeded symbols, SSRF\nand egress hardening, criteria 81 and 82) and `admin-invites.md` (Units,\nits error states, criteria 54 and 55).\n- Tests: `tests/test_rates.py`, `tests/browser/parts/admin.mjs`, and the\nreviewer's `tests/test_review_rate_lookup.py` and\n`tests/browser/parts/admin-review-units.mjs`.\n- Filed outside this change: #414, #415.\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Adding a metal is refused unless its code names a weight (#416)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:31:41.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/windows-installer", + "repo_url": "https://github.com/electron/windows-installer", + "commit_sha": "f65241d28d0e139ca6404e4c4936fcb2536d4499", + "commit_url": "https://github.com/electron/windows-installer/commit/f65241d28d0e139ca6404e4c4936fcb2536d4499", + "commit_message": "ci: set cache-mode on release workflows (#616)\n\nAdd top-level `cache-mode: none` to release.yml so the release run (and\nthe test.yml jobs it calls) never reads from or writes to the Actions\ncache, regardless of per-step cache settings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#616)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:25:44.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/mksnapshot", + "repo_url": "https://github.com/electron/mksnapshot", + "commit_sha": "dfc0551f369257505e99db5974d64ae8e25852ca", + "commit_url": "https://github.com/electron/mksnapshot/commit/dfc0551f369257505e99db5974d64ae8e25852ca", + "commit_message": "ci: set cache-mode on release workflows (#179)\n\nAdd top-level `cache-mode: none` to release.yml so release runs never\nread from or write to the Actions cache, regardless of per-step\nsettings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#179)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:25:33.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/typescript-definitions", + "repo_url": "https://github.com/electron/typescript-definitions", + "commit_sha": "caba32f6f031cf48b346c79a3def8e4c46dd748f", + "commit_url": "https://github.com/electron/typescript-definitions/commit/caba32f6f031cf48b346c79a3def8e4c46dd748f", + "commit_message": "ci: set cache-mode on release workflows (#357)\n\nAdd top-level `cache-mode: none` to release.yml so the release run (and\nthe test.yml jobs it calls) never reads from or writes to the Actions\ncache, regardless of per-step cache settings.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#357)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:25:32.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/windows-sign", + "repo_url": "https://github.com/electron/windows-sign", + "commit_sha": "4b28ebf82d8096c06a57faa50e1ce02b9201fb35", + "commit_url": "https://github.com/electron/windows-sign/commit/4b28ebf82d8096c06a57faa50e1ce02b9201fb35", + "commit_message": "ci: set cache-mode on release workflows (#124)\n\n\n_Requested by **David Sanders** \u00b7 [Slack\nthread](https://electronhq.slack.com/archives/C0BERTA8EKW/p1789070712587299)_\n\n**Before:** The `Release` workflow (push to `main`) and the `Publish\ndocumentation` workflow (tag push) had no workflow-level cache policy.\nEvery job in them, including the `test` job that `Release` calls via\n`uses: ./.github/workflows/test.yml`, could read from and write to the\nGitHub Actions cache if any step asked for it; the only thing keeping\nthem cache-free was the per-step `package-manager-cache: false` setting\non `actions/setup-node`.\n\n**After:** Both workflows declare `cache-mode: none` at the top level,\nso no job in a release or docs-publish run can restore or save a cache\nentry regardless of per-step settings. Because `cache-mode` on the\ncaller also caps any reusable workflow it calls, the `test.yml` jobs run\ncache-free when invoked from `Release` (they keep their normal caching\nwhen `test.yml` runs on its own for pull requests). The existing\n`package-manager-cache: false` lines are left in place.\n\nThis uses GitHub's new workflow-level `cache-mode` key, which lets\nrelease paths be made cache-free by policy rather than by convention:\nhttps://github.blog/changelog/2026-09-10-control-github-actions-cache-access-with-cache-mode/\nand\nhttps://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax#cache-mode.\n\n**How:** Adds a commented `cache-mode: none` line after the top-level\n`permissions:` block in `.github/workflows/release.yml` and\n`.github/workflows/docs.yml`, preserving the files' existing CRLF line\nendings. No other lines change; `test.yml` is untouched so PR CI keeps\nits cache.\n\nNote that PR CI does not exercise the release or docs workflows, so the\nfirst release (and first tag push) after merge is the real test. If a\nstep is denied cache access, `actions/cache` and the `@actions/cache`\ntoolkit log a message and continue (a skipped restore behaves as a cache\nmiss, a skipped save is a no-op) rather than failing the job. Local\nvalidation: the files parse as YAML and zizmor 1.30.1 reports no new\nfindings; actionlint 1.7.12 flags `cache-mode` as an unexpected workflow\nkey because its schema predates the feature (this repo does not run\nactionlint in CI).\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nhttps://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\n---\n_Generated by [Claude\nCode](https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd)_\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#124)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:25:24.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/osx-sign", + "repo_url": "https://github.com/electron/osx-sign", + "commit_sha": "222d7906ea13e02c6cfb80893ebd7ef0cff19a8c", + "commit_url": "https://github.com/electron/osx-sign/commit/222d7906ea13e02c6cfb80893ebd7ef0cff19a8c", + "commit_message": "ci: set cache-mode on release workflows (#449)\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#449)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:25:19.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/fuses", + "repo_url": "https://github.com/electron/fuses", + "commit_sha": "e20ea68f6bd06c7c3783a753327829fc58afc344", + "commit_url": "https://github.com/electron/fuses/commit/e20ea68f6bd06c7c3783a753327829fc58afc344", + "commit_message": "ci: set cache-mode on release workflows (#136)\n\nAdd the workflow-level `cache-mode: none` key so release and docs-publish\nruns never read from or write to the Actions cache.\n\n\nClaude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd\n\nCo-authored-by: Claude ", + "subject": "ci: set cache-mode on release workflows (#136)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:25:16.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "electron/build-tools", + "repo_url": "https://github.com/electron/build-tools", + "commit_sha": "32e2253f7c5696d85a77fe19d54d284cf9a62322", + "commit_url": "https://github.com/electron/build-tools/commit/32e2253f7c5696d85a77fe19d54d284cf9a62322", + "commit_message": "fix: include clang-tidy in siso clang toolchain subtree (#910)\n\nsiso uploads the third_party/llvm-build/Release+Asserts:headers filegroup\nas a precomputed subtree and skips any other input under that directory.\nThe electron/clang-tidy rule lists\nthird_party/llvm-build/Release+Asserts/bin/clang-tidy as an explicit\ninput, which only reached the RBE workers because Chromium's glob\nincluded bin/clang-*.\n\nhttps://crrev.com/c/8471431 narrowed that glob to bin/clang-cl,\nbin/clang-cl.exe and bin/clang-[0-9]*, so clang-tidy is now dropped and\nthe remote tidy steps fail with exit 127 (\"clang-tidy: No such file or\ndirectory\"). Add bin/clang-tidy back to the filegroup's includes. This\nis a no-op on older Chromium, where bin/clang-* already matches it.\n\n\nClaude-Session: https://claude.ai/code/session_01V38FjDEdZgMvFpf5Fmp65m\n\nCo-authored-by: Claude ", + "subject": "fix: include clang-tidy in siso clang toolchain subtree (#910)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:23:28.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "repo_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io", + "commit_sha": "92cf0df58065abcc158355c824b3311b386bd012", + "commit_url": "https://github.com/Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.io/commit/92cf0df58065abcc158355c824b3311b386bd012", + "commit_message": "Link previews: put the menu item last so existing menu positions do not move (#619)\n\nCo-Authored-By: Claude Sonnet 5.5 ", + "subject": "Link previews: put the menu item last so existing menu positions do not move (#619)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T22:05:47.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "leandersabel/solvent", + "repo_url": "https://github.com/leandersabel/solvent", + "commit_sha": "5b93540355433455cb66ca9c574c2a0187c32dc4", + "commit_url": "https://github.com/leandersabel/solvent/commit/5b93540355433455cb66ca9c574c2a0187c32dc4", + "commit_message": "Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413)\n\nCloses #184\n\nTyping a price where none is stored for that date no longer asks first.\nThis covers a price typed on the value form over an empty line, a\nproposal or an estimate. When you change a stored price on a recording\nyou reopened, the confirmation leaves out any unit whose change moves no\nholding on that date. When nothing is left to name, it does not open. It\nno longer says \"moves 0 holdings\" or that your net worth changes when it\ndoes not.\n\n
\nTechnical\n\n- `view-forms.js`: the form's price confirmation is gone. Its lines\nnever hold a stored entry, so every save there fills in a missing price,\nas the sweep at a new date does.\n- `view-sweep.js`: `rateChangeCopy` drops an update whose `holdingsIn`\ncount is 0. `saveRates` saves without a dialog when the copy is empty. A\nclear always confirms, because it moves the neighbors' stretch and can\nleave a unit unpriced.\n- Spec: `record-snapshot.md` (The prices line, Changing or clearing a\nrate says what it moves, criterion 30, new criterion 102) and\n`record-rate.md` (The rate-lines save, Editing a captured rate).\n- Tests: `snapshot-entry.mjs` (a proposal and an estimate changed on the\nform ask nothing), a `tests/client/run.mjs` check, and the reviewer's\n`snapshot-entry-review-first-price.mjs` and\n`update-values-review-first-price.mjs`.\n- The sweep's half of the report (filling an empty line on a reopened\nrecording) was already fixed by #325.\n\n
\n\n---------\n\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>", + "subject": "Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T21:49:38.000Z", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + } + ], + "category": "testing", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "bamr87/lifehacker.dev", + "repo_url": "https://github.com/bamr87/lifehacker.dev", + "commit_sha": "b0adedd29cfb6b5bd46166708d045f815ba9a40e", + "commit_url": "https://github.com/bamr87/lifehacker.dev/commit/b0adedd29cfb6b5bd46166708d045f815ba9a40e", + "commit_message": "content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688)\n\nThe `description:` frontmatter was 227 chars; lint_frontmatter.rb's SEO soft\ncap is 160 (warn-only rule `description-too-long`). Rewrote it to 156 chars\nwhile keeping Cass's threat-model irony intact (whitelist holds; the CI\nblacklist \"has a bad night eventually\").\n\nCloses #681\nCloses #686\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.8 ", + "subject": "content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T21:49:02.000-06:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Opus 4.8", + "email": "noreply@anthropic.com" + } + ], + "category": "infra", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "Revokeeee/MyRevoke2.0-AI", + "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI", + "commit_sha": "6cd7803695ba39530268901e63f763edc1c5b5ed", + "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/6cd7803695ba39530268901e63f763edc1c5b5ed", + "commit_message": "build: add stage-editor.ps1 to assemble a self-contained editor folder\n\nBuilds RevokeCraft in Dist and copies the exe, OpenAL32.dll, mono/lib,\nresourses/ and projects/Example into dist/MyRevoke, pruning import\nlibraries, debug info, intermediates and imgui.ini.\n\nCloses #37\n\nCo-Authored-By: Claude Opus 5 ", + "subject": "build: add stage-editor.ps1 to assemble a self-contained editor folder", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T21:07:04.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "JW-Incorporated/swift2", + "repo_url": "https://github.com/JW-Incorporated/swift2", + "commit_sha": "e77a4707b72aab235b8d08c86f66c2f28545ba4f", + "commit_url": "https://github.com/JW-Incorporated/swift2/commit/e77a4707b72aab235b8d08c86f66c2f28545ba4f", + "commit_message": "a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203)\n\nThe blurred era-label chip inside Decode's LockedPayoff painted the\npayoff era's raw accent as text over that same accent at ~15% tint \u2014\n3.93:1 on Midnights/evermore, under WCAG 1.4.3's 4.5:1 floor. The chip\nis colored by the payoff's era rather than the page's, so no\nsurface-calibrated token can guarantee the pairing; this applies #3318's\nproven shape instead: solid accent fill + accentFgFor foreground, the\nsame fix already merged for #3396/#3397/#3411. A source-lock regression\ntest keeps the text-on-self-tint pairing from coming back.\n\nPorts attempt 1 (PR #3751, closed unmerged as superseded by #3704,\nwhich itself died stale) to the component's post-migration home in\npackages/ui.\n\nTier-2: Austin \u2014 build runs\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Fable 5 ", + "subject": "a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T19:25:56.000-07:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Fable 5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "JW-Incorporated/swift2", + "repo_url": "https://github.com/JW-Incorporated/swift2", + "commit_sha": "4cb9d21f736fc5768574a0d9ea9e3c77224f5a1e", + "commit_url": "https://github.com/JW-Incorporated/swift2/commit/4cb9d21f736fc5768574a0d9ea9e3c77224f5a1e", + "commit_message": "test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252)\n\nPhoto Enrichment giving a video-carrying page its own MV still as the\nhero GROWS the promoted set by design, but video-affordance.test.ts\nasserted promoted.toHaveLength(11) \u2014 so every such pass failed a test\nthe seed-only lane is not allowed to fix, and Vault Run 2026-10-05 had\nto revert 6 verified photos (b7fc243b) to ship green. Computing the\nexpected set from the corpus through the public helpers (youtubeFrameId,\nprimaryImageRef, isSubConfirmed) keeps the assertion meaningful (set\nequality, non-empty) while letting the corpus grow. Verified both ways:\npasses at today's 11 and, with b7fc243b applied locally, at 17.\n\nCloses #5192\n\nTier-2: Austin \u2014 build runs\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Fable 5 ", + "subject": "test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T19:18:21.000-07:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Fable 5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "jjhoncv/vitrina", + "repo_url": "https://github.com/jjhoncv/vitrina", + "commit_sha": "d132a1418ca6cd0a365d23d57d65c7aa0e4209bc", + "commit_url": "https://github.com/jjhoncv/vitrina/commit/d132a1418ca6cd0a365d23d57d65c7aa0e4209bc", + "commit_message": "feat(#4): t\u00edtulo SEO y sitemap (#15)\n\nCloses #4\n\nEscenarios en verde:\n- T\u00edtulo para buscadores: `/productos/taza-de-ceramica` \u2192 \u00abTaza de\ncer\u00e1mica | Vitrina\u00bb\n- Sitemap con los productos: `/sitemap.xml` incluye\n`/productos/taza-de-ceramica`\n\nQu\u00e9 cambia:\n- `generateMetadata` en la landing: t\u00edtulo \u00ab | \u00bb y\ndescripci\u00f3n del producto.\n- `app/sitemap.ts`: portada + una URL por producto. Base absoluta desde\n`URL` (Netlify), con fallback a `http://localhost:3000`.\n\nC\u00f3mo probarlo: `npm test && npm run build && npm run e2e`, o abrir\n`/sitemap.xml` y el `` de una landing.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "feat(#4): t\u00edtulo SEO y sitemap (#15)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T18:56:19.000-05:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "jjhoncv/vitrina", + "repo_url": "https://github.com/jjhoncv/vitrina", + "commit_sha": "382de2ad3b6c730eb998e422a8e01d5ee64d5942", + "commit_url": "https://github.com/jjhoncv/vitrina/commit/382de2ad3b6c730eb998e422a8e01d5ee64d5942", + "commit_message": "feat(#3): landing por producto y p\u00e1gina de no encontrado (#14)\n\nCloses #3\n\n## Escenarios en verde\n- \u00abAbrir la landing de un producto\u00bb\n- \u00abProducto que no existe\u00bb\n\n## Qu\u00e9 cambia\n- `/productos/<slug>` con nombre, foto, descripci\u00f3n, precio y proveedor.\n- `notFound()` con p\u00e1gina \u00abProducto no encontrado\u00bb si el slug no existe.\n- La portada enlaza cada producto a su landing.\n\n## C\u00f3mo probarlo\n`npm run e2e`, o `FUENTE_PRODUCTOS=fixture npm run dev` y abrir\n`/productos/taza-de-ceramica` y `/productos/no-existe`.\nLint, typecheck, tests unitarios, build y e2e pasan.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "feat(#3): landing por producto y p\u00e1gina de no encontrado (#14)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T18:51:02.000-05:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "jjhoncv/vitrina", + "repo_url": "https://github.com/jjhoncv/vitrina", + "commit_sha": "b8dcd7b6d5b5966bea48d9680ce7e27cc260a413", + "commit_url": "https://github.com/jjhoncv/vitrina/commit/b8dcd7b6d5b5966bea48d9680ce7e27cc260a413", + "commit_message": "feat(#2): portada con los productos de la hoja (#12)\n\nCloses #2\n\n**Escenario:** \u00abVer el cat\u00e1logo\u00bb\n(`features/fase-1-catalogo-publico.feature`) en verde: la portada\nmuestra Taza de cer\u00e1mica y Libreta A5 con foto, nombre y precio.\n\n**Qu\u00e9 cambia**\n- `lib/productos.ts`: fuente de datos `obtenerProductos()`. Lee la\npesta\u00f1a `productos` con Sheets API + service account; con\n`FUENTE_PRODUCTOS=fixture` usa `mocks/fixtures/productos.json` (ADR\n0001, ADR 0002).\n- Portada `app/page.tsx` con la lista de productos (din\u00e1mica, sin\ncach\u00e9).\n- Playwright levanta el servidor con el fixture.\n\n**C\u00f3mo probarlo:** `npm run lint && npm run typecheck && npm test && npm\nrun build && npm run e2e` (todo pasa; el escenario sale en verde).\n\n**Necesito de Jhonnatan**\n- Service account de Google Cloud con lectura a la hoja y el ID de la\nhoja. Configurar `GOOGLE_SHEET_ID`, `GOOGLE_SERVICE_ACCOUNT_EMAIL` y\n`GOOGLE_PRIVATE_KEY` en las variables de Netlify, y compartir la hoja\ncon ese correo.\n- Ojo: sin esas variables, la portada en staging/producci\u00f3n falla (y con\nella el smoke de inicio). La lectura real de Google no est\u00e1 probada;\nsolo el parseo de filas y el fixture.\n\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>\nCo-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "feat(#2): portada con los productos de la hoja (#12)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "web-flow", + "name": "GitHub", + "email": "noreply@github.com" + }, + "timestamp": "2026-10-06T18:38:06.000-05:00", + "attribution_kind": "author + co-author", + "coauthors": [ + { + "name": "claude[bot]", + "email": "41898282+claude[bot]@users.noreply.github.com" + }, + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "author:claude[bot]" + ] + }, + { + "repo": "AlperenGuntekin/text-expansion-calculator", + "repo_url": "https://github.com/AlperenGuntekin/text-expansion-calculator", + "commit_sha": "6652591cf2ab82277e3606606f21eff087e4945b", + "commit_url": "https://github.com/AlperenGuntekin/text-expansion-calculator/commit/6652591cf2ab82277e3606606f21eff087e4945b", + "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "docs(readme): refresh topics + shotlingo cross-links", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T11:02:25.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "AlperenGuntekin/shotlingo-text-expansion", + "repo_url": "https://github.com/AlperenGuntekin/shotlingo-text-expansion", + "commit_sha": "1a2c40d0aa6ad3312b8bb24b17ecc751277b254f", + "commit_url": "https://github.com/AlperenGuntekin/shotlingo-text-expansion/commit/1a2c40d0aa6ad3312b8bb24b17ecc751277b254f", + "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "docs(readme): refresh topics + shotlingo cross-links", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T11:02:24.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "AlperenGuntekin/shotlingo-screenshot-sizes", + "repo_url": "https://github.com/AlperenGuntekin/shotlingo-screenshot-sizes", + "commit_sha": "fc4054f81216b97585141dbe8b2906b0250a3cd9", + "commit_url": "https://github.com/AlperenGuntekin/shotlingo-screenshot-sizes/commit/fc4054f81216b97585141dbe8b2906b0250a3cd9", + "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "docs(readme): refresh topics + shotlingo cross-links", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T11:02:23.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "AlperenGuntekin/shotlingo-locale-codes", + "repo_url": "https://github.com/AlperenGuntekin/shotlingo-locale-codes", + "commit_sha": "d7a4fbddb291a72a529cb70fcf021277bb26f874", + "commit_url": "https://github.com/AlperenGuntekin/shotlingo-locale-codes/commit/d7a4fbddb291a72a529cb70fcf021277bb26f874", + "commit_message": "docs(readme): refresh topics + shotlingo cross-links\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "docs(readme): refresh topics + shotlingo cross-links", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T11:02:21.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "bamr87/it-journey", + "repo_url": "https://github.com/bamr87/it-journey", + "commit_sha": "c9647284bce3f10e825246b54537189b4d77f4fa", + "commit_url": "https://github.com/bamr87/it-journey/commit/c9647284bce3f10e825246b54537189b4d77f4fa", + "commit_message": "fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back\n\nVerified in ruby:3.4 (the Dockerfile image): with no lockfile and an\nunconstrained `gem 'github-pages'`, a fresh `bundle install` still resolves\ngithub-pages 222 / jekyll 3.9.0 / liquid 4.0.3 and `jekyll build` exits 1.\nWith the floor it resolves github-pages 232 / jekyll 3.10.0 / liquid 4.0.4\nand the build passes. A floor is allowed by fleet policy (no pins, no\nceilings).\n\nRefs bamr87/bamr87#333\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>", + "subject": "fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T08:20:40.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "bamr87/it-journey", + "repo_url": "https://github.com/bamr87/it-journey", + "commit_sha": "e267accca18f53bcda6817a3f5d695a674d448ed", + "commit_url": "https://github.com/bamr87/it-journey/commit/e267accca18f53bcda6817a3f5d695a674d448ed", + "commit_message": "fix(deps): stop committing Gemfile.lock (fleet never-commit policy)\n\nGemfile.lock was tracked despite .gitignore:16. Dependabot's lockfile-only\nbundler PR #751 satisfied a ruby-group bump by downgrading github-pages\n232 -> 222 (liquid 4.0.3, which calls String#tainted?, removed in Ruby 3.2),\nso ci, Jekyll Build Test and dependabot-auto-merge went red every week.\n\n- git rm --cached Gemfile.lock (the .gitignore rule stays)\n- docker-compose.yml comments: the lockfile is local-only, not committed\n- AGENTS.md / copilot-instructions.md: drop the stale \"must be committed\"\n guidance in favour of the fleet policy\n\nRefs bamr87/bamr87#333\n\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>", + "subject": "fix(deps): stop committing Gemfile.lock (fleet never-commit policy)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-06T08:16:41.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Reservaste/frontend", + "repo_url": "https://github.com/Reservaste/frontend", + "commit_sha": "d92cda57f9acc7cbb80b2379ec6be255e6f04c60", + "commit_url": "https://github.com/Reservaste/frontend/commit/d92cda57f9acc7cbb80b2379ec6be255e6f04c60", + "commit_message": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-05T14:39:47.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Reservaste/backend", + "repo_url": "https://github.com/Reservaste/backend", + "commit_sha": "4d0832b913b65b3dc431abf91df3362798638ff4", + "commit_url": "https://github.com/Reservaste/backend/commit/4d0832b913b65b3dc431abf91df3362798638ff4", + "commit_message": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "feat: contacto (email/tel\u00e9fono) del cliente en la ficha del admin (ADR-0050, Issue #5)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-05T14:39:45.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Reservaste/frontend", + "repo_url": "https://github.com/Reservaste/frontend", + "commit_sha": "ad30d3138b9e95e2ccf97d4042b3fa689ff430f5", + "commit_url": "https://github.com/Reservaste/frontend/commit/ad30d3138b9e95e2ccf97d4042b3fa689ff430f5", + "commit_message": "Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6)\n\nCo-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>", + "subject": "Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-05T14:27:42.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Revokeeee/MyRevoke2.0-AI", + "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI", + "commit_sha": "25bb8858b16bd5ff2e80c354a9fc245bc33a456f", + "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/25bb8858b16bd5ff2e80c354a9fc245bc33a456f", + "commit_message": "Separate user projects from the editor's own files\n\nThe editor kept the user's content in its own install folder, so an installed\neditor could not save scenes, and nothing marked which files belong to a game.\n\nAdds Revoke::Project (a <Name>.mrproject YAML file plus its assets folder) with\nNew Project / Open Project in the editor. The content browser, scene save/load\nand drag-and-drop now point at the open project. The renderer shader moves to\nresourses/shaders, and the old assets folder becomes projects/Example.\n\nCloses #34\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>", + "subject": "Separate user projects from the editor's own files", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-04T23:22:27.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "ag-grid/ag-charts", + "repo_url": "https://github.com/ag-grid/ag-charts", + "commit_sha": "4481c93ab0c628923849714725769da9affaa38f", + "commit_url": "https://github.com/ag-grid/ag-charts/commit/4481c93ab0c628923849714725769da9affaa38f", + "commit_message": "Refresh yarn.lock after the automated version bump\n\nThe 14.2.0-beta.20261004 bump updated every workspace package.json but not\nyarn.lock. Since the Yarn 4 migration the lockfile records workspace\nversions, so CI's yarn install --immutable rejected the commit. Regenerate\nthe lockfile and have bump-versions.sh refresh it on every bump.", + "subject": "Refresh yarn.lock after the automated version bump", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-04T20:55:13.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "infra", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Revokeeee/MyRevoke2.0-AI", + "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI", + "commit_sha": "9881f9b490b866ffe7494b627c5026442ebfeb52", + "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/9881f9b490b866ffe7494b627c5026442ebfeb52", + "commit_message": "Extract UUID generation into a seedable UuidGenerator class\n\nUUIDs were generated from module-level static RNG state in\nUniversallyUniqueIdentifiers.cpp, so there was no way to make generation\ndeterministic in a test without reaching into engine internals.\n\nUuidGenerator now owns its own std::mt19937_64 and distribution. It can be\nconstructed with an explicit seed for reproducible sequences, or default\nconstructed to seed from std::random_device as before. UUID's default\nconstructor wraps a single shared generator instance, so every existing\ncall site keeps working unchanged.\n\nAlso fixes UUID::Get() returning int64_t for a uint64_t member.\n\nCloses #14\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>", + "subject": "Extract UUID generation into a seedable UuidGenerator class", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-04T20:38:02.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5", + "email": "noreply@anthropic.com" + } + ], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Revokeeee/MyRevoke2.0-AI", + "repo_url": "https://github.com/Revokeeee/MyRevoke2.0-AI", + "commit_sha": "76d67aabe6f252225422eb11a85de1f3327b0dab", + "commit_url": "https://github.com/Revokeeee/MyRevoke2.0-AI/commit/76d67aabe6f252225422eb11a85de1f3327b0dab", + "commit_message": "Add unit tests for the EventSystem module\n\nCovers event type/name/category reporting for every event class, the data\neach event carries through its constructor and getters, and EventDispatcher\ntype matching plus the Handled flag.\n\nCloses #13\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>", + "subject": "Add unit tests for the EventSystem module", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-04T20:15:26.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5", + "email": "noreply@anthropic.com" + } + ], + "category": "testing", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "019cfa5c5a31562a7d5e46ef2d47bc0eff70ebc8", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/019cfa5c5a31562a7d5e46ef2d47bc0eff70ebc8", + "commit_message": "docs: accept derived artifacts on dev for v1.79.0-beta.7\n\n\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0431\u0435\u0442\u044b \u2014 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u043d\u0430 dev (PROCESS.md \u00a78, \u00a711.4, #697).\n\u041f\u0440\u043e\u0433\u043e\u043d: https://github.com/Matysh/houseplan-card/actions/runs/37139464966\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432; \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b: \u043d\u0435\u0442.\n\nIssue: #697\nUser-Visible: no", + "subject": "docs: accept derived artifacts on dev for v1.79.0-beta.7", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-03T17:11:26.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "42d1a8a9dc2d4f1e85e0add48d3bdfa1c81b5108", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/42d1a8a9dc2d4f1e85e0add48d3bdfa1c81b5108", + "commit_message": "docs: accept derived artifacts on dev for v1.79.0-beta.5\n\n\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0431\u0435\u0442\u044b \u2014 \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u043d\u0430 dev (PROCESS.md \u00a78, \u00a711.4, #697).\n\u041f\u0440\u043e\u0433\u043e\u043d: https://github.com/Matysh/houseplan-card/actions/runs/37119340533\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u043e\u0442\u043f\u0435\u0447\u0430\u0442\u043e\u043a \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432; \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b: \u043d\u0435\u0442.\n\nIssue: #697\nUser-Visible: no", + "subject": "docs: accept derived artifacts on dev for v1.79.0-beta.5", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-03T11:22:39.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "9fa5efbdac648a1ad4a704553243540d43e3f57f", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/9fa5efbdac648a1ad4a704553243540d43e3f57f", + "commit_message": "docs(reviews): manual code review of the pending-round witness (#781)\n\nManual review requested by the owner after the automated reviewer failed.\nMaterial e931a949: green, no High/Medium findings, one non-blocking Low.\n\nIssue: #781\nUser-Visible: no", + "subject": "docs(reviews): manual code review of the pending-round witness (#781)", + "author": { + "login": "", + "name": "Codex", + "email": "codex@houseplan.tech" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T19:57:08.000+03:00", + "attribution_kind": "committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "73b0cfff5b9cd766ca6573b3a608641c61a0c434", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/73b0cfff5b9cd766ca6573b3a608641c61a0c434", + "commit_message": "test(process): \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u043e\u0436\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (#781)\n\nIssue: #781\nUser-Visible: no", + "subject": "test(process): \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u043e\u0436\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (#781)", + "author": { + "login": "Matysh", + "name": "Matysh", + "email": "Matunin2005@yandex.ru" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T19:57:08.000+03:00", + "attribution_kind": "committer", + "coauthors": [], + "category": "testing", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "reecejunior/techzimint", + "repo_url": "https://github.com/reecejunior/techzimint", + "commit_sha": "569cc96c342d7412aee1b159fa1c6b858880d28a", + "commit_url": "https://github.com/reecejunior/techzimint/commit/569cc96c342d7412aee1b159fa1c6b858880d28a", + "commit_message": "Log 2026-10-02 growth/product strategy notes\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>", + "subject": "Log 2026-10-02 growth/product strategy notes", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T11:47:51.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5", + "email": "noreply@anthropic.com" + } + ], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "reecejunior/techzimint", + "repo_url": "https://github.com/reecejunior/techzimint", + "commit_sha": "4d2af1595adef50f100a386e0647a2611e054e4f", + "commit_url": "https://github.com/reecejunior/techzimint/commit/4d2af1595adef50f100a386e0647a2611e054e4f", + "commit_message": "Fix raw ISO timestamp shown on reviewer profile review dates\n\nProfileClient's review history rendered r.createdAt verbatim, e.g.\n\"2024-06-01T12:34:56.789Z\", instead of a readable date. The identical\nReview.createdAt field is already formatted with .slice(0, 10) in\nStartupDetailClient's ReviewCard \u2014 this applies the same fix here so\nprofile pages are consistent with startup detail pages.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>", + "subject": "Fix raw ISO timestamp shown on reviewer profile review dates", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T11:47:18.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Sonnet 5", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "13d8df55541fef9cbbf86d1060c7660a8ce5fa84", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/13d8df55541fef9cbbf86d1060c7660a8ce5fa84", + "commit_message": "docs: review document for #780\n\nIssue: #780\nUser-Visible: no", + "subject": "docs: review document for #780", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T10:47:04.000+03:00", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "9e1a2f4a0777faecbb47f391407d3d37d7d916f2", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/9e1a2f4a0777faecbb47f391407d3d37d7d916f2", + "commit_message": "docs(reviews): rebuild the review index after rebase onto dev", + "subject": "docs(reviews): rebuild the review index after rebase onto dev", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T10:18:38.000+03:00", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "interface", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "23f822475b160983aa7d3f16f92ff19fc4ff23d4", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/23f822475b160983aa7d3f16f92ff19fc4ff23d4", + "commit_message": "fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765)\n\nThe body of _process.yml is read from dev (@dev, #623). After \"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430\n\u0432\u0435\u0442\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0438\" the working copy of job prepare is the task branch, and a\nshow/ship branch with a clean merge is not rebased before review: its\nscripts/ may lag dev or be replaced. #749 fixed job integrate; prepare\nstill ran four control scripts from the material \u2014 the issue-body digest\nfor the anchor, --reuse of a green verdict (#499), validate-gate (#510)\nand the spec-change check (#517). The material decided its own admission:\na branch whose review-doc-guard.mjs prints reuse=true merges without the\nmodel. model_review took model-usage.mjs from the material too: a lagging\nbranch has none, and the publication silently wrote reason=missing.\n\nNow prepare extracts one snapshot right after setup-node, before the\nbranch switch: `git rev-parse origin/dev` once and `git archive <sha>\nscripts .github/workflows/validate.yml`, so the git fetch of the track and\nrebase steps cannot mix versions. Every repo script of the job runs from\nit via TOOLS \u2014 the track step and the rebase guard lose their own\nextractions. The SHA goes out as job output tools_sha; the usage step of\nmodel_review archives the same commit inside itself, so a snapshot failure\nis a failure of the reporting step (continue-on-error), not of the stage.\nThe model session runs on that runner, so the usage line stays untrusted\ninput parsed strictly (#556, #737).\n\nwithMaterialAnchors is idempotent: a repeated call drops the separator the\nprevious call wrote instead of piling up `---` lines.\n\nTests: test/process-prepare-tools.test.mjs \u2014 the job contract (no step\ncalls scripts/ from the working copy, one pinned archive before the branch\nswitch, tools_sha reaches model_review) and the steps as they are, on real\nbash and git: a branch behind dev without model-usage.mjs and with a\nsubstituted review-doc-guard.mjs; the anchor digest, reuse and the spec\ncheck come from dev, the usage line is data even after dev moved. Red on\nthe old workflow: all four. Harnesses of process-track, rebase-generated,\nreview-doc-guard and model-usage take the prepare snapshot. Three registry\nmutants (reuse from the material, usage from moving dev, separators).\n\nCanon: PROCESS.md \u00a710.4 \u00ab\u0421\u043a\u0440\u0438\u043f\u0442\u044b \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u2014 \u0438\u0437 dev\u00bb covers prepare and\nthe usage step; \u00ab\u0420\u0430\u0441\u0445\u043e\u0434 \u043c\u043e\u0434\u0435\u043b\u0438\u00bb names it a pipeline step, not the reviewer's.\n\nIssue: #765\nUser-Visible: no", + "subject": "fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T10:18:29.000+03:00", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "workflow", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "16069d1dcc9e1133834028fa357d2c131e4c6440", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/16069d1dcc9e1133834028fa357d2c131e4c6440", + "commit_message": "docs(reviews): independent code review of pipeline snapshot (#765)\n\nManual review requested by the owner after the automated reviewer failed.\nMaterial af09d36d: green, no High/Medium findings, one non-blocking Low.\n\nIssue: #765\nUser-Visible: no", + "subject": "docs(reviews): independent code review of pipeline snapshot (#765)", + "author": { + "login": "Matysh", + "name": "Matysh", + "email": "Matunin2005@yandex.ru" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T10:18:29.000+03:00", + "attribution_kind": "committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "ceee249210e4d268521ee800dbf2011687d1b490", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/ceee249210e4d268521ee800dbf2011687d1b490", + "commit_message": "docs: review document for #780\n\nIssue: #780\nUser-Visible: no", + "subject": "docs: review document for #780", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-02T10:09:11.000+03:00", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "044f09a6a5eee277b3cdd4b3b1e9c1ef46232e79", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/044f09a6a5eee277b3cdd4b3b1e9c1ef46232e79", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#744)\n\nIssue: #744\nUser-Visible: no", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#744)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T23:05:23.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "92b89d9b80d5355a3631534d58a812f644f79957", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/92b89d9b80d5355a3631534d58a812f644f79957", + "commit_message": "docs: review document for #744\n\nIssue: #744\nUser-Visible: no", + "subject": "docs: review document for #744", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T23:05:20.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "f2936813af8d6e8ac265c61061451cbf374b3f22", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/f2936813af8d6e8ac265c61061451cbf374b3f22", + "commit_message": "fix: keep warm editor adoption subordinate to user navigation (#762)\n\nIssue: #762\nUser-Visible: yes", + "subject": "fix: keep warm editor adoption subordinate to user navigation (#762)", + "author": { + "login": "Matysh", + "name": "Matysh", + "email": "Matunin2005@yandex.ru" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T21:00:48.000Z", + "attribution_kind": "committer", + "coauthors": [], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "e2d38d4e169d8518438add6d26de839decb12793", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/e2d38d4e169d8518438add6d26de839decb12793", + "commit_message": "test: await warm navigation request before checking its authority (#762)\n\nIssue: #762\nUser-Visible: no", + "subject": "test: await warm navigation request before checking its authority (#762)", + "author": { + "login": "Matysh", + "name": "Matysh", + "email": "Matunin2005@yandex.ru" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T21:00:48.000Z", + "attribution_kind": "committer", + "coauthors": [], + "category": "testing", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "c4cb0649ae2f2fa2790586b9f31d714286643dbb", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/c4cb0649ae2f2fa2790586b9f31d714286643dbb", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#762)\n\nIssue: #762\nUser-Visible: no", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#762)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T21:00:48.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "baf0136d9a051c0eb98e6cdeaae3106c5c78fd27", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/baf0136d9a051c0eb98e6cdeaae3106c5c78fd27", + "commit_message": "docs: review document for #762\n\nIssue: #762\nUser-Visible: no", + "subject": "docs: review document for #762", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T21:00:48.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "6149bcf866808cbaa98df1ce5763d8f363cf89ff", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/6149bcf866808cbaa98df1ce5763d8f363cf89ff", + "commit_message": "refactor: keep room warm-draft construction in the lazy editor (#762)\n\nIssue: #762\nUser-Visible: no", + "subject": "refactor: keep room warm-draft construction in the lazy editor (#762)", + "author": { + "login": "Matysh", + "name": "Matysh", + "email": "Matunin2005@yandex.ru" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T21:00:48.000Z", + "attribution_kind": "committer", + "coauthors": [], + "category": "implementation", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "a05458b6f324d83af95ff9150033d704ba7d185e", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/a05458b6f324d83af95ff9150033d704ba7d185e", + "commit_message": "docs: review document for #662\n\nIssue: #662\nUser-Visible: no", + "subject": "docs: review document for #662", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T20:52:49.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "5021c484461879599ab4aad4aefdb3889282cc26", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/5021c484461879599ab4aad4aefdb3889282cc26", + "commit_message": "docs: review document for #662\n\nIssue: #662\nUser-Visible: no", + "subject": "docs: review document for #662", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T20:33:15.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "8a3bf71ef19ea22f066a526d860759d084d92abe", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/8a3bf71ef19ea22f066a526d860759d084d92abe", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#740)\n\nIssue: #740\nUser-Visible: no", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#740)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T18:38:03.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "97d40ea710431c3c4280d2dfcf743080c5c53dc4", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/97d40ea710431c3c4280d2dfcf743080c5c53dc4", + "commit_message": "docs: review document for #740\n\nIssue: #740\nUser-Visible: no", + "subject": "docs: review document for #740", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T18:38:00.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "d709ea110d3e144fc1d3d2edefa36092b1a58292", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/d709ea110d3e144fc1d3d2edefa36092b1a58292", + "commit_message": "perf(stairs): draw all treads of a stair as one path (#740)\n\nA floor with stairs pays for them on every switch to it: the stair layer\nis emptied on other floors, so Lit recreates every symbol on each return\nand the browser lays out and paints it again. With 250 stairs (the\nlarge-house fixture, the per-floor limit) that was 2,875 SVG elements and\nabout 40 ms per entry locally; each stair carried 3-7 separate tread lines\nwith four bound coordinates each.\n\nThe treads of one stair are now a single <path class=\"hp-stair-tread\">\nwith one `M a L b` subpath per tread, in geometry order and with the\nnumbers the lines carried. Treads of one stair never overlap (straight:\nparallel, >= 20 cm apart; spiral: inner ends >= 6.7 cm apart at the\n3.6 cm stroke), so the path paints the same pixels at any opacity. The\noutline points and the tread data are built once per cached geometry\nobject (cachedStairMarkup, weak keys), not on every render. The View and\nplan-editor layers share the strings; outline, hit polygon, trapezoid,\narrow, attributes and handlers are unchanged. Floor 1 of the fixture\ndrops from 4,210 to 2,960 elements.\n\nWitnesses: the unit test for the path data and its cache, and the\nsmoke_stairs markup checks in View and in the plan editor, are red on\ndev. The stairs-view-tread-lines mutant restores the View lines.\n\nIssue: #740\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd", + "subject": "perf(stairs): draw all treads of a stair as one path (#740)", + "author": { + "login": "claude", + "name": "Claude", + "email": "noreply@anthropic.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T18:27:53.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "b8f662cdf189c03984478b255eaa334b4b5ab023", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/b8f662cdf189c03984478b255eaa334b4b5ab023", + "commit_message": "docs(screenshots): source fingerprint for #740 on the current dev \u2014 all frames pixel-identical\n\nValidate on the conveyor's rebase eb439e81 failed preflight: the branch\nchanges visual sources (stairs), so the screenshot check is strict on it,\nand the fingerprint was stale against the moved dev (#739, #742, #759).\nThe branch is rebased onto b84465e5 (inventory counts merged with #742:\nlifecycle 89, total 204/200) and `docs:accept --identical` re-captured\nall 11 frames: pixel-identical, only the source fingerprint moves.\n\nIssue: #740\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd", + "subject": "docs(screenshots): source fingerprint for #740 on the current dev \u2014 all frames pixel-identical", + "author": { + "login": "claude", + "name": "Claude", + "email": "noreply@anthropic.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T18:27:53.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "8e4f417f51f46dc49239deb508a4fd341dc72f06", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/8e4f417f51f46dc49239deb508a4fd341dc72f06", + "commit_message": "docs: review document for #740\n\nIssue: #740\nUser-Visible: no", + "subject": "docs: review document for #740", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T18:27:53.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "9f695d8a5d92d29a4173043d9e43c577185b2d78", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/9f695d8a5d92d29a4173043d9e43c577185b2d78", + "commit_message": "docs: review document for #762\n\nIssue: #762\nUser-Visible: no", + "subject": "docs: review document for #762", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T17:53:24.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "cf7a9cc4fc2efebbe1718781867c1f51d0d068d6", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/cf7a9cc4fc2efebbe1718781867c1f51d0d068d6", + "commit_message": "fix(process): reconcile canon and hints with the pipeline after #707\u2013#730 (#748)\n\nFive places still described the pipeline as it was before code that is\nalready in dev:\n\n- the S3 hint of the task packet told the author to push the branch, while\n the spec lives in the issue body (\u00a72.3, #517) and nothing is pushed\n before S5 (\u00a711.8);\n- process-gate printed \u00abFAIL \u043f.9 Gates: light\u00bb for a trailer nobody writes\n or reads, while \u00a710.2 item 9 is the unimplemented release:prerelease\n verdict check. The check is removed; a contract test ties every RULES key\n to an implemented item of \u00a710.2 and every finding number to a RULES key;\n- \u00a710.4 item 4 demanded a heredoc in run:, while #723/#730 and their tests\n demand the opposite: commit messages echo line by line into a file,\n comment and summary texts come from code;\n- the ship merge comment, AUTHOR.md, REVIEWER.md and AGENTS.md named only\n the pre-beta document, though since #727 the night reads ship code first;\n- the nightly publication committed \u00abdocs: ship review for nightly \u2026\n \u043f\u0435\u0440\u0435\u0434 \u0431\u0435\u0442\u043e\u0439\u00bb with the beta step's Issue: #696. It now has its own\n subject (the document name), body and Issue: #727; the beta message is\n unchanged.\n\nThe browser-guard inventory note still said growth above 200 fails\nmutation-gate --check; since #699 it is a guideline and --check warns. Its\ncounts now match the inventory: 205, lifecycle 90.\n\nIssue: #748\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd", + "subject": "fix(process): reconcile canon and hints with the pipeline after #707\u2013#730 (#748)", + "author": { + "login": "claude", + "name": "Claude", + "email": "noreply@anthropic.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:49:55.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "browser", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "c9bf16dec3ffbfc11f618ff2eabbf8710f61e633", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/c9bf16dec3ffbfc11f618ff2eabbf8710f61e633", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)\n\nIssue: #748\nUser-Visible: no\nCo-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)", + "author": { + "login": "claude", + "name": "Claude", + "email": "noreply@anthropic.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:49:55.000Z", + "attribution_kind": "author + committer + co-author", + "coauthors": [ + { + "name": "Claude Opus 5.5", + "email": "noreply@anthropic.com" + } + ], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "ae3db2bacd5c4f4afc9543bbcc5ea046564a9678", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/ae3db2bacd5c4f4afc9543bbcc5ea046564a9678", + "commit_message": "docs: review document for #748\n\nIssue: #748\nUser-Visible: no", + "subject": "docs: review document for #748", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:49:55.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "94bd932153def1a0a93b9580144808ef634dd7a6", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/94bd932153def1a0a93b9580144808ef634dd7a6", + "commit_message": "docs: review document for #748\n\nIssue: #748\nUser-Visible: no", + "subject": "docs: review document for #748", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:49:55.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "134a7029b4951d059f8f170c3ac10c683ceda96b", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/134a7029b4951d059f8f170c3ac10c683ceda96b", + "commit_message": "docs: review document for #748\n\nIssue: #748\nUser-Visible: no", + "subject": "docs: review document for #748", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:49:55.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "0606a3664a6c819a501316f478840d6c3a5b456c", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/0606a3664a6c819a501316f478840d6c3a5b456c", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)\n\nIssue: #748\nUser-Visible: no", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#748)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:49:55.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "146da62b0de509cfa15127f3a204c7ce0ecaad30", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/146da62b0de509cfa15127f3a204c7ce0ecaad30", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#775)\n\nIssue: #775\nUser-Visible: no", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#775)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:44:29.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "cdfc6e59dcf80f5b0a924775b95b31e79248744b", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/cdfc6e59dcf80f5b0a924775b95b31e79248744b", + "commit_message": "docs: review document for #775\n\nIssue: #775\nUser-Visible: no", + "subject": "docs: review document for #775", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:44:28.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "09fb02cf15ee423753d4e559a7dc864887206d69", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/09fb02cf15ee423753d4e559a7dc864887206d69", + "commit_message": "fix(process): bind Validate resume to the current pending round\n\nIssue: #775\nUser-Visible: no", + "subject": "fix(process): bind Validate resume to the current pending round", + "author": { + "login": "Matysh", + "name": "Matysh", + "email": "Matunin2005@yandex.ru" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:44:28.000Z", + "attribution_kind": "committer", + "coauthors": [], + "category": "context", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + }, + { + "repo": "Matysh/houseplan-card", + "repo_url": "https://github.com/Matysh/houseplan-card", + "commit_sha": "dd86bf955acfc19a149585f78e1e3fd794e416b9", + "commit_url": "https://github.com/Matysh/houseplan-card/commit/dd86bf955acfc19a149585f78e1e3fd794e416b9", + "commit_message": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#772)\n\nIssue: #772\nUser-Visible: no", + "subject": "docs(reviews): \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (#772)", + "author": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "committer": { + "login": "claude[bot]", + "name": "claude[bot]", + "email": "209825114+claude[bot]@users.noreply.github.com" + }, + "timestamp": "2026-10-01T16:20:19.000Z", + "attribution_kind": "author + committer", + "coauthors": [], + "category": "docs", + "ecosystem": "independent", + "official_anthropic": false, + "matched_queries": [ + "committer:claude[bot]" + ] + } + ], + "errors": [ + { + "term": "\"Co-authored-by: Claude\"", + "status": 403, + "error": "You have exceeded a secondary rate limit. Please wait a few minutes before you try again. For more on scraping GitHub and how it may affect your rights, please review our Terms of Service (https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) If you reach out to GitHub Support for help, please include the request ID B8EC:5A8BB:D2F6A9:2B5E6D0:6AC5C4A2." + } + ] +} diff --git a/claude.py b/claude.py new file mode 100644 index 0000000..863be2c --- /dev/null +++ b/claude.py @@ -0,0 +1,320 @@ +#!/usr/bin/env python3 +"""Build a bounded, deterministic view of Claude-attributed GitHub commits.""" +import argparse +import datetime as dt +import html +import json +import pathlib +import re +import urllib.error +import urllib.parse +import urllib.request + +ROOT = pathlib.Path(__file__).resolve().parent +LOOKBACK_DAYS = 30 +MAX_RESULTS_PER_QUERY = 50 +SEARCHES = [ + "author:claude[bot]", + "committer:claude[bot]", + "author:claude", + "committer:claude", + '"Co-authored-by: Claude"', +] +COAUTHOR_RE = re.compile(r"(?im)^\s*co-authored-by:\s*(.*?)\s*<([^>]+)>\s*$") + + +class GithubApiError(RuntimeError): + def __init__(self, status, detail, headers): + super().__init__(detail) + self.status = status + self.headers = headers + + +def api(url): + req = urllib.request.Request(url, headers={ + "User-Agent": "notplanned-claude-scout/0.1", + "Accept": "application/vnd.github+json", + "X-GitHub-Api-Version": "2022-11-28", + }) + try: + with urllib.request.urlopen(req, timeout=20) as response: + return json.load(response), dict(response.headers) + except urllib.error.HTTPError as error: + try: + body = json.load(error) + detail = body.get("message", "GitHub API request failed") + except Exception: + detail = "GitHub API request failed" + raise GithubApiError(error.code, detail, dict(error.headers)) from error + + +def esc(value): + return html.escape(str(value), quote=True) + + +def parse_date(value): + try: + return dt.datetime.fromisoformat(value.replace("Z", "+00:00")) + except Exception: + return dt.datetime.min.replace(tzinfo=dt.timezone.utc) + + +def age_days(value, now): + return max(0, (now - parse_date(value)).days) + + +def identity_text(identity): + if not identity: + return "" + return " ".join(str(identity.get(key) or "") for key in ("login", "name", "email")).lower() + + +def is_claude_identity(identity): + text = identity_text(identity) + return bool(re.search(r"(?:claude\s*\[bot\]|claude\s+code|\bclaude\b)", text)) + + +def item_identity(item, role): + commit_identity = (item.get("commit") or {}).get(role) or {} + account = item.get(role) or {} + return { + "login": account.get("login") or "", + "name": commit_identity.get("name") or "", + "email": commit_identity.get("email") or "", + } + + +def coauthors(message): + return [ + {"name": name.strip(), "email": email.strip()} + for name, email in COAUTHOR_RE.findall(message or "") + if is_claude_identity({"name": name, "email": email}) + ] + + +def category(message): + text = (message or "").lower() + buckets = [ + ("browser", ["browser", "playwright", "puppeteer", "chrome", "screenshot"]), + ("integration", ["mcp", "api", "webhook", "integration", "plugin", "connector"]), + ("workflow", ["workflow", "task", "agent", "command", "hook", "automation"]), + ("context", ["context", "memory", "session", "history", "resume", "checkpoint"]), + ("interface", ["ui", "ux", "sidebar", "dashboard", "panel", "menu"]), + ("testing", ["test", "spec", "fixture", "assert", "coverage"]), + ("infra", ["ci", "build", "deploy", "docker", "release", "dependency"]), + ("docs", ["readme", "docs", "documentation", "changelog"]), + ] + for name, words in buckets: + if any(word in text for word in words): + return name + return "implementation" + + +def attribution_kind(author_match, committer_match, coauthor_match): + kinds = [] + if author_match: + kinds.append("author") + if committer_match: + kinds.append("committer") + if coauthor_match: + kinds.append("co-author") + return " + ".join(kinds) + + +def candidate(item, query): + commit = item.get("commit") or {} + message = commit.get("message") or "" + author = item_identity(item, "author") + committer = item_identity(item, "committer") + claude_coauthors = coauthors(message) + author_match = is_claude_identity(author) + committer_match = is_claude_identity(committer) + coauthor_match = bool(claude_coauthors) + if not (author_match or committer_match or coauthor_match): + return None + + repository = item.get("repository") or {} + repo = repository.get("full_name") or "" + if not repo: + return None + timestamp = (committer.get("date") or author.get("date") or "") + # GitHub returns dates inside commit.author/commit.committer, not the flattened identities. + timestamp = (commit.get("committer") or {}).get("date") or (commit.get("author") or {}).get("date") or timestamp + official = repo.lower().startswith("anthropics/") + return { + "repo": repo, + "repo_url": repository.get("html_url") or f"https://github.com/{repo}", + "commit_sha": item.get("sha") or "", + "commit_url": item.get("html_url") or "", + "commit_message": message[:4000], + "subject": (message.splitlines() or ["(no commit message)"])[0][:240], + "author": author, + "committer": committer, + "timestamp": timestamp, + "attribution_kind": attribution_kind(author_match, committer_match, coauthor_match), + "coauthors": claude_coauthors, + "category": category(message), + "ecosystem": "official Anthropic" if official else "independent", + "official_anthropic": official, + "matched_queries": [query], + "_author_match": author_match, + "_committer_match": committer_match, + "_coauthor_match": coauthor_match, + } + + +def merge(existing, incoming): + for field in ("_author_match", "_committer_match", "_coauthor_match"): + existing[field] = existing[field] or incoming[field] + for query in incoming["matched_queries"]: + if query not in existing["matched_queries"]: + existing["matched_queries"].append(query) + if not existing["coauthors"] and incoming["coauthors"]: + existing["coauthors"] = incoming["coauthors"] + existing["attribution_kind"] = attribution_kind( + existing["_author_match"], existing["_committer_match"], existing["_coauthor_match"] + ) + + +def rate_snapshot(headers): + if not headers: + return {} + return { + key: headers.get(value) + for key, value in ( + ("limit", "X-RateLimit-Limit"), + ("remaining", "X-RateLimit-Remaining"), + ("reset", "X-RateLimit-Reset"), + ) + if headers.get(value) is not None + } + + +def build(): + now = dt.datetime.now(dt.timezone.utc) + cutoff = (now - dt.timedelta(days=LOOKBACK_DAYS)).date().isoformat() + rows = {} + errors = [] + query_log = [] + last_rate = {} + filtered_future = 0 + + for term in SEARCHES: + today = now.date().isoformat() + query = f"{term} committer-date:>={cutoff} committer-date:<={today}" + url = "https://api.github.com/search/commits?" + urllib.parse.urlencode({ + "q": query, + "sort": "committer-date", + "order": "desc", + "per_page": MAX_RESULTS_PER_QUERY, + }) + try: + payload, headers = api(url) + last_rate = rate_snapshot(headers) or last_rate + items = payload.get("items", []) + query_log.append({"term": term, "query": query, "returned": len(items), "total_count": payload.get("total_count", 0)}) + except GithubApiError as error: + last_rate = rate_snapshot(error.headers) or last_rate + query_log.append({"term": term, "query": query, "returned": 0, "error": str(error)}) + errors.append({"term": term, "status": error.status, "error": str(error)}) + continue + except Exception as error: + query_log.append({"term": term, "query": query, "returned": 0, "error": type(error).__name__}) + errors.append({"term": term, "error": type(error).__name__}) + continue + + for item in items: + row = candidate(item, term) + if not row or not row["commit_sha"]: + continue + if parse_date(row["timestamp"]) > now: + filtered_future += 1 + continue + key = (row["repo"].lower(), row["commit_sha"]) + if key in rows: + merge(rows[key], row) + else: + rows[key] = row + + candidates = list(rows.values()) + candidates.sort(key=lambda row: ( + 1 if not row["official_anthropic"] else 0, + row["timestamp"], + row["repo"].lower(), + row["commit_sha"], + ), reverse=True) + for row in candidates: + for field in ("_author_match", "_committer_match", "_coauthor_match"): + del row[field] + + return { + "generated_at": now.isoformat(), + "source": "https://api.github.com/search/commits", + "rules": { + "lookback_days": LOOKBACK_DAYS, + "max_results_per_query": MAX_RESULTS_PER_QUERY, + "dedupe_key": "repo + commit_sha", + "searches": SEARCHES, + "official_definition": "repo full_name starts with anthropics/", + }, + "api": {"rate_limit": last_rate, "queries": query_log}, + "filters": {"future_timestamps_excluded": filtered_future}, + "candidates": candidates, + "errors": errors, + } + + +def identity_label(identity): + return identity.get("login") or identity.get("name") or identity.get("email") or "unknown" + + +def card(row): + authors = f"author {identity_label(row['author'])} · committer {identity_label(row['committer'])}" + if row["coauthors"]: + authors += " · co-author " + ", ".join(x["name"] for x in row["coauthors"]) + return f"""<a class=\"commit-card\" href=\"{esc(row['commit_url'])}\" target=\"_blank\" rel=\"noreferrer\"> + <div class=\"topline\"><span class=\"repo\">{esc(row['repo'])}</span><span class=\"ecosystem {'official' if row['official_anthropic'] else 'independent'}\">{esc(row['ecosystem'])}</span></div> + <h3>{esc(row['subject'])}</h3> + <div class=\"meta\">{esc(row['category'])} · {esc(row['attribution_kind'])} · {esc(row['timestamp'])}</div> + <p class=\"message\">{esc(row['commit_message'])}</p> + <div class=\"why\">{esc(authors)}</div> + </a>""" + + +def render(out_html, out_json): + data = build() + independent = [row for row in data["candidates"] if not row["official_anthropic"]] + official = [row for row in data["candidates"] if row["official_anthropic"]] + template = (ROOT / "claude-template.html").read_text() + updated = data["generated_at"][:16].replace("T", " ") + page = (template + .replace("__UPDATED__", esc(updated)) + .replace("__COUNT__", str(len(data["candidates"]))) + .replace("__INDEPENDENT__", str(len(independent))) + .replace("__OFFICIAL__", str(len(official))) + .replace("__REPOS__", str(len({row["repo"] for row in data["candidates"]}))) + .replace("__QUERIES__", str(len(data["api"]["queries"]))) + .replace("__INDEPENDENT_CARDS__", "\n".join(card(row) for row in independent) or '<div class="empty">No independent Claude-attributed commits cleared the bounded search window.</div>') + .replace("__OFFICIAL_CARDS__", "\n".join(card(row) for row in official) or '<div class="empty">No official Anthropic commits matched this pass.</div>') + ) + out_html = pathlib.Path(out_html) + out_html.parent.mkdir(parents=True, exist_ok=True) + out_html.write_text(page) + pathlib.Path(out_json).write_text(json.dumps(data, indent=2) + "\n") + print(json.dumps({ + "candidates": len(data["candidates"]), + "independent": len(independent), + "official": len(official), + "repos": len({row["repo"] for row in data["candidates"]}), + "queries": len(data["api"]["queries"]), + "errors": len(data["errors"]), + "out": str(out_html), + })) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--html-out", default=str(ROOT / "claude/index.html")) + parser.add_argument("--json-out", default=str(ROOT / "claude.json")) + args = parser.parse_args() + render(args.html_out, args.json_out) diff --git a/claude/index.html b/claude/index.html new file mode 100644 index 0000000..810ec9d --- /dev/null +++ b/claude/index.html @@ -0,0 +1,1966 @@ +<!doctype html><html lang="en"><head> +<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"> +<title>notplanned / claude + +
+
notplanned / claude
+

claude signal.

A bounded, deterministic mirror of public GitHub commits attributed to Claude, Claude Code, or Claude co-authorship. The independent ecosystem stays visible beside official Anthropic work.

+
100commits
100independent
0official
39repos
5bounded queries
+

Updated 2026-10-07 04:03 UTC. Search window: last 30 days. Results are deduped by repository + commit SHA, sorted newest first, and categorized with fixed keyword rules. GitHub search can be incomplete when its public rate limit is low.

+

independent ecosystem

Public repositories outside the Anthropic organization: the clearest demand/discovery signal for what people are asking Claude to build.

+
kylesnowschwartz/plugin-devindependent
+

feat: sync plugin-dev with Claude Code v2.1.284-v2.1.289 (#83)

+
integration · author + co-author · 2026-10-07T16:52:40.000+13:00
+

feat: sync plugin-dev with Claude Code v2.1.284-v2.1.289 (#83) + +Apply 22 Must Update items from the CC 2.1.284-2.1.289 changelog and +binary, and 7 Stage 2-confirmed doc drift audit fixes. Bump to 0.49.0. + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+ +
supabase/supabaseindependent
+

Add Terms of Service v4 (effective October 5, 2026) (#51107)

+
context · author + co-author · 2026-10-07T09:07:10.000+11:00
+

Add Terms of Service v4 (effective October 5, 2026) (#51107) + +<!-- ccr-slack-attribution --> +_Requested by **Nicole Kramer** · [Slack +thread](https://supabase.slack.com/archives/C0161K73J1J/p1790784371448999)_ + +## Problem + +Commercial & Product Counsel supplied a new version of the Supabase +Terms of Service to be published as Version 4, effective October 5, 2026 +(the same date the Enterprise Terms v4 update takes effect, once the +code freeze lifts). + +## Solution + +Adds `apps/www/data/legal/terms/v4.mdx` with the new agreement text +(transcribed from the supplied source document) and registers it as the +newest version in `apps/www/pages/terms.tsx`'s versions array, dated +October 5, 2026. Versions 1-3 are untouched. The new text also defines +"Supplemental Terms" and links it, at the one point the source +hyperlinks it, to `/legal/customer-resources/supplemental-terms`. + +## Review instructions + +1. Open the Vercel preview link for `/terms` below. +2. Confirm "Version 4" appears as the newest tab/version, dated October +5, 2026, with the updated agreement text. +3. Do not merge — this PR is held until the code freeze lifts on October +5, 2026 (see PRs #51100 and #51106 for the related Enterprise Terms / +Supplemental Terms work landing the same day). + +## Checklist + +- [x] I have read +[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +https://claude.ai/code/session_01K2vqszbsJiMJPABAnLMgaC + + +--- +_Generated by [Claude +Code](https://claude.ai/code/session_01K2vqszbsJiMJPABAnLMgaC)_ + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
supabase/supabaseindependent
+

Add Enterprise Terms v4 (effective October 5, 2026) (#51106)

+
context · author + co-author · 2026-10-07T09:06:49.000+11:00
+

Add Enterprise Terms v4 (effective October 5, 2026) (#51106) + +<!-- ccr-slack-attribution --> +_Requested by **Nicole Kramer** · [Slack +thread](https://supabase.slack.com/archives/C0161K73J1J/p1790784371448999)_ + +## Problem + +The Enterprise SaaS Subscription Agreement at `/enterprise-terms` needed +a new version reflecting legal's latest draft, which introduces a +"Supplemental Terms" defined term, a standalone "Supabase" +contracting-entity definition (to support marketplace purchases), a new +Beta Releases warranty carve-out, and related marketplace billing/refund +language. + +## Solution + +Before: `/enterprise-terms` had three versions (v1–v3), with v3 dated +August 1, 2026, and no concept of "Supplemental Terms" anywhere in the +agreement. + +After: adds **Version 4, effective October 5, 2026** as the newest entry +in the page's `versions` array (v1–v3 untouched): + +- `apps/www/data/legal/enterprise-terms/v4.mdx` — new versioned MDX, +transcribed from legal's source document and following this directory's +existing formatting conventions (bold section numbers/defined terms, +`##`/`###` headings, no frontmatter or h1 — the h1 is rendered by +`PageHeader`). +- `apps/www/pages/enterprise-terms.tsx` — imports `v4.mdx` and adds it +to the front of the `versions` array with `effectiveDate: 'October 5, +2026'`. + +How: the new v4 text is a faithful transcription of legal's draft onto +the existing v3 structure, so the diff is easy to review against v3 — +the substantive additions are the "Supabase" entity definition (1.9), +the "Supplemental Terms" defined term (1.13) and its references in +Section 2.1 (license scope) and Section 14.1 (order of precedence), a +new Section 10.5 (Beta Releases), and marketplace-related payment/refund +language in Section 5.1. The "Supplemental Terms" defined term is a live +markdown link to the new `/legal/customer-resources/supplemental-terms` +page (shipped separately in #51100) at its point of definition (Section +1.13), matching how the source document hyperlinks it. + +## Review instructions + +1. Open the `zone-www-dot-com` preview's `/enterprise-terms` page and +confirm the version selector defaults to "Version 4 — October 5, 2026". +2. Confirm Section 1.13 "Supplemental Terms" renders as a live link to +`/legal/customer-resources/supplemental-terms`. +3. Confirm Version 3 (and v1–v2) still render unchanged via the version +selector. + +## Checklist + +- [x] I have read +[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) +- [ ] N/A — no docs topic edited (this is versioned legal content, not +`apps/docs`) + +--- + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +https://claude.ai/code/session_01K2vqszbsJiMJPABAnLMgaC + +--------- + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
leandersabel/solventindependent
+

An administrator's password card can no longer be edited while the change runs (#427)

+
browser · author + co-author · 2026-10-07T03:41:38.000Z
+

An administrator's password card can no longer be edited while the change runs (#427) + +Closes #381 + +While an administrator's password change runs, the Your password card +now goes quiet: its fields, Show toggles and button are disabled until +the server answers, so nothing can be typed and no second change can +start. This matches the vault owner's Change password card. + +<details> +<summary>Technical</summary> + +- `passwordCard()` in `solvent/static/js/page-admin.js` gets the +`quiet()` that `changePasswordCard()` in `view-settings.js` has. It +disables every input and button in the fields while working and keeps +the button disabled, and re-enables them after the answer. +- `spec/features/admin-invites.md`: criterion 58. +- Tests: a held change in `tests/browser/parts/admin.mjs`, and the +reviewer's `tests/browser/parts/admin-review-working.mjs`. + +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
LiamBMX/joshymc-pluginindependent
+

feat(staff): /sj toggle for private silent join/leave notifications (#1063) (#1064)

+
interface · author + co-author · 2026-10-07T03:39:46.000Z
+

feat(staff): /sj toggle for private silent join/leave notifications (#1063) (#1064) + +When a vanished or joshymc.silentjoin player joins or leaves, other +online joshymc.silentjoin staff with /sj on (default) get a private +[Silent Join]/[Silent Leave] line. The preference is a hidden, cached +player setting, so it persists by UUID across reconnects and restarts. + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+ +
mazyu36/aws-oss-updateindependent
+

feat: add bedrock-agentcore-sdk-python v1.24.1 release article (#92)

+
workflow · author + co-author · 2026-10-07T03:25:56.000Z
+

feat: add bedrock-agentcore-sdk-python v1.24.1 release article (#92) + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 4.7
+
+ +
leandersabel/solventindependent
+

Screen readers name each value field on Update values by its holding (#426)

+
browser · author + co-author · 2026-10-07T03:14:46.000Z
+

Screen readers name each value field on Update values by its holding (#426) + +Closes #197 + +A screen reader now names each value field on Update values by its +holding, such as "Mortgage value", the way the rate fields already read +"Gold, troy ounce rate". + +<details> + +- `solvent/static/js/view-sweep.js`: the sweep row's quantity input +carries `aria-label` of the holding's name plus " value", set through +`el`, which uses `setAttribute`, so the decrypted name never renders as +markup. +- `spec/features/record-snapshot.md`: Update values, Layout, states the +field's name. New criterion 105. +- Tests: a check in `tests/browser/parts/update-values.mjs`, and the +reviewer's `tests/browser/parts/update-values-review-field-names.mjs`, +which reads the computed accessible name on today's sweep, a new and a +reopened recording (archived holding included), after Record, at phone +width, and for a name holding markup. Both fail on `master`. + +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
leandersabel/solventindependent
+

Lists of names in a sentence read "A, B and C" (#425)

+
browser · author + co-author · 2026-10-07T02:46:53.000Z
+

Lists of names in a sentence read "A, B and C" (#425) + +Closes #196 + +The delete confirmation for a recording now names the units it moves as +"USD, XAU-ozt and XAG-ozt" instead of chaining them with "and". Every +other list of names in a sentence reads the same way: the archived +holdings and what a partial delete keeps on a recording, the units whose +prices were not updated when recording or updating values, and the +notice after leaving with unsaved changes. + +<details> +<summary>Technical</summary> + +- `listed()` in `solvent/static/js/dom.js` joins names as "A", "A and +B", "A, B and C". `view-recording.js`, `view-forms.js`, +`view-holding-form.js`, `view-sweep.js` and `app.js` use it in place of +`join(', ')` and `join(' and ')`. +- The verb already agreed with the count on `master` ("1 holding ... +moves"). +- `spec/design-system.md`, Figures, gains the rule. +`spec/features/record-snapshot.md` updates the leave notice copy and +adds criterion 104. +- Tests: `tests/browser/parts/recording-detail-units.mjs`, and +reviewer's `*-review-names.mjs` parts for Recording detail, Snapshot +entry, Update values and Account detail. +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
MarwanMoh11/Gymtrackindependent
+

Port the headless watch-command and widget scripts to Swift Testing and delete them (#40)

+
workflow · author + co-author · 2026-10-07T02:02:22.000+03:00
+

Port the headless watch-command and widget scripts to Swift Testing and delete them (#40) + +* Port the ten headless watch-command and widget scripts to Swift Testing and delete them + +Part 2 of #6. The scripts each compiled a slice of the app against stubs, and +three of those stubs behaved differently from the app: acceptWatchWorkout always +linked, discardOrphanWorkout always succeeded, and publishHeadless recorded +every call. The new tests run the real code in the hosted app. + +WatchCommandCenter gains one seam: its Health save, backfill, orphan discard and +phone-workout note go through `health`, each the real call by default, and the +Health task it starts is kept in `healthFollowUp` so a test can await it rather +than sleep. HealthKitService has a private init and no store in a test host, so +without it nothing could see what the headless path asked of Health. + +The rig the headless tests drive the center with moves to GymTrackTests/Support +so later parts can use it. The widget tests take their day from TestClock, so +they no longer fail between midnight and 00:18 or on daylight-saving days. + +Co-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com> +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> + +* Port the three late-log repairs the first pass missed + +late-wrist-log-repairs also checked that a set the phone took back stays taken +back through the wrist's Finish, before and after the phone's own Finish, and +that a late log, its undo and a re-log land in either order. Those blocks were +left out of the port; they are tests now, so every assertion of the deleted +script has a home. + +Co-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com> +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> + +--------- + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com> +Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Opus 5.5, Claude Opus 5.5, claude[bot], Claude Opus 5.5
+
+ +
rpvessoni-sys/Commodities-Radarindependent
+

leitura 2026-10-07 (#107)

+
implementation · author + co-author · 2026-10-07T01:55:43.000Z
+

leitura 2026-10-07 (#107) + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+ +
leandersabel/solventindependent
+

A recording no longer says silver or m2 will be filled in after Update (#424)

+
testing · author + co-author · 2026-10-07T01:47:43.000Z
+

A recording no longer says silver or m2 will be filled in after Update (#424) + +Closes #195 + +A recording no longer says a unit nobody publishes, such as silver or +m2, "is filled in after Update". It names a unit as empty only when its +price source did not answer for that date. + +<details> +<summary>Technical</summary> + +- `view-recording.js`: the missing-price lines keep only units where +`vault.quotable(unit, date)` holds, and none on a date that is not a +recorded day, since a misdated recording has no Update and no source +prices it. +- `record-snapshot.md`, Recording detail, States: a unit with no rate +source at the date is not named. New criterion 103 (blind). +- Tests: a check in `recording-detail.mjs`, and the reviewer's +`recording-detail-review-unpriced.mjs`. +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
MarwanMoh11/Gymtrackindependent
+

Give the Library's first open a minute in the UI tests, so a busy CI simulator stops failing them (#38)

+
interface · author + co-author · 2026-10-07T01:46:24.000+03:00
+

Give the Library's first open a minute in the UI tests, so a busy CI simulator stops failing them (#38) + +Two pull requests that never touched the Library went red in ui-tests +because its title, and in the other run its exercise count, missed the +ten-second wait after the tab was tapped. Measured on an idle runner, the +app spends about half a second building the screen (the full-library +search is under ten milliseconds of that), and the screen appears about +four and a half seconds after the tap, up to a second behind the other +tabs. The failed runs had a simulator that took 45 seconds to launch and +36 for one accessibility snapshot, so the slowest tab was the one to run +out of time. + +The three waits for the first thing on the Library now allow a minute, +which outlasts a snapshot that slow. Every assertion is unchanged, and a +Library that never opens still fails. + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> +Co-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+ +
MarwanMoh11/Gymtrackindependent
+

Keep the unit-test host's window empty, so RootView's launch work never resets what a test set up (#37)

+
context · author + co-author · 2026-10-07T01:29:38.000+03:00
+

Keep the unit-test host's window empty, so RootView's launch work never resets what a test set up (#37) + +A unit-test host already skipped configureServices so the tests own the +singletons, but its window still showed RootView. That view's launch work +then ran against the host's empty in-memory store whenever the window +appeared: setCustom([]) and the hidden list on the shared catalog, the +watch link's screen handler, the watch bridge, the widgets and Health. +Landing after a test had set one of those up would change what it saw. + +The host now shows nothing in its window. A real launch and a UI-test +launch still show RootView, and the UI tests keep proving it. + +Closes #8 + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com> +Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+ +
MarwanMoh11/Gymtrackindependent
+

Send a Start from the watch live instead of behind a queued request for the mirror (#31)

+
workflow · author + co-author · 2026-10-07T01:26:44.000+03:00
+

Send a Start from the watch live instead of behind a queued request for the mirror (#31) + +The wrist queued a request for the mirror whenever it could not send it live: +at launch, on a wrist raise, on a return to range, and whenever a live send +failed. While anything sat in that queue, every later command went into it +too, a Start included, and the system delivers the queue when it chooses. So +a Start tapped after any of those waited there instead of going live: the +watch sat on "Starting" and gave up, and the phone began the workout whenever +the queue finally arrived. The request the idle screen sends three seconds +after a Start, to recover a lost reply, was queued behind it the same way, so +it never recovered anything. + +A request for the mirror now goes live or not at all, as a live heart-rate +reading already did, and holds nothing up. A Start waits in the queue only +behind the end of the last workout, since ahead of it the phone would answer +with the session the wrist has just closed. Everything else keeps the order +it was tapped in. The rule lives in WatchCommandRouting so it can be tested +without a paired phone. + +Closes #20 + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Marwan Abudaif <126610607+MarwanMoh11@users.noreply.github.com> +Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 5.5
+
+ +
leandersabel/solventindependent
+

A typed price on a line nobody publishes a price for no longer says there is no price (#421)

+
browser · author + co-author · 2026-10-07T01:21:55.000Z
+

A typed price on a line nobody publishes a price for no longer says there is no price (#421) + +Closes #193 + +When you type a price into a rate line for a unit nobody publishes a +price for, the line now reads "Typed by you" and only says why the price +is yours to set. It no longer also says "No price for m2 yet.", how old +the last price is, or asks for a price. The same goes for a line dated +before a unit's published prices begin. + +<details> +<summary>Technical</summary> + +- `solvent/static/js/view-sweep.js`, `line.describe`: in the `early` and +`!quotable` branches, a changed line takes precedence and shows only +`earlyCopy()` or `ownCopy()`. +- `spec/features/record-snapshot.md`, Screens: a statement for a typed +price on a line with no rate source at this date. Criteria 16 and 17 +cover it. +- Tests: a new check in `tests/browser/parts/update-values.mjs`, and the +reviewer's `tests/browser/parts/update-values-review-typed.mjs`. + +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
leandersabel/solventindependent
+

Screen readers name the Password and Confirm password fields when registering (#420)

+
browser · author + co-author · 2026-10-07T00:53:47.000Z
+

Screen readers name the Password and Confirm password fields when registering (#420) + +Closes #191 + +On both registration forms, a screen reader now names the Password and +Confirm password fields by the label beside them. Username and Main +currency were already named. + +<details> +<summary>Technical</summary> + +- `solvent/static/js/register-form.js`: the two password inputs get ids +`register-password` and `register-confirm`, and their labels point at +them with `for`. +- `spec/features/register.md`: new acceptance criterion 51. +- Tests: a check in `tests/browser/parts/register.mjs` that each field's +label names it, and the reviewer's +`tests/browser/parts/register-review-names.mjs`, which reads the names +from Chrome's accessibility tree. Both fail on `master` for the two +password fields. +- Main currency got its label in #402. The same unlinked labels on the +administrator's and Settings screens are #388 and #385. + +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
electron/electronindependent
+

test: run WebContentsView focusOnNavigation and shell.openExternal specs serially (#54662)

+
browser · author + co-author · 2026-10-07T00:48:41.000Z
+

test: run WebContentsView focusOnNavigation and shell.openExternal specs serially (#54662) + +* test: wait for focus event in WebContentsView focusOnNavigation spec + +The WebContentsView focusOnNavigation block was not tagged serial, unlike +the equivalent block in api-web-contents.spec.ts. On macOS another +parallel worker (notably the shell.openExternal specs, which bring the +default browser to the front) can take app activation away mid-test. +The window then stops being key, ReadyToCommitNavigation skips focusing +because the owner window is inactive, and isFocused() returns false. + +Run the block in the serial phase, and wait for the webContents 'focus' +event after navigating instead of checking isFocused() as soon as +loadURL resolves. + +Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> +Claude-Session: https://claude.ai/code/session_01X1mwQWDtyUGtjT3hFLoqms + +* test: run shell.openExternal specs serially + +On macOS the shell.openExternal specs launch the default browser and bring +it to the front. While they ran in the parallel phase, that took app +activation away from focus-sensitive specs in other workers (for example +the WebContentsView focusOnNavigation spec on macOS x64). Run them in the +serial phase so nothing else is running when the browser activates. + +Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> +Claude-Session: https://claude.ai/code/session_01X1mwQWDtyUGtjT3hFLoqms + +--------- + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Opus 5.5 (1M context), Claude Opus 5.5 (1M context), Claude
+
+ +
leandersabel/solventindependent
+

Product description says a price's source is shown on its recording, not on a holding's list of values (#419)

+
context · author + co-author · 2026-10-07T00:29:50.000Z
+

Product description says a price's source is shown on its recording, not on a holding's list of values (#419) + +Closes #188 + +Nothing in the app changes. Two descriptions of the product said a +holding's own list of values shows the price on each date and where it +came from. The app shows the value, its figure in your main currency and +a link to that day's recording, where the price and its source are. Both +descriptions now say so. + +<details> +<summary>Technical part</summary> + +- `spec/features/rate-lookup.md`, "Where you meet a price": drops the +holding's history, which shows converted figures but never a price or +its source. +- `spec/features/record-snapshot.md`, the "No screen of nothing but +prices" bullet: provenance points to Recording detail instead of the +holding's page. +- Both now agree with `spec/features/manage-accounts.md`, Account detail +("No Rate, Source or price-date column"). +- No code, test or acceptance criterion changes. `reviewer` found +nothing. + +</details> + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
Comfy-Org/ComfyUI_frontendindependent
+

feat(website): add CTAs and footer link to Nano Banana 2.1 page (#20370)

+
browser · author + co-author · 2026-10-07T00:27:26.000Z
+

feat(website): add CTAs and footer link to Nano Banana 2.1 page (#20370) + +<!-- ccr-slack-attribution --> +_Requested by **June** · [Slack +thread](https://comfy-organization.slack.com/archives/C0B9ZNZFZB8/p1791330664897469)_ + +## Summary + +**Before:** The /nano-banana page showed the intro copy and badges with +no buttons under it, so a visitor had no direct way to run the model or +open the guide. The footer Models column had no Nano Banana 2.1 entry. + +**After:** Two buttons sit below the intro copy: RUN NANO BANANA 2.1 +(primary, opens Comfy Cloud with the Nano Banana 2.1 text-to-image +template) and READ THE GUIDE (secondary, opens the Comfy Router guide +for Nano Banana 2.1 in the docs). Both open in a new tab. The footer +Models column now lists Nano Banana 2.1 and links to /nano-banana. + +How: the page already supports hero buttons (same as ChatGPT Images +2.5), so this sets `primaryCta` and `secondaryCta` on the Nano Banana +hero data and adds `en` and `zh-CN` labels. The run link carries the +same utm params as the page's existing Cloud link. The footer entry +reuses the existing `routes.nanoBanana` route with a new +`footer.nanoBanana` string in `en` and `zh-CN`. + +## Verification + +- Localization: `en` and `zh-CN` strings added for both buttons and the +footer link. The `/zh-CN/nano-banana` page already exists, so no new +page twin was needed. The zh-CN button labels are "运行 Nano Banana 2.1" +and "查看教程", copied from the ChatGPT Images 2.5 page wording; worth a +native check. +- Tests: `vitest run` on `src/templates/model-launch` and +`src/components/common` (219 passed); `pnpm typecheck:website`, `pnpm +--filter @comfyorg/website format:check` and eslint on the changed files +are clean. +- Not run: e2e and screenshots (no browser in this environment); see the +deploy preview for the visual check. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +https://claude.ai/code/session_01BBFcxj8fzUA7Dbvrnm69RP + + +--- +_Generated by [Claude +Code](https://claude.ai/code/session_01BBFcxj8fzUA7Dbvrnm69RP)_ + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
leandersabel/solventindependent
+

A used invite shows the day it was used and links its username to Accounts (#418)

+
browser · author + co-author · 2026-10-07T00:03:27.000Z
+

A used invite shows the day it was used and links its username to Accounts (#418) + +Closes #187 + +A used invite now says who used it and on which day, for example "Used +sarah on 14.03.2026". Clicking the name opens Accounts at that person's +row. When the account has since been removed, the row reads "account +removed" with the day, and nothing links. + +<details> +<summary>Technical</summary> + +- `solvent/static/js/page-admin.js`: the Status cell reads chip, +username, " on " and the day in the Created column's format. The +username is a `link-button`, which switches to Accounts and passes the +username to `accounts()`. The matching row's username cell gets +`tabindex="-1"`, is scrolled into view and focused, by comparing fetched +data, never a selector built from the username. An account removed while +Invites was open is absent, and nothing is focused. +- `solvent/static/css/tokens.css`: the focused username cell draws the +petrol-600 focus ring, and the link button keeps a 44px target at phone +width. +- `spec/features/admin-invites.md`: the Status bullet states the day, +the link and the focus, and that the username starts the next line where +it does not fit beside the chip (at 320 and 901px the space beside the +chip is 79px). Criterion 57 is new, and 51, 53 and 57 name the +reviewer's part. +- Tests: `tests/browser/parts/admin.mjs`, +`tests/browser/parts/admin-phone.mjs` (a username button may split, as +the page lets a username break anywhere), and the reviewer's +`tests/browser/parts/admin-review-used.mjs`. +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+

Note pictures (#620): suite reports a refused insert as a check, not a crash

+
interface · author + co-author · 2026-10-06T23:56:32.000Z
+

Note pictures (#620): suite reports a refused insert as a check, not a crash + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+ +
Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+

Note pictures (#620): Storage Rules candidate, browser suite, owner-only fetch

+
browser · author + co-author · 2026-10-06T23:45:48.000Z
+

Note pictures (#620): Storage Rules candidate, browser suite, owner-only fetch + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+ +
Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+

Note pictures (#620): resize + upload module, Storage stub, 🖼 button, pictures shown when a Note is read

+
implementation · author + co-author · 2026-10-06T23:41:51.000Z
+

Note pictures (#620): resize + upload module, Storage stub, 🖼 button, pictures shown when a Note is read + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+ +
Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+

Note pictures (#620): sanitiser keeps data-mmsa-image paths only; path + step-down module; pure checks

+
implementation · author + co-author · 2026-10-06T23:39:39.000Z
+

Note pictures (#620): sanitiser keeps data-mmsa-image paths only; path + step-down module; pure checks + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+ +
electron/node-abiindependent
+

ci: set cache-mode on release workflows (#306)

+
workflow · author + co-author · 2026-10-06T23:25:53.000+01:00
+

ci: set cache-mode on release workflows (#306) + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/node-minidumpindependent
+

ci: set cache-mode on release workflows (#163)

+
workflow · author + co-author · 2026-10-06T23:25:41.000+01:00
+

ci: set cache-mode on release workflows (#163) + +Add top-level `cache-mode: none` to release.yml so the release run +(and the test/build workflows it calls via `uses:`) never reads from +or writes to the GitHub Actions cache. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/github-app-authindependent
+

ci: set cache-mode on release workflows (#66)

+
workflow · author + co-author · 2026-10-06T23:25:29.000+01:00
+

ci: set cache-mode on release workflows (#66) + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/symbolicate-macindependent
+

ci: set cache-mode on release workflows (#121)

+
workflow · author + co-author · 2026-10-06T23:25:21.000+01:00
+

ci: set cache-mode on release workflows (#121) + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/chromedriverindependent
+

ci: set cache-mode on release workflows (#193)

+
workflow · author + co-author · 2026-10-06T23:25:15.000+01:00
+

ci: set cache-mode on release workflows (#193) + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/devtronindependent
+

ci: set cache-mode on release workflows (#378)

+
workflow · author + co-author · 2026-10-06T23:24:59.000+01:00
+

ci: set cache-mode on release workflows (#378) + +Add top-level `cache-mode: none` to release.yml so release runs never +read from or write to the Actions cache, regardless of per-step +settings. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/rebuildindependent
+

ci: set cache-mode on release workflows (#1307)

+
workflow · author + co-author · 2026-10-06T23:24:57.000+01:00
+

ci: set cache-mode on release workflows (#1307) + +Add top-level `cache-mode: none` to release.yml and docs.yml so the +release and docs-publish paths never read from or write to the Actions +cache, regardless of per-step settings. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/tropindependent
+

feat: request original approvers on manual backports of claude[bot] PRs (#437)

+
context · author + co-author · 2026-10-06T23:23:43.000+01:00
+

feat: request original approvers on manual backports of claude[bot] PRs (#437) + +Manual backports request review from the original PR's author and the +optional default review team. When claude[bot] opens both the original +PR and its backport, nobody is requested. When the original PR's author +is claude[bot], request the users whose latest review on it is an +approval instead, skipping bots and the backport's author, and keeping +the existing write-access check. + + +Claude-Session: https://claude.ai/code/session_01ViXXtuJhgzS1RHhwnk26N5 + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/rebuildindependent
+

fix: include target platform in .forge-meta rebuild marker (#1319)

+
context · author + co-author · 2026-10-06T23:23:11.000+01:00
+

fix: include target platform in .forge-meta rebuild marker (#1319) + +The `.forge-meta` marker only recorded `${arch}--${ABI}`, so once a module +had been rebuilt for one platform, a later run targeting a different +platform (via the `platform` option) in the same node_modules would skip +it and keep the previous platform's binary. Record the platform as well. + +Existing markers no longer match, so each module is rebuilt once after +upgrading. + +Refs: electron-userland/electron-builder#10031 + + +Claude-Session: https://claude.ai/code/session_01NEnGhaCaJpaCKqnpBqpWJs + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
leandersabel/solventindependent
+

Adding a unit shows Rate lookup, held at Entered by hand with the reason (#417)

+
browser · author + co-author · 2026-10-06T23:04:02.000Z
+

Adding a unit shows Rate lookup, held at Entered by hand with the reason (#417) + +Closes #186 + +Adding a unit now shows the Rate lookup setting. It is held at "Entered +by hand", with the reason beside it, because every unit a price source +serves is already in the list. A unit added without a source, such as +the currency XTS, stays on "Entered by hand" in the unit list and cannot +be switched to automatic. + +<details> +<summary>Technical part</summary> + +- `solvent/static/js/page-admin.js`: the Add a unit form gets a disabled +Rate lookup `select` at `false` with the no-source hint. The reason text +is one constant shared with the table rows. The `POST` still sends +`lookup: false`. +- The server side, `hasAdapter` from the registry and `lookup: true` +refused without an adapter, already held on `master` since #350. The +reviewer's tests now pin it for added units. +- `spec/features/admin-invites.md`: the form's Rate lookup line and +criterion 56. +- Tests: `tests/browser/parts/admin.mjs`, +`tests/browser/parts/admin-review-unit-lookup.mjs`, four tests in +`tests/test_review_rate_lookup.py`. + +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
leandersabel/solventindependent
+

Adding a metal is refused unless its code names a weight (#416)

+
browser · author + co-author · 2026-10-06T22:31:41.000Z
+

Adding a metal is refused unless its code names a weight (#416) + +Closes #185 + +An administrator can no longer add a metal whose code names no weight. +The add form refuses it and shows the expected shape: `<code>-ozt` or +`<code>-g`, such as `XAU-ozt`. A metal stored without a weight moves to +Retired and cannot be restored. Holdings already measured in it keep +their unit and their prices. + +<details> +<summary>Technical</summary> + +- `solvent/rates.py`: `POST /api/admin/symbols` holds a metal to +`METAL_PATTERN`, `^(?=.{1,16}$)[A-Z0-9][A-Z0-9._]*-(ozt|g)$`. Both +patterns now use `fullmatch`, because `re.match` with `$` admits a +trailing newline. `PATCH` with `retired: false` on a weightless metal is +a Bad Request. +- `solvent/db.py`: every start retires the metal rows that fail +`METAL_PATTERN`. +- `solvent/static/js/page-admin.js`: refusal copy for a metal names the +shape. A retired weightless metal has Restore disabled, with its reason +beside it. +- Spec: `rate-lookup.md` (Maintaining the table, Seeded symbols, SSRF +and egress hardening, criteria 81 and 82) and `admin-invites.md` (Units, +its error states, criteria 54 and 55). +- Tests: `tests/test_rates.py`, `tests/browser/parts/admin.mjs`, and the +reviewer's `tests/test_review_rate_lookup.py` and +`tests/browser/parts/admin-review-units.mjs`. +- Filed outside this change: #414, #415. +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
electron/windows-installerindependent
+

ci: set cache-mode on release workflows (#616)

+
workflow · author + co-author · 2026-10-06T22:25:44.000Z
+

ci: set cache-mode on release workflows (#616) + +Add top-level `cache-mode: none` to release.yml so the release run (and +the test.yml jobs it calls) never reads from or writes to the Actions +cache, regardless of per-step cache settings. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/mksnapshotindependent
+

ci: set cache-mode on release workflows (#179)

+
workflow · author + co-author · 2026-10-06T22:25:33.000Z
+

ci: set cache-mode on release workflows (#179) + +Add top-level `cache-mode: none` to release.yml so release runs never +read from or write to the Actions cache, regardless of per-step +settings. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/typescript-definitionsindependent
+

ci: set cache-mode on release workflows (#357)

+
workflow · author + co-author · 2026-10-06T22:25:32.000Z
+

ci: set cache-mode on release workflows (#357) + +Add top-level `cache-mode: none` to release.yml so the release run (and +the test.yml jobs it calls) never reads from or writes to the Actions +cache, regardless of per-step cache settings. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/windows-signindependent
+

ci: set cache-mode on release workflows (#124)

+
workflow · author + co-author · 2026-10-06T22:25:24.000Z
+

ci: set cache-mode on release workflows (#124) + +<!-- ccr-slack-attribution --> +_Requested by **David Sanders** · [Slack +thread](https://electronhq.slack.com/archives/C0BERTA8EKW/p1789070712587299)_ + +**Before:** The `Release` workflow (push to `main`) and the `Publish +documentation` workflow (tag push) had no workflow-level cache policy. +Every job in them, including the `test` job that `Release` calls via +`uses: ./.github/workflows/test.yml`, could read from and write to the +GitHub Actions cache if any step asked for it; the only thing keeping +them cache-free was the per-step `package-manager-cache: false` setting +on `actions/setup-node`. + +**After:** Both workflows declare `cache-mode: none` at the top level, +so no job in a release or docs-publish run can restore or save a cache +entry regardless of per-step settings. Because `cache-mode` on the +caller also caps any reusable workflow it calls, the `test.yml` jobs run +cache-free when invoked from `Release` (they keep their normal caching +when `test.yml` runs on its own for pull requests). The existing +`package-manager-cache: false` lines are left in place. + +This uses GitHub's new workflow-level `cache-mode` key, which lets +release paths be made cache-free by policy rather than by convention: +https://github.blog/changelog/2026-09-10-control-github-actions-cache-access-with-cache-mode/ +and +https://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax#cache-mode. + +**How:** Adds a commented `cache-mode: none` line after the top-level +`permissions:` block in `.github/workflows/release.yml` and +`.github/workflows/docs.yml`, preserving the files' existing CRLF line +endings. No other lines change; `test.yml` is untouched so PR CI keeps +its cache. + +Note that PR CI does not exercise the release or docs workflows, so the +first release (and first tag push) after merge is the real test. If a +step is denied cache access, `actions/cache` and the `@actions/cache` +toolkit log a message and continue (a skipped restore behaves as a cache +miss, a skipped save is a no-op) rather than failing the job. Local +validation: the files parse as YAML and zizmor 1.30.1 reports no new +findings; actionlint 1.7.12 flags `cache-mode` as an unexpected workflow +key because its schema predates the feature (this repo does not run +actionlint in CI). + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +--- +_Generated by [Claude +Code](https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd)_ + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/osx-signindependent
+

ci: set cache-mode on release workflows (#449)

+
workflow · author + co-author · 2026-10-06T22:25:19.000Z
+

ci: set cache-mode on release workflows (#449) + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/fusesindependent
+

ci: set cache-mode on release workflows (#136)

+
workflow · author + co-author · 2026-10-06T22:25:16.000Z
+

ci: set cache-mode on release workflows (#136) + +Add the workflow-level `cache-mode: none` key so release and docs-publish +runs never read from or write to the Actions cache. + + +Claude-Session: https://claude.ai/code/session_01MYe3WCXtgiqomNuVQdi4Yd + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
electron/build-toolsindependent
+

fix: include clang-tidy in siso clang toolchain subtree (#910)

+
context · author + co-author · 2026-10-06T22:23:28.000Z
+

fix: include clang-tidy in siso clang toolchain subtree (#910) + +siso uploads the third_party/llvm-build/Release+Asserts:headers filegroup +as a precomputed subtree and skips any other input under that directory. +The electron/clang-tidy rule lists +third_party/llvm-build/Release+Asserts/bin/clang-tidy as an explicit +input, which only reached the RBE workers because Chromium's glob +included bin/clang-*. + +https://crrev.com/c/8471431 narrowed that glob to bin/clang-cl, +bin/clang-cl.exe and bin/clang-[0-9]*, so clang-tidy is now dropped and +the remote tidy steps fail with exit 127 ("clang-tidy: No such file or +directory"). Add bin/clang-tidy back to the filegroup's includes. This +is a no-op on older Chromium, where bin/clang-* already matches it. + + +Claude-Session: https://claude.ai/code/session_01V38FjDEdZgMvFpf5Fmp65m + +Co-authored-by: Claude <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude
+
+ +
Madrasatul-Muslimeen/Madrasatul-Muslimeen.github.ioindependent
+

Link previews: put the menu item last so existing menu positions do not move (#619)

+
interface · author + co-author · 2026-10-06T22:05:47.000Z
+

Link previews: put the menu item last so existing menu positions do not move (#619) + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author Claude Sonnet 5.5
+
+ +
leandersabel/solventindependent
+

Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413)

+
testing · author + co-author · 2026-10-06T21:49:38.000Z
+

Typing a price where none is stored saves without a confirmation, and the confirmation names only prices that move a holding (#413) + +Closes #184 + +Typing a price where none is stored for that date no longer asks first. +This covers a price typed on the value form over an empty line, a +proposal or an estimate. When you change a stored price on a recording +you reopened, the confirmation leaves out any unit whose change moves no +holding on that date. When nothing is left to name, it does not open. It +no longer says "moves 0 holdings" or that your net worth changes when it +does not. + +<details> +<summary>Technical</summary> + +- `view-forms.js`: the form's price confirmation is gone. Its lines +never hold a stored entry, so every save there fills in a missing price, +as the sweep at a new date does. +- `view-sweep.js`: `rateChangeCopy` drops an update whose `holdingsIn` +count is 0. `saveRates` saves without a dialog when the copy is empty. A +clear always confirms, because it moves the neighbors' stretch and can +leave a unit unpriced. +- Spec: `record-snapshot.md` (The prices line, Changing or clearing a +rate says what it moves, criterion 30, new criterion 102) and +`record-rate.md` (The rate-lines save, Editing a captured rate). +- Tests: `snapshot-entry.mjs` (a proposal and an estimate changed on the +form ask nothing), a `tests/client/run.mjs` check, and the reviewer's +`snapshot-entry-review-first-price.mjs` and +`update-values-review-first-price.mjs`. +- The sweep's half of the report (filling an empty line on a reopened +recording) was already fixed by #325. + +</details> + +--------- + +Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

+
author claude[bot] · committer web-flow · co-author claude[bot]
+
+ +
bamr87/lifehacker.devindependent
+

content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688)

+
infra · author + co-author · 2026-10-06T21:49:02.000-06:00
+

content(doc): trim over-length SEO description in two-locks-and-one-is-a-decoy (#688) + +The `description:` frontmatter was 227 chars; lint_frontmatter.rb's SEO soft +cap is 160 (warn-only rule `description-too-long`). Rewrote it to 156 chars +while keeping Cass's threat-model irony intact (whitelist holds; the CI +blacklist "has a bad night eventually"). + +Closes #681 +Closes #686 + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Opus 4.8
+
+ +
Revokeeee/MyRevoke2.0-AIindependent
+

build: add stage-editor.ps1 to assemble a self-contained editor folder

+
interface · author + committer + co-author · 2026-10-06T21:07:04.000Z
+

build: add stage-editor.ps1 to assemble a self-contained editor folder + +Builds RevokeCraft in Dist and copies the exe, OpenAL32.dll, mono/lib, +resourses/ and projects/Example into dist/MyRevoke, pruning import +libraries, debug info, intermediates and imgui.ini. + +Closes #37 + +Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+ +
JW-Incorporated/swift2independent
+

a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203)

+
interface · author + co-author · 2026-10-06T19:25:56.000-07:00
+

a11y: solid accent fill for LockedPayoff's era chip (#3663) (#5203) + +The blurred era-label chip inside Decode's LockedPayoff painted the +payoff era's raw accent as text over that same accent at ~15% tint — +3.93:1 on Midnights/evermore, under WCAG 1.4.3's 4.5:1 floor. The chip +is colored by the payoff's era rather than the page's, so no +surface-calibrated token can guarantee the pairing; this applies #3318's +proven shape instead: solid accent fill + accentFgFor foreground, the +same fix already merged for #3396/#3397/#3411. A source-lock regression +test keeps the text-on-self-tint pairing from coming back. + +Ports attempt 1 (PR #3751, closed unmerged as superseded by #3704, +which itself died stale) to the component's post-migration home in +packages/ui. + +Tier-2: Austin — build runs + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Fable 5
+
+ +
JW-Incorporated/swift2independent
+

test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252)

+
interface · author + co-author · 2026-10-06T19:18:21.000-07:00
+

test: derive heroVideoFor's promoted set from the vault, not a hardcoded 11 (#5252) + +Photo Enrichment giving a video-carrying page its own MV still as the +hero GROWS the promoted set by design, but video-affordance.test.ts +asserted promoted.toHaveLength(11) — so every such pass failed a test +the seed-only lane is not allowed to fix, and Vault Run 2026-10-05 had +to revert 6 verified photos (b7fc243b) to ship green. Computing the +expected set from the corpus through the public helpers (youtubeFrameId, +primaryImageRef, isSubConfirmed) keeps the assertion meaningful (set +equality, non-empty) while letting the corpus grow. Verified both ways: +passes at today's 11 and, with b7fc243b applied locally, at 17. + +Closes #5192 + +Tier-2: Austin — build runs + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Fable 5
+
+ +
jjhoncv/vitrinaindependent
+

feat(#4): título SEO y sitemap (#15)

+
interface · author + co-author · 2026-10-06T18:56:19.000-05:00
+

feat(#4): título SEO y sitemap (#15) + +Closes #4 + +Escenarios en verde: +- Título para buscadores: `/productos/taza-de-ceramica` → «Taza de +cerámica | Vitrina» +- Sitemap con los productos: `/sitemap.xml` incluye +`/productos/taza-de-ceramica` + +Qué cambia: +- `generateMetadata` en la landing: título «<nombre> | <proyecto>» y +descripción del producto. +- `app/sitemap.ts`: portada + una URL por producto. Base absoluta desde +`URL` (Netlify), con fallback a `http://localhost:3000`. + +Cómo probarlo: `npm test && npm run build && npm run e2e`, o abrir +`/sitemap.xml` y el `<title>` de una landing. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+ +
jjhoncv/vitrinaindependent
+

feat(#3): landing por producto y página de no encontrado (#14)

+
interface · author + co-author · 2026-10-06T18:51:02.000-05:00
+

feat(#3): landing por producto y página de no encontrado (#14) + +Closes #3 + +## Escenarios en verde +- «Abrir la landing de un producto» +- «Producto que no existe» + +## Qué cambia +- `/productos/<slug>` con nombre, foto, descripción, precio y proveedor. +- `notFound()` con página «Producto no encontrado» si el slug no existe. +- La portada enlaza cada producto a su landing. + +## Cómo probarlo +`npm run e2e`, o `FUENTE_PRODUCTOS=fixture npm run dev` y abrir +`/productos/taza-de-ceramica` y `/productos/no-existe`. +Lint, typecheck, tests unitarios, build y e2e pasan. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+ +
jjhoncv/vitrinaindependent
+

feat(#2): portada con los productos de la hoja (#12)

+
browser · author + co-author · 2026-10-06T18:38:06.000-05:00
+

feat(#2): portada con los productos de la hoja (#12) + +Closes #2 + +**Escenario:** «Ver el catálogo» +(`features/fase-1-catalogo-publico.feature`) en verde: la portada +muestra Taza de cerámica y Libreta A5 con foto, nombre y precio. + +**Qué cambia** +- `lib/productos.ts`: fuente de datos `obtenerProductos()`. Lee la +pestaña `productos` con Sheets API + service account; con +`FUENTE_PRODUCTOS=fixture` usa `mocks/fixtures/productos.json` (ADR +0001, ADR 0002). +- Portada `app/page.tsx` con la lista de productos (dinámica, sin +caché). +- Playwright levanta el servidor con el fixture. + +**Cómo probarlo:** `npm run lint && npm run typecheck && npm test && npm +run build && npm run e2e` (todo pasa; el escenario sale en verde). + +**Necesito de Jhonnatan** +- Service account de Google Cloud con lectura a la hoja y el ID de la +hoja. Configurar `GOOGLE_SHEET_ID`, `GOOGLE_SERVICE_ACCOUNT_EMAIL` y +`GOOGLE_PRIVATE_KEY` en las variables de Netlify, y compartir la hoja +con ese correo. +- Ojo: sin esas variables, la portada en staging/producción falla (y con +ella el smoke de inicio). La lectura real de Google no está probada; +solo el parseo de filas y el fixture. + +🤖 Generated with [Claude Code](https://claude.com/claude-code) + +--------- + +Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> +Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer web-flow · co-author claude[bot], Claude Sonnet 5.5
+
+ +
AlperenGuntekin/text-expansion-calculatorindependent
+

docs(readme): refresh topics + shotlingo cross-links

+
docs · author + committer + co-author · 2026-10-06T11:02:25.000Z
+

docs(readme): refresh topics + shotlingo cross-links + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
AlperenGuntekin/shotlingo-text-expansionindependent
+

docs(readme): refresh topics + shotlingo cross-links

+
docs · author + committer + co-author · 2026-10-06T11:02:24.000Z
+

docs(readme): refresh topics + shotlingo cross-links + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
AlperenGuntekin/shotlingo-screenshot-sizesindependent
+

docs(readme): refresh topics + shotlingo cross-links

+
docs · author + committer + co-author · 2026-10-06T11:02:23.000Z
+

docs(readme): refresh topics + shotlingo cross-links + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
AlperenGuntekin/shotlingo-locale-codesindependent
+

docs(readme): refresh topics + shotlingo cross-links

+
docs · author + committer + co-author · 2026-10-06T11:02:21.000Z
+

docs(readme): refresh topics + shotlingo cross-links + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
bamr87/it-journeyindependent
+

fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back

+
interface · author + committer + co-author · 2026-10-06T08:20:40.000Z
+

fix(deps): floor github-pages at >= 232 so Bundler cannot walk it back + +Verified in ruby:3.4 (the Dockerfile image): with no lockfile and an +unconstrained `gem 'github-pages'`, a fresh `bundle install` still resolves +github-pages 222 / jekyll 3.9.0 / liquid 4.0.3 and `jekyll build` exits 1. +With the floor it resolves github-pages 232 / jekyll 3.10.0 / liquid 4.0.4 +and the build passes. A floor is allowed by fleet policy (no pins, no +ceilings). + +Refs bamr87/bamr87#333 + +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Opus 5.5
+
+ +
bamr87/it-journeyindependent
+

fix(deps): stop committing Gemfile.lock (fleet never-commit policy)

+
workflow · author + committer + co-author · 2026-10-06T08:16:41.000Z
+

fix(deps): stop committing Gemfile.lock (fleet never-commit policy) + +Gemfile.lock was tracked despite .gitignore:16. Dependabot's lockfile-only +bundler PR #751 satisfied a ruby-group bump by downgrading github-pages +232 -> 222 (liquid 4.0.3, which calls String#tainted?, removed in Ruby 3.2), +so ci, Jekyll Build Test and dependabot-auto-merge went red every week. + +- git rm --cached Gemfile.lock (the .gitignore rule stays) +- docker-compose.yml comments: the lockfile is local-only, not committed +- AGENTS.md / copilot-instructions.md: drop the stale "must be committed" + guidance in favour of the fleet policy + +Refs bamr87/bamr87#333 + +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Opus 5.5
+
+ +
Reservaste/frontendindependent
+

feat: contacto (email/teléfono) del cliente en la ficha del admin (ADR-0050, Issue #5)

+
implementation · author + committer + co-author · 2026-10-05T14:39:47.000Z
+

feat: contacto (email/teléfono) del cliente en la ficha del admin (ADR-0050, Issue #5) + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
Reservaste/backendindependent
+

feat: contacto (email/teléfono) del cliente en la ficha del admin (ADR-0050, Issue #5)

+
implementation · author + committer + co-author · 2026-10-05T14:39:45.000Z
+

feat: contacto (email/teléfono) del cliente en la ficha del admin (ADR-0050, Issue #5) + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
Reservaste/frontendindependent
+

Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6)

+
implementation · author + committer + co-author · 2026-10-05T14:27:42.000Z
+

Mostrar pedidos de cambio de plan en Pagos y alertar si falla la lectura (Issue #6) + +Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5.5
+
+ +
Revokeeee/MyRevoke2.0-AIindependent
+

Separate user projects from the editor's own files

+
browser · author + committer + co-author · 2026-10-04T23:22:27.000Z
+

Separate user projects from the editor's own files + +The editor kept the user's content in its own install folder, so an installed +editor could not save scenes, and nothing marked which files belong to a game. + +Adds Revoke::Project (a <Name>.mrproject YAML file plus its assets folder) with +New Project / Open Project in the editor. The content browser, scene save/load +and drag-and-drop now point at the open project. The renderer shader moves to +resourses/shaders, and the old assets folder becomes projects/Example. + +Closes #34 + +Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+ +
ag-grid/ag-chartsindependent
+

Refresh yarn.lock after the automated version bump

+
infra · author + committer · 2026-10-04T20:55:13.000Z
+

Refresh yarn.lock after the automated version bump + +The 14.2.0-beta.20261004 bump updated every workspace package.json but not +yarn.lock. Since the Yarn 4 migration the lockfile records workspace +versions, so CI's yarn install --immutable rejected the commit. Regenerate +the lockfile and have bump-versions.sh refresh it on every bump.

+
author claude[bot] · committer claude[bot]
+
+ +
Revokeeee/MyRevoke2.0-AIindependent
+

Extract UUID generation into a seedable UuidGenerator class

+
interface · author + committer + co-author · 2026-10-04T20:38:02.000Z
+

Extract UUID generation into a seedable UuidGenerator class + +UUIDs were generated from module-level static RNG state in +UniversallyUniqueIdentifiers.cpp, so there was no way to make generation +deterministic in a test without reaching into engine internals. + +UuidGenerator now owns its own std::mt19937_64 and distribution. It can be +constructed with an explicit seed for reproducible sequences, or default +constructed to seed from std::random_device as before. UUID's default +constructor wraps a single shared generator instance, so every existing +call site keeps working unchanged. + +Also fixes UUID::Get() returning int64_t for a uint64_t member. + +Closes #14 + +Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+ +
Revokeeee/MyRevoke2.0-AIindependent
+

Add unit tests for the EventSystem module

+
testing · author + committer + co-author · 2026-10-04T20:15:26.000Z
+

Add unit tests for the EventSystem module + +Covers event type/name/category reporting for every event class, the data +each event carries through its constructor and getters, and EventDispatcher +type matching plus the Handled flag. + +Closes #13 + +Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Opus 5
+
+ +
Matysh/houseplan-cardindependent
+

docs: accept derived artifacts on dev for v1.79.0-beta.7

+
docs · author + committer · 2026-10-03T17:11:26.000Z
+

docs: accept derived artifacts on dev for v1.79.0-beta.7 + +Производные артефакты беты — одним коммитом на dev (PROCESS.md §8, §11.4, #697). +Прогон: https://github.com/Matysh/houseplan-card/actions/runs/37139464966 +Скриншоты документации: отпечаток исходников; изменённые кадры: нет. + +Issue: #697 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: accept derived artifacts on dev for v1.79.0-beta.5

+
docs · author + committer · 2026-10-03T11:22:39.000Z
+

docs: accept derived artifacts on dev for v1.79.0-beta.5 + +Производные артефакты беты — одним коммитом на dev (PROCESS.md §8, §11.4, #697). +Прогон: https://github.com/Matysh/houseplan-card/actions/runs/37119340533 +Скриншоты документации: отпечаток исходников; изменённые кадры: нет. + +Issue: #697 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): manual code review of the pending-round witness (#781)

+
docs · committer · 2026-10-02T19:57:08.000+03:00
+

docs(reviews): manual code review of the pending-round witness (#781) + +Manual review requested by the owner after the automated reviewer failed. +Material e931a949: green, no High/Medium findings, one non-blocking Low. + +Issue: #781 +User-Visible: no

+
author Codex · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

test(process): поймать оживление прошлого запроса (#781)

+
testing · committer · 2026-10-02T19:57:08.000+03:00
+

test(process): поймать оживление прошлого запроса (#781) + +Issue: #781 +User-Visible: no

+
author Matysh · committer claude[bot]
+
+ +
reecejunior/techzimintindependent
+

Log 2026-10-02 growth/product strategy notes

+
implementation · author + committer + co-author · 2026-10-02T11:47:51.000Z
+

Log 2026-10-02 growth/product strategy notes + +Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5
+
+ +
reecejunior/techzimintindependent
+

Fix raw ISO timestamp shown on reviewer profile review dates

+
context · author + committer + co-author · 2026-10-02T11:47:18.000Z
+

Fix raw ISO timestamp shown on reviewer profile review dates + +ProfileClient's review history rendered r.createdAt verbatim, e.g. +"2024-06-01T12:34:56.789Z", instead of a readable date. The identical +Review.createdAt field is already formatted with .slice(0, 10) in +StartupDetailClient's ReviewCard — this applies the same fix here so +profile pages are consistent with startup detail pages. + +Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

+
author claude[bot] · committer claude[bot] · co-author Claude Sonnet 5
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #780

+
docs · author + committer · 2026-10-02T10:47:04.000+03:00
+

docs: review document for #780 + +Issue: #780 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): rebuild the review index after rebase onto dev

+
interface · author + committer · 2026-10-02T10:18:38.000+03:00
+

docs(reviews): rebuild the review index after rebase onto dev

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765)

+
workflow · author + committer · 2026-10-02T10:18:29.000+03:00
+

fix(process): prepare and the usage step run pipeline scripts from one pinned dev snapshot (#765) + +The body of _process.yml is read from dev (@dev, #623). After "Перейти на +ветку задачи" the working copy of job prepare is the task branch, and a +show/ship branch with a clean merge is not rebased before review: its +scripts/ may lag dev or be replaced. #749 fixed job integrate; prepare +still ran four control scripts from the material — the issue-body digest +for the anchor, --reuse of a green verdict (#499), validate-gate (#510) +and the spec-change check (#517). The material decided its own admission: +a branch whose review-doc-guard.mjs prints reuse=true merges without the +model. model_review took model-usage.mjs from the material too: a lagging +branch has none, and the publication silently wrote reason=missing. + +Now prepare extracts one snapshot right after setup-node, before the +branch switch: `git rev-parse origin/dev` once and `git archive <sha> +scripts .github/workflows/validate.yml`, so the git fetch of the track and +rebase steps cannot mix versions. Every repo script of the job runs from +it via TOOLS — the track step and the rebase guard lose their own +extractions. The SHA goes out as job output tools_sha; the usage step of +model_review archives the same commit inside itself, so a snapshot failure +is a failure of the reporting step (continue-on-error), not of the stage. +The model session runs on that runner, so the usage line stays untrusted +input parsed strictly (#556, #737). + +withMaterialAnchors is idempotent: a repeated call drops the separator the +previous call wrote instead of piling up `---` lines. + +Tests: test/process-prepare-tools.test.mjs — the job contract (no step +calls scripts/ from the working copy, one pinned archive before the branch +switch, tools_sha reaches model_review) and the steps as they are, on real +bash and git: a branch behind dev without model-usage.mjs and with a +substituted review-doc-guard.mjs; the anchor digest, reuse and the spec +check come from dev, the usage line is data even after dev moved. Red on +the old workflow: all four. Harnesses of process-track, rebase-generated, +review-doc-guard and model-usage take the prepare snapshot. Three registry +mutants (reuse from the material, usage from moving dev, separators). + +Canon: PROCESS.md §10.4 «Скрипты конвейера — из dev» covers prepare and +the usage step; «Расход модели» names it a pipeline step, not the reviewer's. + +Issue: #765 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): independent code review of pipeline snapshot (#765)

+
docs · committer · 2026-10-02T10:18:29.000+03:00
+

docs(reviews): independent code review of pipeline snapshot (#765) + +Manual review requested by the owner after the automated reviewer failed. +Material af09d36d: green, no High/Medium findings, one non-blocking Low. + +Issue: #765 +User-Visible: no

+
author Matysh · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #780

+
docs · author + committer · 2026-10-02T10:09:11.000+03:00
+

docs: review document for #780 + +Issue: #780 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#744)

+
docs · author + committer · 2026-10-01T23:05:23.000Z
+

docs(reviews): индекс после сдвига каталога (#744) + +Issue: #744 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #744

+
docs · author + committer · 2026-10-01T23:05:20.000Z
+

docs: review document for #744 + +Issue: #744 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

fix: keep warm editor adoption subordinate to user navigation (#762)

+
implementation · committer · 2026-10-01T21:00:48.000Z
+

fix: keep warm editor adoption subordinate to user navigation (#762) + +Issue: #762 +User-Visible: yes

+
author Matysh · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

test: await warm navigation request before checking its authority (#762)

+
testing · committer · 2026-10-01T21:00:48.000Z
+

test: await warm navigation request before checking its authority (#762) + +Issue: #762 +User-Visible: no

+
author Matysh · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#762)

+
docs · author + committer · 2026-10-01T21:00:48.000Z
+

docs(reviews): индекс после сдвига каталога (#762) + +Issue: #762 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #762

+
docs · author + committer · 2026-10-01T21:00:48.000Z
+

docs: review document for #762 + +Issue: #762 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

refactor: keep room warm-draft construction in the lazy editor (#762)

+
implementation · committer · 2026-10-01T21:00:48.000Z
+

refactor: keep room warm-draft construction in the lazy editor (#762) + +Issue: #762 +User-Visible: no

+
author Matysh · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #662

+
docs · author + committer · 2026-10-01T20:52:49.000Z
+

docs: review document for #662 + +Issue: #662 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #662

+
docs · author + committer · 2026-10-01T20:33:15.000Z
+

docs: review document for #662 + +Issue: #662 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#740)

+
docs · author + committer · 2026-10-01T18:38:03.000Z
+

docs(reviews): индекс после сдвига каталога (#740) + +Issue: #740 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #740

+
docs · author + committer · 2026-10-01T18:38:00.000Z
+

docs: review document for #740 + +Issue: #740 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

perf(stairs): draw all treads of a stair as one path (#740)

+
browser · author + committer + co-author · 2026-10-01T18:27:53.000Z
+

perf(stairs): draw all treads of a stair as one path (#740) + +A floor with stairs pays for them on every switch to it: the stair layer +is emptied on other floors, so Lit recreates every symbol on each return +and the browser lays out and paints it again. With 250 stairs (the +large-house fixture, the per-floor limit) that was 2,875 SVG elements and +about 40 ms per entry locally; each stair carried 3-7 separate tread lines +with four bound coordinates each. + +The treads of one stair are now a single <path class="hp-stair-tread"> +with one `M a L b` subpath per tread, in geometry order and with the +numbers the lines carried. Treads of one stair never overlap (straight: +parallel, >= 20 cm apart; spiral: inner ends >= 6.7 cm apart at the +3.6 cm stroke), so the path paints the same pixels at any opacity. The +outline points and the tread data are built once per cached geometry +object (cachedStairMarkup, weak keys), not on every render. The View and +plan-editor layers share the strings; outline, hit polygon, trapezoid, +arrow, attributes and handlers are unchanged. Floor 1 of the fixture +drops from 4,210 to 2,960 elements. + +Witnesses: the unit test for the path data and its cache, and the +smoke_stairs markup checks in View and in the plan editor, are red on +dev. The stairs-view-tread-lines mutant restores the View lines. + +Issue: #740 +User-Visible: no +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> +Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd

+
author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+ +
Matysh/houseplan-cardindependent
+

docs(screenshots): source fingerprint for #740 on the current dev — all frames pixel-identical

+
browser · author + committer + co-author · 2026-10-01T18:27:53.000Z
+

docs(screenshots): source fingerprint for #740 on the current dev — all frames pixel-identical + +Validate on the conveyor's rebase eb439e81 failed preflight: the branch +changes visual sources (stairs), so the screenshot check is strict on it, +and the fingerprint was stale against the moved dev (#739, #742, #759). +The branch is rebased onto b84465e5 (inventory counts merged with #742: +lifecycle 89, total 204/200) and `docs:accept --identical` re-captured +all 11 frames: pixel-identical, only the source fingerprint moves. + +Issue: #740 +User-Visible: no +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> +Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd

+
author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #740

+
docs · author + committer · 2026-10-01T18:27:53.000Z
+

docs: review document for #740 + +Issue: #740 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #762

+
docs · author + committer · 2026-10-01T17:53:24.000Z
+

docs: review document for #762 + +Issue: #762 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

fix(process): reconcile canon and hints with the pipeline after #707–#730 (#748)

+
browser · author + committer + co-author · 2026-10-01T16:49:55.000Z
+

fix(process): reconcile canon and hints with the pipeline after #707–#730 (#748) + +Five places still described the pipeline as it was before code that is +already in dev: + +- the S3 hint of the task packet told the author to push the branch, while + the spec lives in the issue body (§2.3, #517) and nothing is pushed + before S5 (§11.8); +- process-gate printed «FAIL п.9 Gates: light» for a trailer nobody writes + or reads, while §10.2 item 9 is the unimplemented release:prerelease + verdict check. The check is removed; a contract test ties every RULES key + to an implemented item of §10.2 and every finding number to a RULES key; +- §10.4 item 4 demanded a heredoc in run:, while #723/#730 and their tests + demand the opposite: commit messages echo line by line into a file, + comment and summary texts come from code; +- the ship merge comment, AUTHOR.md, REVIEWER.md and AGENTS.md named only + the pre-beta document, though since #727 the night reads ship code first; +- the nightly publication committed «docs: ship review for nightly … + перед бетой» with the beta step's Issue: #696. It now has its own + subject (the document name), body and Issue: #727; the beta message is + unchanged. + +The browser-guard inventory note still said growth above 200 fails +mutation-gate --check; since #699 it is a guideline and --check warns. Its +counts now match the inventory: 205, lifecycle 90. + +Issue: #748 +User-Visible: no +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> +Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd

+
author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#748)

+
context · author + committer + co-author · 2026-10-01T16:49:55.000Z
+

docs(reviews): индекс после сдвига каталога (#748) + +Issue: #748 +User-Visible: no +Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> +Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd

+
author claude · committer claude[bot] · co-author Claude Opus 5.5
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #748

+
docs · author + committer · 2026-10-01T16:49:55.000Z
+

docs: review document for #748 + +Issue: #748 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #748

+
docs · author + committer · 2026-10-01T16:49:55.000Z
+

docs: review document for #748 + +Issue: #748 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #748

+
docs · author + committer · 2026-10-01T16:49:55.000Z
+

docs: review document for #748 + +Issue: #748 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#748)

+
docs · author + committer · 2026-10-01T16:49:55.000Z
+

docs(reviews): индекс после сдвига каталога (#748) + +Issue: #748 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#775)

+
docs · author + committer · 2026-10-01T16:44:29.000Z
+

docs(reviews): индекс после сдвига каталога (#775) + +Issue: #775 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs: review document for #775

+
docs · author + committer · 2026-10-01T16:44:28.000Z
+

docs: review document for #775 + +Issue: #775 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

fix(process): bind Validate resume to the current pending round

+
context · committer · 2026-10-01T16:44:28.000Z
+

fix(process): bind Validate resume to the current pending round + +Issue: #775 +User-Visible: no

+
author Matysh · committer claude[bot]
+
+ +
Matysh/houseplan-cardindependent
+

docs(reviews): индекс после сдвига каталога (#772)

+
docs · author + committer · 2026-10-01T16:20:19.000Z
+

docs(reviews): индекс после сдвига каталога (#772) + +Issue: #772 +User-Visible: no

+
author claude[bot] · committer claude[bot]
+
+

official Anthropic

Anthropic-owned repositories are separated so first-party implementation work does not obscure independent activity.

No official Anthropic commits matched this pass.
+
notplanned · Claude activity scoutdeterministic refresh · no per-scan model call
+
diff --git a/index.html b/index.html index 926cc07..695ee86 100644 --- a/index.html +++ b/index.html @@ -49,7 +49,7 @@ footer{padding:0 0 44px;display:flex;justify-content:space-between;gap:24px;colo
notplanned
-
a yolopreneur game
+
claude signal · a yolopreneur game
@@ -92,4 +92,4 @@ footer{padding:0 0 44px;display:flex;justify-content:space-between;gap:24px;colo
- \ No newline at end of file + diff --git a/template.html b/template.html index cf4d08b..d3cafa2 100644 --- a/template.html +++ b/template.html @@ -25,7 +25,7 @@ footer{border-top:1px solid var(--line);padding:24px 0 36px;display:flex;justify
notplanned
- +
@@ -60,4 +60,4 @@ footer{border-top:1px solid var(--line);padding:24px 0 36px;display:flex;justify
notplanned · GitHub scoutdeterministic radar refreshes every 6h · curation only when asked
-
\ No newline at end of file + diff --git a/trending-template.html b/trending-template.html index 7c70edc..663ad05 100644 --- a/trending-template.html +++ b/trending-template.html @@ -13,7 +13,7 @@ header{min-height:76px;border-bottom:1px solid var(--line);display:flex;align-it footer{border-top:1px solid var(--line);padding:24px 0 36px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px} @media(max-width:780px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}
-
notplanned / trending
+
notplanned / trending

what's hot.

A deterministic mirror of GitHub Trending. Daily, weekly, and monthly lists are fetched directly from GitHub, merged by repository, and left uninterpreted.

__DAILY__daily
@@ -24,4 +24,4 @@ footer{border-top:1px solid var(--line);padding:24px 0 36px;display:flex;justify

Updated __UPDATED__ UTC. Badges preserve GitHub's rank for each time window and, when GitHub exposes it, stars gained in that window. “2/3” or “3/3” means the repo appears across multiple Trending windows; it is not an AI score.

__CARDS__
-
\ No newline at end of file +