Repository navigation
Conversation
A Threads profile with no posts (for example @apple) still embeds its timeline as "mediaData":{"edges":[]}, but the route threw "Failed to fetch thread data" whenever it found no thread items, so these profiles answered 503 just like a username that does not exist. Throw only when the timeline data is missing, and return the empty feed otherwise, as the search route does since 965b548.
The `replies` option has done nothing since f936581 moved the route from the GraphQL threads and replies queries to the profile HTML, which only carries posts. Read https://www.threads.com/@<user>/replies when the option is set, and document its real default, false, which it has always had in code.
The SUUMO, LIFULL HOME'S and アットホーム 賃貸 / 売買 routes that follow all emit one `_extra`, ResidentialExtra, so a consumer can store, filter and match their items without per-site code. It lives under suumo because SUUMO is the first of them, as the shop listing contract lives in temposmart/utils. Unknown is null, never 0, and site text is kept in `raw` under stable keys. Only `property_kind` is an interpretation, and only of the site's own 種目 label. `listed_at` comes from 情報公開日 alone, never from an update date, and `built_ym` needs a full 年月, so 築N年 stays null. 敷金 and 礼金 land in the months or the yen column, whichever form the site used; only an explicit 無 or なし becomes 0 in both, and 「-」 stays null because SUUMO prints it both for none and for not stated. A building height written with a basement (「RC14階地下1階建」) reads as 14, not 1. residentialItems turns list units into items. List values are read fresh on every poll and win, and only the detail-page fields are cached per listing, so a price change shows on the next poll rather than after the cache expires. A detail page with no labelled field (a challenge or an error page served with 200) is never cached, and `maxFetches` caps the uncached detail pages one run may request, for sites that refuse a client after a handful of requests.
/suumo/chintai/:pref/:city reads one 市区町村 area page in its own 新着順 (`po1=09`); the default おすすめ順 puts sponsored rooms first. The area pages sort by themselves, so the /jj/ search paths robots.txt disallows are not needed. Each room row is one item, with the building's 種目, name, 所在地, 交通 and 階建 copied onto it. Each room's own page is then read once, three at a time, for what the list does not show: 築年月, 構造, 契約期間, 保証会社, 損保, 取引態様 and 情報更新日. SUUMO publishes no 情報公開日, so `listed_at` stays null and items carry no pubDate; `updated_at` holds the 情報更新日. Radar hands the route the city as the page prints it (`sc_minato`), and it ignores function targets, so the handler strips the prefix itself.
/suumo/ms/chuko/:pref/:city reads the area page in 新着・更新順 (`po=1&pj=2`), one item per property card. A card links to its unit several times (photos, heading), so units are deduplicated on the nc_ id, and the heading is the agent's catch copy rather than the building name, so it is not read. Each unit's page is read once for 管理費, 修繕積立金, 所在階, 構造・階建, 向き, 総戸数, 敷地の権利形態, 用途地域, 引渡可能時期 and the 情報提供日, from the header block and the bdGrayT tables only: the inquiry form on the same page carries labels of its own. The list's 所在地 wins over the detail's 住所, which also holds a 「周辺環境」 link label.
/suumo/chukoikkodate/:pref/:city reads the same card layout as the 中古マンション list, which adds 土地面積 and 建物面積: `area_m2` is the 建物面積 and `land_area_m2` the 土地面積. Each house's page adds 構造・工法, 土地の権利形態, 私道負担・道路 and 建ぺい率・容積率, and a structure written with its height (「木造2階建」) gives both `structure` and `floors_total`.
/homes/chintai/:pref/:city reads the area page in its own 新着順 (`cond[sortby]=newdate`), one item per room row of each building block, with 部屋番号 where the site prints one and the 定期借家 badge. The sponsored rows at the top of the page sit outside the building blocks and are not read. Each room's page adds 築年月, 構造, 総戸数, 現況, 入居可能時期, 契約期間, 更新料, 保証会社 and the 情報公開日, which becomes `listed_at`. 敷金 / 礼金 are quoted in months for some rooms and in yen for others, and each stays in its own field. The site sits behind AWS WAF. On 2026-10-31 it answered plain requests with an empty 202 and `x-amzn-waf-action: challenge` after about fifteen requests in an hour, and again after about eight in ten minutes, lifting within the hour. The route reports that as an error naming the challenge rather than as an empty feed, and does not try to get past it. To stay under it, one poll requests the list and at most five detail pages it has not cached, and stops requesting for the rest of the run once the site has challenged it; items past that keep their list fields until a later poll fills them in.
/homes/mansion/chuko/:pref/:city reads the area page in 新着順, one item per unit row: 交通, 所在地, 構造, 階数, 築年月 and 総戸数 from the building block, 階, 価格, 間取り, 専有面積 and 主要採光面 from the row, and a 価格更新 note when the price moved (`raw.price_updated`). The block prints 交通 and 所在地 in one cell over two lines, which the shared label reader pairs line by line. Each unit's page is read from its #about 物件概要 only, since the recommended listings further down carry their own 住所 and 交通: 管理費等, 修繕積立金, 用途地域, 土地権利, 管理, 現況, 引渡し, and the 情報公開日 the page prints as running text. The 賃貸 route's WAF budget applies. This route has not run end to end against the live site: both attempts on 2026-10-31 met the challenge, so its parsers were checked on pages saved from the site that day.
/homes/kodate/chuko/:pref/:city reads the area page in 新着順. A house block has a single row, so each block is one item: 交通, 所在地, 建築年, 現況 and 主要採光面 from the block, 価格, 間取り, 土地面積 and 建物面積 from its row. Each house's #about adds 建物構造, 接道状況, 都市計画, 用途地域, 建ぺい率, 容積率, 土地権利, 引渡し and the 情報公開日. The 賃貸 route's WAF budget applies.
/athome/chintai/:pref/:city renders the list page in a browser, like rent-store, and reads every room from its `#serverApp-state`: the building's 種目, 所在地, 交通, 階建 and 築年月, and the room's 階, 部屋番号 (about half the rooms carry one), 賃料, 管理費, 敷金, 礼金, 間取り and 面積. 賃料 is a bare number of 万円. The site's own list of listings of the same room by other agents is kept in `raw.same_room_ids`, and the address is kept as the list prints it, from the 区 on. The page opens in おすすめ順 (sort 95), which left most of the 新着 rooms past the item limit; `?sort=33` selects 新着順. The per-room pages are not visited: one browser navigation per room is what gets a client refused.
/athome/mansion/chuko/:pref/:city reads the 売買 list from the same SSR state, in 新着順. The site's title is the building name, the 部屋番号 or a floor, then the 間取り, so it is split into `building_name` and `room_no` and a floor token is dropped. Prices are bare 万円 numbers, including 「1,580」 and 「1億2,000」, which would otherwise read as 1億 and 2,000円. For a condominium `tochiMs` is the whole building's 敷地面積, so it goes to `raw.site_area`, never to `land_area_m2`. `property_type` is the page's own type. A unit labelled 「リフォーム・リノベーション」 keeps that label in `raw.syumoku` and as a tag, the オーナーチェンジ flag becomes a tag too, and 表面利回り goes to `raw.yield`. 管理費, 修繕積立金 and the 情報公開日 are only on the unit's page and stay null.
/athome/kodate/chuko/:pref/:city reads the house list from the same SSR state, in 新着順. For a house `tochiMs` is its own 土地面積, so it becomes `land_area_m2`, and a 種目 more precise than the page's (中古テラスハウス) is kept in `raw.syumoku` and as a tag.
…enewed residentialItems cached each listing's detail-page fields with tryGet's default, which renews the entry every time it is read. A listing that stays on the first page is read on every poll, so its detail-only fields kept the value of the first read for as long as it stayed there: SUUMO's 売買 管理費 and 修繕積立金, the 情報更新日, the 現況. A change to them never reached a consumer. Cache them for a fixed six hours instead. The list fields are still read fresh on every poll, and at the default 20 items a page costs about three or four extra detail requests an hour once the cache is warm, within the five-per-run budget LIFULL HOME'S keeps.
collectPairs read a cell's text with only <br> as a line break, so LIFULL HOME'S cells built from several <p> or <div> ran together: 情報公開日 read '2026/10/1616日前 公開' and 現況 '居住中実際に見てみたい無料…', with the page's button text glued to the value. The dates only parsed because HOME'S pads the day; an unpadded '2026/9/5' next to '3日前' would have been read as the 53rd. Put each block element (div, p, dd, li, …) on its own line. Inline markup stays joined, so '<span>8,998</span>万円' is still '8,998万円' and '40.41m<sup>2</sup>' still '40.41m2'. The breaks are inserted on the parsed fragment rather than by a regex over the HTML, because HOME'S writes '>' inside attribute values (data-action="click->…"). Checked on eight pages saved from SUUMO and HOME'S on 2026-11-01: every SUUMO detail and list field is unchanged, and on HOME'S only multi-part cells changed, each now one part per line.
… no name residentialTitle fell back from the building name to the 種目, which is the same for every item of a feed, so houses came out as '中古一戸建て 2LDK' over and over: 10 of the 20 on SUUMO's 世田谷区 中古一戸建て page on 2026-11-01 have no 物件名. Use the address before the 種目, so each of them is named by where it is.
parseHomesDetail always returned listed_at and updated_at, null when the page had no date, so a detail page that yielded nothing still carried two keys. residentialItems only refuses to cache a detail with no key at all, so such a page was cached as the answer for the cache lifetime and the listing kept its list fields only. This happened on 2026-11-01 with the page HOME'S serves when several agents list one unit, which the route did not read (fixed next). Leave a date out when it is not found, so an empty page comes back empty and is retried on the next poll.
…ne unit The 中古マンション and 中古一戸建て routes read a unit's 物件概要 from #about. When several agents list the same unit (「取扱う会社が N 社あります」), LIFULL HOME'S serves an older layout without #about: the header block (.mod-detailTopSale) carries 価格, 管理費等, 修繕積立金 and 情報公開日, and a spec table (.mod-bukkenSpecDetail) the rest. On 2026-11-01 the 港区 unit b-1548200003299 had moved to that layout, and the route read nothing from it. Read #about and those two blocks, and nothing else of the page: the recommended listings further down carry their own 住所 and 交通. On that page the unit now gets 25 fields instead of none, and the #about pages read the same as before.
The 賃貸 route read label pairs from the whole detail page, first occurrence winning. Its dialogs (#initial-cost-dialog and the like) sit outside #main and carry labels of their own, so the right values only won because the spec happens to come first in the document. Read #main instead. On a page saved on 2026-11-01 it gives the same 31 fields with the same values as the whole page.
All three LIFULL HOME'S routes sit behind the same AWS WAF, and the 中古マンション and 中古一戸建て routes already say so with antiCrawler: true. The 賃貸 route said false.
The 賃貸, 中古マンション and 中古一戸建て feeds were titled by the city slug
alone ('アットホーム 賃貸 (minato-city)'), unlike the SUUMO and LIFULL HOME'S
feeds, which name both. Title them '(tokyo/minato-city)' the same way.
The 貸店舗 feed keeps its title, so its subscribers see no change.
The namespace still described アットホーム as 貸店舗・事業用物件 only, though it now also carries the 賃貸, 中古マンション and 中古一戸建て routes.
When a listing has no photo, SUUMO's list shows a stand-in from its own
image server ('…/jj/resizeImage?src=gazo%2Fbukken%2Fsystem%2Fimg%2FDummy_Photo_021_132_99.jpg').
The routes passed it on as the item's image, so a reader showed the same
dummy photo for every such listing: 5 of 20 houses on the 新宿区
中古一戸建て page on 2026-11-01.
Add photoUrl to the shared residential module: it gives undefined for a
site's stand-in (Dummy_Photo, no-image) and resolves anything else against
the site, and the SUUMO 賃貸 and 売買 lists now read their photos through it.
…ve path
When a building has no photo, LIFULL HOME'S's list carries a relative
placeholder ('/search/assets/img/default/common/thumb/no-image_208x138.png?v=…')
in the building photo's data-original, and a unit with no photo of its own
falls back to it. The routes passed the relative path on as the item's
image, which no feed reader can load, and a consumer that checks for an
absolute URL rejected the whole item: 4 of 111 HOME'S items on 2026-11-01,
among them b-35007120000707 on the 港区 中古マンション page.
Read the building and unit photos through photoUrl: the placeholder gives
no image, and any other relative path is resolved against the site, as the
link already is.
…g name When an agent gives no 物件名, SUUMO's 賃貸 list titles the building with its first station, height and age, for example '東京メトロ丸ノ内線 新宿三丁目駅 9階建 築46年'. The route read that as `building_name`, so items were titled with it, and a consumer matching units by building name merged different buildings that share a station (three rooms under one such title had 築年月 1980-04, 1980-04 and 1981-08) while missing the building's real listings elsewhere. 4 of 20 buildings on the 新宿区 page on 2026-11-01 had such a title. Recognise the '<線> <駅>駅 N階建 築N年' (or 新築) shape, keep it in `raw.site_title`, and leave `building_name` null, so the item is titled by its address. Real names on the same page are unchanged.
The video list API path shares one anonymous visitor cookie through cache.tryGet, and every cache hit renewed its expiry. A busy instance reads it hundreds of times an hour, so the cookie made at the 2026-11-07 deploy served every request from then on, and Bilibili's risk control answered it with -352 more and more often: the route's success rate fell from 60-90 % on 2026-11-08 to almost 0 early on 2026-11-09. The upload search fallback then got HTTP 412 and browser mode timed out after 20 s. - Cache the visitor cookie for 30 minutes and do not renew it on use. - When the video list API answers -352, make a new cookie, retry once and keep the new cookie for the requests that follow. Renew at most once a minute per instance (globalCache.claim), so that a risk control turning every cookie away does not cost three more requests per request. - Stop renewing the cached WBI keys on use as well, since Bilibili rotates them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This reverts commit 3a3f1f8. The rotation did not raise the success rate: in the first 20 minutes on the Worker the video list API still answered -352 to about 80 % of the requests, and the renewal never fired. It also lets the cached visitor cookie and WBI keys expire, so the Worker has to fetch new ones from finger/spi and x/web-interface/nav, while Bilibili now answers the Worker's requests to nav (and x/web-interface/card, recArchivesByKeywords) with HTTP 412. Once the entries cached before the deploy expired, the video, video-all, hot-search and live-search routes could lose their WBI keys altogether. Restore the previous behaviour while a safer approach is worked out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ue (#23822) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…3826) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 3.0.3 to 3.0.4. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@efb3536...8a0cd65) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: 3.0.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 6.1.1 to 6.1.2. - [Release notes](https://github.com/amannn/action-semantic-pull-request/releases) - [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md) - [Commits](amannn/action-semantic-pull-request@48f2562...2252a14) --- updated-dependencies: - dependency-name: amannn/action-semantic-pull-request dependency-version: 6.1.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the hono group with 1 update: [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono). Updates `@scalar/hono-api-reference` from 0.12.17 to 0.12.18 - [Release notes](https://github.com/scalar/scalar/releases) - [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md) - [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono) --- updated-dependencies: - dependency-name: "@scalar/hono-api-reference" dependency-version: 0.12.18 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: hono ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the msw group with 1 update: [msw](https://github.com/mswjs/msw). Updates `msw` from 3.0.3 to 3.0.4 - [Release notes](https://github.com/mswjs/msw/releases) - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md) - [Commits](mswjs/msw@v3.0.3...v3.0.4) --- updated-dependencies: - dependency-name: msw dependency-version: 3.0.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: msw ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tsdown](https://github.com/rolldown/tsdown) from 0.23.4 to 0.23.5. - [Release notes](https://github.com/rolldown/tsdown/releases) - [Commits](rolldown/tsdown@v0.23.4...v0.23.5) --- updated-dependencies: - dependency-name: tsdown dependency-version: 0.23.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [undici](https://github.com/nodejs/undici) from 8.12.3 to 8.12.4. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](nodejs/undici@v8.12.3...v8.12.4) --- updated-dependencies: - dependency-name: undici dependency-version: 8.12.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@j178/prek](https://github.com/j178/prek) from 0.5.9 to 0.5.10. - [Release notes](https://github.com/j178/prek/releases) - [Changelog](https://github.com/j178/prek/blob/main/CHANGELOG.md) - [Commits](j178/prek@v0.5.9...v0.5.10) --- updated-dependencies: - dependency-name: "@j178/prek" dependency-version: 0.5.10 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@vercel/nft](https://github.com/vercel/nft) from 1.11.0 to 1.11.1. - [Release notes](https://github.com/vercel/nft/releases) - [Commits](vercel/nft@1.11.0...1.11.1) --- updated-dependencies: - dependency-name: "@vercel/nft" dependency-version: 1.11.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [imapflow](https://github.com/postalsys/imapflow) from 2.10.0 to 2.10.2. - [Release notes](https://github.com/postalsys/imapflow/releases) - [Changelog](https://github.com/postalsys/imapflow/blob/master/CHANGELOG.md) - [Commits](postalsys/imapflow@v2.10.0...v2.10.2) --- updated-dependencies: - dependency-name: imapflow dependency-version: 2.10.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the nix group with 2 updates: [devenv](https://github.com/cachix/devenv) and [nixpkgs](https://github.com/NixOS/nixpkgs). Updates `devenv` from `0d6c556` to `9655d32` - [Release notes](https://github.com/cachix/devenv/releases) - [Commits](cachix/devenv@0d6c556...9655d32) Updates `nixpkgs` from `0bb2eed` to `1d06008` - [Commits](NixOS/nixpkgs@0bb2eed...1d06008) --- updated-dependencies: - dependency-name: devenv dependency-version: 9655d320b8f9df74dbecf681f52a7334574606c3 dependency-type: direct:production dependency-group: nix - dependency-name: nixpkgs dependency-version: 1d060086d60cb76a40cf37109f979d88a5bd6396 dependency-type: direct:production dependency-group: nix ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-yml](https://github.com/ota-meshi/eslint-plugin-yml) from 3.9.0 to 3.10.0. - [Release notes](https://github.com/ota-meshi/eslint-plugin-yml/releases) - [Changelog](https://github.com/ota-meshi/eslint-plugin-yml/blob/master/CHANGELOG.md) - [Commits](ota-meshi/eslint-plugin-yml@v3.9.0...v3.10.0) --- updated-dependencies: - dependency-name: eslint-plugin-yml dependency-version: 3.10.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@notionhq/client](https://github.com/makenotion/notion-sdk-js) from 5.30.0 to 5.31.0. - [Release notes](https://github.com/makenotion/notion-sdk-js/releases) - [Commits](makenotion/notion-sdk-js@v5.30.0...v5.31.0) --- updated-dependencies: - dependency-name: "@notionhq/client" dependency-version: 5.31.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rate-limiter-flexible](https://github.com/animir/node-rate-limiter-flexible) from 11.2.3 to 11.3.0. - [Release notes](https://github.com/animir/node-rate-limiter-flexible/releases) - [Commits](animir/node-rate-limiter-flexible@v11.2.3...v11.3.0) --- updated-dependencies: - dependency-name: rate-limiter-flexible dependency-version: 11.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…AgXK7RDGdZKW7fMVpkP5w=
Bumps [jsdom](https://github.com/jsdom/jsdom) from 30.1.3 to 31.0.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](jsdom/jsdom@v30.1.3...v31.0.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 31.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rolldown](https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown) from 1.2.16 to 1.3.0. - [Release notes](https://github.com/rolldown/rolldown/releases) - [Changelog](https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md) - [Commits](https://github.com/rolldown/rolldown/commits/v1.3.0/packages/rolldown) --- updated-dependencies: - dependency-name: rolldown dependency-version: 1.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…pdates (#23829) Bumps the opentelemetry group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@opentelemetry/exporter-prometheus](https://github.com/open-telemetry/opentelemetry-js) | `0.300.0` | `0.301.0` | | [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.300.0` | `0.301.0` | | [@opentelemetry/resources](https://github.com/open-telemetry/opentelemetry-js) | `3.0.0` | `3.1.0` | | [@opentelemetry/sdk-metrics](https://github.com/open-telemetry/opentelemetry-js) | `3.0.0` | `3.1.0` | | [@opentelemetry/sdk-trace](https://github.com/open-telemetry/opentelemetry-js) | `3.0.0` | `3.1.0` | Updates `@opentelemetry/exporter-prometheus` from 0.300.0 to 0.301.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.300.0...experimental/v0.301.0) Updates `@opentelemetry/exporter-trace-otlp-http` from 0.300.0 to 0.301.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@experimental/v0.300.0...experimental/v0.301.0) Updates `@opentelemetry/resources` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v3.0.0...v3.1.0) Updates `@opentelemetry/sdk-metrics` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v3.0.0...v3.1.0) Updates `@opentelemetry/sdk-trace` from 3.0.0 to 3.1.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-js/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-js/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-js@v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: "@opentelemetry/exporter-prometheus" dependency-version: 0.301.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/exporter-trace-otlp-http" dependency-version: 0.301.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/resources" dependency-version: 3.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/sdk-metrics" dependency-version: 3.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry - dependency-name: "@opentelemetry/sdk-trace" dependency-version: 3.1.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: opentelemetry ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@sentry/node](https://github.com/getsentry/sentry-javascript) from 11.10.0 to 11.11.0. - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](getsentry/sentry-javascript@11.10.0...11.11.0) --- updated-dependencies: - dependency-name: "@sentry/node" dependency-version: 11.11.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#23830) Bumps the oxc group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins) | `1.90.0` | `1.91.0` | | [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.75.0` | `0.76.0` | | [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.90.0` | `1.91.0` | | [oxlint-plugin-eslint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugin-eslint) | `1.90.0` | `1.91.0` | | [oxlint-tsgolint](https://github.com/oxc-project/tsgolint) | `7.0.2005` | `7.0.2006` | Updates `@oxlint/plugins` from 1.90.0 to 1.91.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.91.0/npm/oxlint-plugins) Updates `oxfmt` from 0.75.0 to 0.76.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.76.0/npm/oxfmt) Updates `oxlint` from 1.90.0 to 1.91.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.91.0/npm/oxlint) Updates `oxlint-plugin-eslint` from 1.90.0 to 1.91.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint-plugin-eslint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.91.0/npm/oxlint-plugin-eslint) Updates `oxlint-tsgolint` from 7.0.2005 to 7.0.2006 - [Release notes](https://github.com/oxc-project/tsgolint/releases) - [Commits](oxc-project/tsgolint@v7.0.2005...v7.0.2006) --- updated-dependencies: - dependency-name: "@oxlint/plugins" dependency-version: 1.91.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxfmt dependency-version: 0.76.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint dependency-version: 1.91.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-plugin-eslint dependency-version: 1.91.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: oxc - dependency-name: oxlint-tsgolint dependency-version: 7.0.2006 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: oxc ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…updates (#23824) * chore(deps-dev): bump the cloudflare group across 1 directory with 4 updates Bumps the cloudflare group with 4 updates in the / directory: [@cloudflare/vitest-plugin](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/vitest-plugin), [@cloudflare/workers-types](https://github.com/cloudflare/workerd), [cf](https://github.com/cloudflare/cf/tree/HEAD/packages/cli) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). Updates `@cloudflare/vitest-plugin` from 1.5.1 to 1.6.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Changelog](https://github.com/cloudflare/workers-sdk/blob/main/packages/vitest-plugin/CHANGELOG.md) - [Commits](https://github.com/cloudflare/workers-sdk/commits/@cloudflare/vitest-plugin@1.6.0/packages/vitest-plugin) Updates `@cloudflare/workers-types` from 5.20261103.1 to 5.20261106.1 - [Release notes](https://github.com/cloudflare/workerd/releases) - [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md) - [Commits](https://github.com/cloudflare/workerd/commits) Updates `cf` from 1.0.0-beta.27 to 1.0.0-beta.28 - [Release notes](https://github.com/cloudflare/cf/releases) - [Changelog](https://github.com/cloudflare/cf/blob/main/packages/cli/CHANGELOG.md) - [Commits](https://github.com/cloudflare/cf/commits/cf@1.0.0-beta.28/packages/cli) Updates `wrangler` from 4.157.0 to 4.158.0 - [Release notes](https://github.com/cloudflare/workers-sdk/releases) - [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.158.0/packages/wrangler) --- updated-dependencies: - dependency-name: "@cloudflare/vitest-plugin" dependency-version: 1.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: "@cloudflare/workers-types" dependency-version: 5.20261106.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare - dependency-name: cf dependency-version: 1.0.0-beta.28 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: cloudflare - dependency-name: wrangler dependency-version: 4.158.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: cloudflare ... Signed-off-by: dependabot[bot] <support@github.com> * chore: bump pnpm to 12.18.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.7.0 to 4.8.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](docker/login-action@81c6f93...8aa5831) --- updated-dependencies: - dependency-name: docker/login-action dependency-version: 4.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
BBC News Labs shut down in early November 2026. www.bbc.co.uk/rdnewslabs/news now only meta-refreshes to the BBC R&D journalism topic, and the search index the route read (projectId ipages-newslabs) returns no hits at all, so the feed can never have items again. The namespace had no other route.
Forecast pages such as 降水量预报, 气温预报, 大风预报 and 全球雨雪落区预报
put only the lead time in data-time ("024小时") and the issue time in the
label under each image ("11/09 21:00"). The route parsed data-time, so every
item had an invalid date and a guid like #2026/024小时 that stayed the same
from one issue to the next, and readers never saw a new forecast.
Treat these pages like the hourly lead-time forecasts from #23822: one item
per issue, dated from the label plus the year in the image path. Take the
image the page marks as active rather than the first one, so 48小时 to
168小时 降水量预报 keep their own lead time instead of all showing the 24
hour image. For the sea fog and sea wind pages that image is still the first.
* feat(route/ndss-symposium): add optional full abstract mode * fix(route/ndss-symposium): trim description and use p-map Keep the route description to what the abstract parameter does, and replace the hand-written batch helper with p-map. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(route/ndss-symposium): cache parsed program abstracts Parse the detailed program page inside the cache callback and cache the title-to-abstract entries instead of the raw HTML. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: DIYgod <i@diygod.me> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
gov.cn folded the 部门政务 list into 政务联播. /lianbo/bumen/index.htm (and the 地方 sub-list) now only redirect to the homepage with a script, so /gov/cn/news/bm found no .infolist entries and returned an empty feed. 政务联播 loads its list from /lianbo/YAOWENLIEBIAO.json, the same format the route already reads for 要闻 and 滚动, so bm goes through getLatestNews with the /lianbo/ base. The .infolist branch that only bm used is gone, and the docs table now names the category 政务联播.
The category in /nytimes/rss/:cat? is optional, but the handler put the param straight into the feed URL, so /nytimes/rss asked for rss.nytimes.com/services/xml/rss/nyt/undefined.xml and failed with a 404. Fall back to the HomePage feed, the same one the example uses, and list it as the parameter default the way the book route does.
Al Jazeera Chinese has closed. Every chinese.aljazeera.net path now 301-redirects to the Arabic site's China topic (www.aljazeera.net/china), so /aljazeera/chinese/* found no cards and returned an empty feed. Drop chinese from the language map, the language tables and tips of the news, rss and tag routes, and the chinese.aljazeera.net radar rules. Arabic and English are unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )