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
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(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
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
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(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
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
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(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
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]