[telegram] how many new rss feeds are available since last merged pdf generation?
(also is the pdf i talk about easy to find for you or did you take a while?)


**Looking for merged PDF logs**

I see that I need to check the repository or files to find the answer. I should inspect the context, possibly looking into memory. I might need to ask a few questions to clarify things. I believe I can locate logs related to the merged PDF generation from there. Let's start searching for that information!

bash

cd /home/sebas && find . -maxdepth 4 \( -iname '*rss*' -o -iname '*feed*' -o -iname '*pdf*' \) | sed 's#^./##' | head -200

cd /home/sebas && rg -n "merged pdf|merge pdf|rss feeds|feed(s)? added|pdf generation|rss" -S /home/sebas 2>/dev/null | head -300


pi-config/bin/freshrss-recent-archive
pi-config/bin/freshrss-prewarm
pi-config/docs/bb-004-rss-offline-status-2026-05-14.md
work/tasks/T-bbx-print-20260520/make_ballbox_print_pdf_black_bg.py
work/tasks/T-bbx-print-20260520/ballbox-plot-a3-horizontal-black.pdf
work/tasks/T-bbx-print-20260520/ballbox-plot-a3-horizontal-black-bg-color-logo.pdf
work/tasks/T-bbx-print-20260520/make_ballbox_print_pdf_v2.py
work/tasks/T-bbx-print-20260520/ballbox-plot-a3-horizontal.pdf
work/tasks/T-bbx-print-20260520/make_ballbox_print_pdf.py
work/tasks/T-bbx-print-20260520/ballbox-plot-a3-horizontal-clean-green.pdf
work/projects/rss-offline
work/projects/rss-offline/feed-sources.json
.config/qBittorrent/rss
.config/qBittorrent/rss/feeds.json
Downloads/ARRIVAL_GUIDE.pdf
Downloads/TECHNICAL_LEARNINGS.pdf
runtime/freshrss-prewarm.log
runtime/rss-offline-build.log
.local/share/qBittorrent/rss


/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/protocol.d.ts:1588:      rssi: number;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/protocol.d.ts:10328:      receiveHeadersStart: number;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:20637:    requestHeadersSize: number;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:20648:    responseHeadersSize: number;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/README.md:214:Use `playwright` as a library for browser automation scripts — web scraping, PDF generation, screenshot capture, and any workflow that needs programmatic browser control without a test runner.
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/net/http/clientserver_test.go:809:func TestTrailersServerToClient(t *testing.T) {
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/net/http/clientserver_test.go:811:		testTrailersServerToClient(t, mode, false)
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/net/http/clientserver_test.go:814:func TestTrailersServerToClientFlush(t *testing.T) {
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/net/http/clientserver_test.go:816:		testTrailersServerToClient(t, mode, true)
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/net/http/clientserver_test.go:820:func testTrailersServerToClient(t *testing.T, mode testMode, flush bool) {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/esmLoader.js:4238:    module2.exports = { "application/andrew-inset": ["ez"], "application/applixware": ["aw"], "application/atom+xml": ["atom"], "application/atomcat+xml": ["atomcat"], "application/atomdeleted+xml": ["atomdeleted"], "application/atomsvc+xml": ["atomsvc"], "application/atsc-dwd+xml": ["dwd"], "application/atsc-held+xml": ["held"], "application/atsc-rsat+xml": ["rsat"], "application/bdoc": ["bdoc"], "application/calendar+xml": ["xcs"], "application/ccxml+xml": ["ccxml"], "application/cdfx+xml": ["cdfx"], "application/cdmi-capability": ["cdmia"], "application/cdmi-container": ["cdmic"], "application/cdmi-domain": ["cdmid"], "application/cdmi-object": ["cdmio"], "application/cdmi-queue": ["cdmiq"], "application/cu-seeme": ["cu"], "application/dash+xml": ["mpd"], "application/davmount+xml": ["davmount"], "application/docbook+xml": ["dbk"], "application/dssc+der": ["dssc"], "application/dssc+xml": ["xdssc"], "application/ecmascript": ["es", "ecma"], "application/emma+xml": ["emma"], "application/emotionml+xml": ["emotionml"], "application/epub+zip": ["epub"], "application/exi": ["exi"], "application/express": ["exp"], "application/fdt+xml": ["fdt"], "application/font-tdpfr": ["pfr"], "application/geo+json": ["geojson"], "application/gml+xml": ["gml"], "application/gpx+xml": ["gpx"], "application/gxf": ["gxf"], "application/gzip": ["gz"], "application/hjson": ["hjson"], "application/hyperstudio": ["stk"], "application/inkml+xml": ["ink", "inkml"], "application/ipfix": ["ipfix"], "application/its+xml": ["its"], "application/java-archive": ["jar", "war", "ear"], "application/java-serialized-object": ["ser"], "application/java-vm": ["class"], "application/javascript": ["js", "mjs"], "application/json": ["json", "map"], "application/json5": ["json5"], "application/jsonml+json": ["jsonml"], "application/ld+json": ["jsonld"], "application/lgr+xml": ["lgr"], "application/lost+xml": ["lostxml"], "application/mac-binhex40": ["hqx"], "application/mac-compactpro": ["cpt"], "application/mads+xml": ["mads"], "application/manifest+json": ["webmanifest"], "application/marc": ["mrc"], "application/marcxml+xml": ["mrcx"], "application/mathematica": ["ma", "nb", "mb"], "application/mathml+xml": ["mathml"], "application/mbox": ["mbox"], "application/mediaservercontrol+xml": ["mscml"], "application/metalink+xml": ["metalink"], "application/metalink4+xml": ["meta4"], "application/mets+xml": ["mets"], "application/mmt-aei+xml": ["maei"], "application/mmt-usd+xml": ["musd"], "application/mods+xml": ["mods"], "application/mp21": ["m21", "mp21"], "application/mp4": ["mp4s", "m4p"], "application/msword": ["doc", "dot"], "application/mxf": ["mxf"], "application/n-quads": ["nq"], "application/n-triples": ["nt"], "application/node": ["cjs"], "application/octet-stream": ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"], "application/oda": ["oda"], "application/oebps-package+xml": ["opf"], "application/ogg": ["ogx"], "application/omdoc+xml": ["omdoc"], "application/onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"], "application/oxps": ["oxps"], "application/p2p-overlay+xml": ["relo"], "application/patch-ops-error+xml": ["xer"], "application/pdf": ["pdf"], "application/pgp-encrypted": ["pgp"], "application/pgp-signature": ["asc", "sig"], "application/pics-rules": ["prf"], "application/pkcs10": ["p10"], "application/pkcs7-mime": ["p7m", "p7c"], "application/pkcs7-signature": ["p7s"], "application/pkcs8": ["p8"], "application/pkix-attr-cert": ["ac"], "application/pkix-cert": ["cer"], "application/pkix-crl": ["crl"], "application/pkix-pkipath": ["pkipath"], "application/pkixcmp": ["pki"], "application/pls+xml": ["pls"], "application/postscript": ["ai", "eps", "ps"], "application/provenance+xml": ["provx"], "application/pskc+xml": ["pskcxml"], "application/raml+yaml": ["raml"], "application/rdf+xml": ["rdf", "owl"], "application/reginfo+xml": ["rif"], "application/relax-ng-compact-syntax": ["rnc"], "application/resource-lists+xml": ["rl"], "application/resource-lists-diff+xml": ["rld"], "application/rls-services+xml": ["rs"], "application/route-apd+xml": ["rapd"], "application/route-s-tsid+xml": ["sls"], "application/route-usd+xml": ["rusd"], "application/rpki-ghostbusters": ["gbr"], "application/rpki-manifest": ["mft"], "application/rpki-roa": ["roa"], "application/rsd+xml": ["rsd"], "application/rss+xml": ["rss"], "application/rtf": ["rtf"], "application/sbml+xml": ["sbml"], "application/scvp-cv-request": ["scq"], "application/scvp-cv-response": ["scs"], "application/scvp-vp-request": ["spq"], "application/scvp-vp-response": ["spp"], "application/sdp": ["sdp"], "application/senml+xml": ["senmlx"], "application/sensml+xml": ["sensmlx"], "application/set-payment-initiation": ["setpay"], "application/set-registration-initiation": ["setreg"], "application/shf+xml": ["shf"], "application/sieve": ["siv", "sieve"], "application/smil+xml": ["smi", "smil"], "application/sparql-query": ["rq"], "application/sparql-results+xml": ["srx"], "application/srgs": ["gram"], "application/srgs+xml": ["grxml"], "application/sru+xml": ["sru"], "application/ssdl+xml": ["ssdl"], "application/ssml+xml": ["ssml"], "application/swid+xml": ["swidtag"], "application/tei+xml": ["tei", "teicorpus"], "application/thraud+xml": ["tfi"], "application/timestamped-data": ["tsd"], "application/toml": ["toml"], "application/trig": ["trig"], "application/ttml+xml": ["ttml"], "application/ubjson": ["ubj"], "application/urc-ressheet+xml": ["rsheet"], "application/urc-targetdesc+xml": ["td"], "application/voicexml+xml": ["vxml"], "application/wasm": ["wasm"], "application/widget": ["wgt"], "application/winhlp": ["hlp"], "application/wsdl+xml": ["wsdl"], "application/wspolicy+xml": ["wspolicy"], "application/xaml+xml": ["xaml"], "application/xcap-att+xml": ["xav"], "application/xcap-caps+xml": ["xca"], "application/xcap-diff+xml": ["xdf"], "application/xcap-el+xml": ["xel"], "application/xcap-ns+xml": ["xns"], "application/xenc+xml": ["xenc"], "application/xhtml+xml": ["xhtml", "xht"], "application/xliff+xml": ["xlf"], "application/xml": ["xml", "xsl", "xsd", "rng"], "application/xml-dtd": ["dtd"], "application/xop+xml": ["xop"], "application/xproc+xml": ["xpl"], "application/xslt+xml": ["*xsl", "xslt"], "application/xspf+xml": ["xspf"], "application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"], "application/yang": ["yang"], "application/yin+xml": ["yin"], "application/zip": ["zip"], "audio/3gpp": ["*3gpp"], "audio/adpcm": ["adp"], "audio/amr": ["amr"], "audio/basic": ["au", "snd"], "audio/midi": ["mid", "midi", "kar", "rmi"], "audio/mobile-xmf": ["mxmf"], "audio/mp3": ["*mp3"], "audio/mp4": ["m4a", "mp4a"], "audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"], "audio/ogg": ["oga", "ogg", "spx", "opus"], "audio/s3m": ["s3m"], "audio/silk": ["sil"], "audio/wav": ["wav"], "audio/wave": ["*wav"], "audio/webm": ["weba"], "audio/xm": ["xm"], "font/collection": ["ttc"], "font/otf": ["otf"], "font/ttf": ["ttf"], "font/woff": ["woff"], "font/woff2": ["woff2"], "image/aces": ["exr"], "image/apng": ["apng"], "image/avif": ["avif"], "image/bmp": ["bmp"], "image/cgm": ["cgm"], "image/dicom-rle": ["drle"], "image/emf": ["emf"], "image/fits": ["fits"], "image/g3fax": ["g3"], "image/gif": ["gif"], "image/heic": ["heic"], "image/heic-sequence": ["heics"], "image/heif": ["heif"], "image/heif-sequence": ["heifs"], "image/hej2k": ["hej2"], "image/hsj2": ["hsj2"], "image/ief": ["ief"], "image/jls": ["jls"], "image/jp2": ["jp2", "jpg2"], "image/jpeg": ["jpeg", "jpg", "jpe"], "image/jph": ["jph"], "image/jphc": ["jhc"], "image/jpm": ["jpm"], "image/jpx": ["jpx", "jpf"], "image/jxr": ["jxr"], "image/jxra": ["jxra"], "image/jxrs": ["jxrs"], "image/jxs": ["jxs"], "image/jxsc": ["jxsc"], "image/jxsi": ["jxsi"], "image/jxss": ["jxss"], "image/ktx": ["ktx"], "image/ktx2": ["ktx2"], "image/png": ["png"], "image/sgi": ["sgi"], "image/svg+xml": ["svg", "svgz"], "image/t38": ["t38"], "image/tiff": ["tif", "tiff"], "image/tiff-fx": ["tfx"], "image/webp": ["webp"], "image/wmf": ["wmf"], "message/disposition-notification": ["disposition-notification"], "message/global": ["u8msg"], "message/global-delivery-status": ["u8dsn"], "message/global-disposition-notification": ["u8mdn"], "message/global-headers": ["u8hdr"], "message/rfc822": ["eml", "mime"], "model/3mf": ["3mf"], "model/gltf+json": ["gltf"], "model/gltf-binary": ["glb"], "model/iges": ["igs", "iges"], "model/mesh": ["msh", "mesh", "silo"], "model/mtl": ["mtl"], "model/obj": ["obj"], "model/step+xml": ["stpx"], "model/step+zip": ["stpz"], "model/step-xml+zip": ["stpxz"], "model/stl": ["stl"], "model/vrml": ["wrl", "vrml"], "model/x3d+binary": ["*x3db", "x3dbz"], "model/x3d+fastinfoset": ["x3db"], "model/x3d+vrml": ["*x3dv", "x3dvz"], "model/x3d+xml": ["x3d", "x3dz"], "model/x3d-vrml": ["x3dv"], "text/cache-manifest": ["appcache", "manifest"], "text/calendar": ["ics", "ifb"], "text/coffeescript": ["coffee", "litcoffee"], "text/css": ["css"], "text/csv": ["csv"], "text/html": ["html", "htm", "shtml"], "text/jade": ["jade"], "text/jsx": ["jsx"], "text/less": ["less"], "text/markdown": ["markdown", "md"], "text/mathml": ["mml"], "text/mdx": ["mdx"], "text/n3": ["n3"], "text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"], "text/richtext": ["rtx"], "text/rtf": ["*rtf"], "text/sgml": ["sgml", "sgm"], "text/shex": ["shex"], "text/slim": ["slim", "slm"], "text/spdx": ["spdx"], "text/stylus": ["stylus", "styl"], "text/tab-separated-values": ["tsv"], "text/troff": ["t", "tr", "roff", "man", "me", "ms"], "text/turtle": ["ttl"], "text/uri-list": ["uri", "uris", "urls"], "text/vcard": ["vcard"], "text/vtt": ["vtt"], "text/xml": ["*xml"], "text/yaml": ["yaml", "yml"], "video/3gpp": ["3gp", "3gpp"], "video/3gpp2": ["3g2"], "video/h261": ["h261"], "video/h263": ["h263"], "video/h264": ["h264"], "video/iso.segment": ["m4s"], "video/jpeg": ["jpgv"], "video/jpm": ["*jpm", "jpgm"], "video/mj2": ["mj2", "mjp2"], "video/mp2t": ["ts"], "video/mp4": ["mp4", "mp4v", "mpg4"], "video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"], "video/ogg": ["ogv"], "video/quicktime": ["qt", "mov"], "video/webm": ["webm"] };
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:37599:      const modifiersSet = /* @__PURE__ */ new Set();
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:37601:        if (modifier) modifiersSet.add(modifier);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:37604:        if (modifiersSet.has(tok.value)) {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:37607:          modifiersSet.delete(tok.value);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:37608:          return modifiersSet.size === 0;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:37612:      for (const modifier of modifiersSet) {
/home/sebas/work/projects/bug-bounty/reports/humand-MasterPasswordAuthBypass-2026-02-14.md:80:Permalink: https://github.com/HumandDev/humand-main-api/blob/bb975d08cc/src/api/modules/users/business/services/usersService.ts#L3883-L3889
/home/sebas/work/projects/bug-bounty/reports/humand-SQLi-ProfileFieldUUID-2026-02-14.md:78:Permalink: https://github.com/HumandDev/humand-main-api/blob/bb975d08cc/src/api/modules/users/business/services/usersService.ts#L2635-L2638
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/net/http/cookiejar/punycode_test.go:42:		"ihqwctvzc91f659drss3x8bo0yb",
/home/sebas/work/projects/bug-bounty/briefings/SCAN_humand-main-api_2026-02-13.md:34:**Impact**: Anyone who knows the master password can authenticate as **any user in the system**, including admins across all tenants. This is a single point of failure for the entire platform's authentication. The same master password is used to create a service user ("humand") on every instance (`usersService.ts:3883-3889`), meaning it persists in the database hashed, but the plaintext comparison happens first.
/home/sebas/work/projects/bug-bounty/briefings/SCAN_humand-main-api_2026-02-13.md:43:**File**: `src/api/modules/users/business/services/usersService.ts:2635`
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1300:func addPairsSlice[T number](a, b []T) []T {
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1309:func subPairsSlice[T number](a, b []T) []T {
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1322:		r = append(r, addPairsSlice(a[i*group:(i+1)*group], b[i*group:(i+1)*group])...)
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1331:		r = append(r, subPairsSlice(a[i*group:(i+1)*group], b[i*group:(i+1)*group])...)
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1337:	testInt16x8Binary(t, archsimd.Int16x8.AddPairs, addPairsSlice[int16])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1338:	testInt16x8Binary(t, archsimd.Int16x8.SubPairs, subPairsSlice[int16])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1339:	testUint16x8Binary(t, archsimd.Uint16x8.AddPairs, addPairsSlice[uint16])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1340:	testUint16x8Binary(t, archsimd.Uint16x8.SubPairs, subPairsSlice[uint16])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1341:	testInt32x4Binary(t, archsimd.Int32x4.AddPairs, addPairsSlice[int32])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1342:	testInt32x4Binary(t, archsimd.Int32x4.SubPairs, subPairsSlice[int32])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1343:	testUint32x4Binary(t, archsimd.Uint32x4.AddPairs, addPairsSlice[uint32])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1344:	testUint32x4Binary(t, archsimd.Uint32x4.SubPairs, subPairsSlice[uint32])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1345:	testFloat32x4Binary(t, archsimd.Float32x4.AddPairs, addPairsSlice[float32])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1346:	testFloat32x4Binary(t, archsimd.Float32x4.SubPairs, subPairsSlice[float32])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1347:	testFloat64x2Binary(t, archsimd.Float64x2.AddPairs, addPairsSlice[float64])
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/internal/simd_test/simd_test.go:1348:	testFloat64x2Binary(t, archsimd.Float64x2.SubPairs, subPairsSlice[float64])
/home/sebas/work/projects/ballbox/pnpm-lock.yaml:2112:    resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==}
/home/sebas/work/projects/ballbox/pnpm-lock.yaml:3788:      sugarss: ^5.0.0
/home/sebas/work/projects/ballbox/pnpm-lock.yaml:3809:      sugarss:
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:431:/* AddPairsSaturated */
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:433:// AddPairsSaturated horizontally adds adjacent pairs of elements with saturation.
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:437:func (x Int16x8) AddPairsSaturated(y Int16x8) Int16x8
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:439:/* AddPairsSaturatedGrouped */
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:441:// AddPairsSaturatedGrouped horizontally adds adjacent pairs of elements with saturation.
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:446:func (x Int16x16) AddPairsSaturatedGrouped(y Int16x16) Int16x16
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2040:/* DotProductPairsSaturated */
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2042:// DotProductPairsSaturated multiplies the elements and add the pairs together with saturation,
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2046:func (x Uint8x16) DotProductPairsSaturated(y Int8x16) Int16x8
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2048:// DotProductPairsSaturated multiplies the elements and add the pairs together with saturation,
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2052:func (x Uint8x32) DotProductPairsSaturated(y Int8x32) Int16x16
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2054:// DotProductPairsSaturated multiplies the elements and add the pairs together with saturation,
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:2058:func (x Uint8x64) DotProductPairsSaturated(y Int8x64) Int16x32
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:7277:/* SubPairsSaturated */
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:7279:// SubPairsSaturated horizontally subtracts adjacent pairs of elements with saturation.
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:7283:func (x Int16x8) SubPairsSaturated(y Int16x8) Int16x8
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:7285:/* SubPairsSaturatedGrouped */
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:7287:// SubPairsSaturatedGrouped horizontally subtracts adjacent pairs of elements with saturation.
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/ops_amd64.go:7292:func (x Int16x16) SubPairsSaturatedGrouped(y Int16x16) Int16x16
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/unify/testdata/stress.yaml:3:# seconds on my laptop and had a max RSS of ~12 GB. Big enough to be really
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/unify/testdata/stress.yaml:5:# better environment representation, it runs almost instantly and has an RSS of
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/go.yaml:75:- go: AddPairsSaturated
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/go.yaml:85:- go: SubPairsSaturated
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/go.yaml:110:- go: AddPairsSaturatedGrouped
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/go.yaml:120:- go: SubPairsSaturatedGrouped
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/categories.yaml:46:- go: AddPairsSaturated
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/categories.yaml:51:- go: SubPairsSaturated
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/categories.yaml:88:- go: AddPairsSaturatedGrouped
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/AddSub/categories.yaml:94:- go: SubPairsSaturatedGrouped
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/MLOps/go.yaml:13:- go: DotProductPairsSaturated
/home/sebas/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.26.2.linux-arm64/src/simd/archsimd/_gen/simdgen/ops/MLOps/categories.yaml:8:- go: DotProductPairsSaturated
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/syscall_windows_test.go:100:	sid, err := windows.CreateWellKnownSid(windows.WinBuiltinAdministratorsSid)
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/syscall_windows_test.go:279:	if !sdOwner.IsWellKnown(windows.WinBuiltinAdministratorsSid) {
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/syscall_windows_test.go:287:	adminSid, err := windows.CreateWellKnownSid(windows.WinBuiltinAdministratorsSid)
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:340:	WinEnterpriseControllersSid                   = 15
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:351:	WinBuiltinAdministratorsSid                   = 26
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:352:	WinBuiltinUsersSid                            = 27
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:354:	WinBuiltinPowerUsersSid                       = 29
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:355:	WinBuiltinAccountOperatorsSid                 = 30
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:356:	WinBuiltinSystemOperatorsSid                  = 31
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:357:	WinBuiltinPrintOperatorsSid                   = 32
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:358:	WinBuiltinBackupOperatorsSid                  = 33
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:361:	WinBuiltinRemoteDesktopUsersSid               = 36
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:362:	WinBuiltinNetworkConfigurationOperatorsSid    = 37
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:367:	WinAccountDomainUsersSid                      = 42
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:369:	WinAccountComputersSid                        = 44
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:370:	WinAccountControllersSid                      = 45
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:375:	WinAccountRasAndIasServersSid                 = 50
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:381:	WinBuiltinIncomingForestTrustBuildersSid      = 56
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:382:	WinBuiltinPerfMonitoringUsersSid              = 57
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:383:	WinBuiltinPerfLoggingUsersSid                 = 58
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:385:	WinBuiltinTerminalServerLicenseServersSid     = 60
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:386:	WinBuiltinDCOMUsersSid                        = 61
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:387:	WinBuiltinIUsersSid                           = 62
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:389:	WinBuiltinCryptoOperatorsSid                  = 64
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:399:	WinEnterpriseReadonlyControllersSid           = 74
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:400:	WinAccountReadonlyControllersSid              = 75
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:402:	WinNewEnterpriseReadonlyControllersSid        = 77
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:420:	WinBuiltinRDSRemoteAccessServersSid           = 95
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:421:	WinBuiltinRDSEndpointServersSid               = 96
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:422:	WinBuiltinRDSManagementServersSid             = 97
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:423:	WinUserModeDriversSid                         = 98
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:425:	WinAccountCloneableControllersSid             = 100
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:426:	WinBuiltinAccessControlAssistanceOperatorsSid = 101
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:427:	WinBuiltinRemoteManagementUsersSid            = 102
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:432:	WinAccountProtectedUsersSid                   = 107
/home/sebas/go/pkg/mod/golang.org/x/sys@v0.42.0/windows/security_windows.go:444:	WinBuiltinDeviceOwnersSid                     = 119
/home/sebas/work/projects/rss-offline/build.py:23:OUTPUT_DIR = Path('/var/www/rss-offline')
/home/sebas/work/projects/rss-offline/build.py:24:MAX_ENTRIES = int(os.environ.get('RSS_OFFLINE_MAX_ENTRIES', '250'))
/home/sebas/work/projects/rss-offline/build.py:25:DAYS = int(os.environ.get('RSS_OFFLINE_DAYS', '14'))
/home/sebas/work/projects/rss-offline/build.py:27:HEADERS = {'user-agent': 'Mozilla/5.0 (rss-offline builder)'}
/home/sebas/work/projects/rss-offline/build.py:28:DEFAULT_CAPTURE_MODE = os.environ.get('RSS_OFFLINE_CAPTURE_MODE', 'rendered').strip().lower() or 'rendered'
/home/sebas/work/projects/rss-offline/build.py:29:RENDER_BUDGET_MS = int(os.environ.get('RSS_OFFLINE_RENDER_BUDGET_MS', '8000'))
/home/sebas/work/projects/rss-offline/build.py:30:MAX_RENDERED_ENTRIES = int(os.environ.get('RSS_OFFLINE_MAX_RENDERED_ENTRIES', '8'))
/home/sebas/work/projects/rss-offline/build.py:31:MAX_ASSETS_PER_PAGE = int(os.environ.get('RSS_OFFLINE_MAX_ASSETS_PER_PAGE', '24'))
/home/sebas/work/projects/rss-offline/build.py:32:MAX_ASSET_BYTES = int(os.environ.get('RSS_OFFLINE_MAX_ASSET_BYTES', '1500000'))
/home/sebas/work/projects/rss-offline/build.py:34:CHROMIUM_BIN = os.environ.get('RSS_OFFLINE_CHROMIUM_BIN', '/usr/bin/chromium')
/home/sebas/work/projects/rss-offline/build.py:35:EPUB_TITLE = os.environ.get('RSS_OFFLINE_EPUB_TITLE', 'rss-offline latest')
/home/sebas/work/projects/rss-offline/build.py:36:EPUB_FILENAME = os.environ.get('RSS_OFFLINE_EPUB_FILENAME', 'rss-offline-latest.epub')
/home/sebas/work/projects/rss-offline/build.py:37:EPUB_MAX_ARTICLES = int(os.environ.get('RSS_OFFLINE_EPUB_MAX_ARTICLES', '40'))
/home/sebas/work/projects/rss-offline/build.py:38:EPUB_MAX_IMAGES_PER_ARTICLE = int(os.environ.get('RSS_OFFLINE_EPUB_MAX_IMAGES_PER_ARTICLE', '12'))
/home/sebas/work/projects/rss-offline/build.py:39:EPUB_MAX_IMAGE_BYTES = int(os.environ.get('RSS_OFFLINE_EPUB_MAX_IMAGE_BYTES', '2000000'))
/home/sebas/work/projects/rss-offline/build.py:40:PDF_DIRNAME = os.environ.get('RSS_OFFLINE_PDF_DIRNAME', 'pdf')
/home/sebas/work/projects/rss-offline/build.py:41:PDF_MAX_ARTICLES = int(os.environ.get('RSS_OFFLINE_PDF_MAX_ARTICLES', '8'))
/home/sebas/work/projects/rss-offline/build.py:42:PDF_MERGED_FILENAME = os.environ.get('RSS_OFFLINE_PDF_MERGED_FILENAME', 'rss-offline-latest.pdf')
/home/sebas/work/projects/rss-offline/build.py:43:PDF_PAGE_TIMEOUT = int(os.environ.get('RSS_OFFLINE_PDF_PAGE_TIMEOUT', '90'))
/home/sebas/work/projects/rss-offline/build.py:44:PDF_MAX_SOURCE_BYTES = int(os.environ.get('RSS_OFFLINE_PDF_MAX_SOURCE_BYTES', '2500000'))
/home/sebas/work/projects/rss-offline/build.py:45:PUBLIC_BASE_URL = os.environ.get('RSS_OFFLINE_PUBLIC_BASE_URL', 'https://ballbox-first.emperor-ratio.ts.net/rss-offline')
/home/sebas/work/projects/rss-offline/build.py:187:            node[attr] = '/rss-offline/' + rel
/home/sebas/work/projects/rss-offline/build.py:254:        '.rss-offline-banner{position:fixed;top:0;left:0;right:0;z-index:2147483647;'
/home/sebas/work/projects/rss-offline/build.py:257:        '.rss-offline-banner a{color:#8dc3ff;text-decoration:none}'
/home/sebas/work/projects/rss-offline/build.py:258:        '.rss-offline-banner strong{color:#fff}'
/home/sebas/work/projects/rss-offline/build.py:259:        '.rss-offline-banner .muted{opacity:.78}'
/home/sebas/work/projects/rss-offline/build.py:268:        f'<div class="rss-offline-banner"><a href="/rss-offline/">← rss-offline</a> · '
/home/sebas/work/projects/rss-offline/build.py:457:    <dc:identifier id="bookid">urn:rss-offline:{int(time.time())}</dc:identifier>
/home/sebas/work/projects/rss-offline/build.py:460:    <dc:creator>rss-offline</dc:creator>
/home/sebas/work/projects/rss-offline/build.py:490:    return {'path': f'/rss-offline/{EPUB_FILENAME}', 'count': len(articles)}
/home/sebas/work/projects/rss-offline/build.py:549:    html = html.replace('/rss-offline/', 'file:///var/www/rss-offline/')
/home/sebas/work/projects/rss-offline/build.py:590:                'path': f'/rss-offline/{PDF_DIRNAME}/{pdf_name}',
/home/sebas/work/projects/rss-offline/build.py:600:        'path': f'/rss-offline/{PDF_MERGED_FILENAME}',
/home/sebas/work/projects/rss-offline/build.py:623:        if root.tag.endswith('rss'):
/home/sebas/work/projects/rss-offline/build.py:668:            entry['local_path'] = f'/rss-offline/article-{key}.html'
/home/sebas/work/projects/rss-offline/build.py:700:    index.write_text(f'''<!doctype html><html lang="es"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="theme-color" content="#07111f"><title>rss-offline</title><style>*{{box-sizing:border-box}}body{{margin:0;font-family:system-ui,sans-serif;background:#07111f;color:#fff}}main{{max-width:960px;margin:0 auto;padding:24px}}h1{{margin:0 0 8px}}.muted{{color:rgba(255,255,255,.68)}}.item{{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.08)}}.item h2{{margin:0 0 6px;font-size:1.1rem}}a{{color:#8dc3ff;text-decoration:none}}a:hover{{text-decoration:underline}}.meta,.actions{{font-size:.92rem;color:rgba(255,255,255,.72)}} .top{{display:flex;justify-content:space-between;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}}</style></head><body><main><div class="top"><div><h1>rss-offline</h1><p class="muted">Artículos por fecha con página local completa, modo visible y link real.</p>{pdf_cta}{epub_cta}</div><p class="muted">{len(archived)} artículos · últimos {DAYS} días</p></div>{''.join(cards)}<script>const RSS_OFFLINE_LOCAL_PATHS={json.dumps(local_paths, ensure_ascii=False)};if('serviceWorker' in navigator){{window.addEventListener('load',()=>navigator.serviceWorker.register('/rss-offline/sw.js').catch(()=>{{}}));}}window.addEventListener('load',()=>{{const warm=async()=>{{for(const path of RSS_OFFLINE_LOCAL_PATHS){{try{{await fetch(path,{{cache:'force-cache'}});}}catch(_e){{}}}}}};setTimeout(warm,1200);}});</script></main></body></html>''')
/home/sebas/work/projects/rss-offline/build.py:702:    offline.write_text('<!doctype html><html lang="es"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>rss-offline sin conexión</title><style>body{font-family:system-ui,sans-serif;background:#07111f;color:#fff;display:grid;place-items:center;min-height:100vh;padding:24px;margin:0}main{max-width:520px;padding:24px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.05)}a{color:#8dc3ff}</style></head><body><main><h1>Sin conexión</h1><p>La lista y copias locales visitadas deberían seguir disponibles.</p><p><a href="/rss-offline/">Volver a rss-offline</a></p></main></body></html>')
/home/sebas/work/projects/rss-offline/build.py:704:    precache_paths = ['/rss-offline/', '/rss-offline/offline.html', '/rss-offline/entries.json'] + ([pdf_info['path']] if pdf_info else []) + ([epub_info['path']] if epub_info else []) + [entry['local_path'] for entry in archived]
/home/sebas/work/projects/rss-offline/build.py:705:    sw_version = f"rss-offline-v{int(time.time())}"
/home/sebas/work/projects/rss-offline/build.py:706:    sw.write_text(f"""const V='{sw_version}';const CORE=V+'-core';const PAGES=V+'-pages';const PRECACHE={json.dumps(precache_paths, ensure_ascii=False)};self.addEventListener('install',e=>{{e.waitUntil(caches.open(CORE).then(c=>c.addAll(PRECACHE)));self.skipWaiting();}});self.addEventListener('activate',e=>{{e.waitUntil(caches.keys().then(keys=>Promise.all(keys.filter(k=>k!==CORE&&k!==PAGES).map(k=>caches.delete(k)))).then(()=>self.clients.claim()));}});self.addEventListener('fetch',e=>{{const r=e.request;const u=new URL(r.url);if(r.method!=='GET'||u.origin!==self.location.origin||!u.pathname.startsWith('/rss-offline/'))return;e.respondWith((async()=>{{const core=await caches.open(CORE);const pages=await caches.open(PAGES);const cached=await core.match(r)||await pages.match(r);try{{const res=await fetch(r);if(res.ok) await pages.put(r,res.clone());return res;}}catch{{return cached||await core.match('/rss-offline/offline.html')||Response.error();}}}})());}});""")
/home/sebas/work/projects/rss-offline/feed-sources.json:13:    "name": "Cursor Blog | RSS Feed",
/home/sebas/work/projects/rss-offline/feed-sources.json:24:    "feedUrl": "https://www.digitalocean.com/rss/blog.atom",
/home/sebas/work/projects/rss-offline/feed-sources.json:29:    "feedUrl": "https://earendil.com/posts/feed.rss",
/home/sebas/work/projects/rss-offline/feed-sources.json:44:    "feedUrl": "https://leadershipintech.com/newsletters.rss",
/home/sebas/work/projects/rss-offline/feed-sources.json:54:    "feedUrl": "https://openclaw.ai/rss.xml",
/home/sebas/work/projects/rss-offline/feed-sources.json:59:    "feedUrl": "https://steipete.me/rss.xml",
/home/sebas/work/projects/rss-offline/feed-sources.json:84:    "feedUrl": "https://mariozechner.at/rss.xml",

[Showing lines 146-301 of 301 (50.0KB limit). Full output: /tmp/pi-bash-f1d431baa3ea1aea.log]


**Determining new feeds count**

I need to find out how many new feeds have come in since the last PDF was generated. Using Git could help, perhaps by checking the RSS-offline repository or looking at the file modification time—comparing it to the timestamp of the last PDF generation. I'll need to inspect the repository's status and log to get a clearer picture. Let’s figure this out step by step!

cd /home/sebas/work/projects/rss-offline && git log --oneline --follow -- feed-sources.json | head -30

cd /home/sebas && ls -l --time-style=iso /var/www/rss-offline/rss-offline-latest.pdf /var/www/rss-offline/entries.json 2>/dev/null && stat -c '%y %n' /var/www/rss-offline/rss-offline-latest.pdf /var/www/rss-offline/entries.json 2>/dev/null

cd /home/sebas/work/projects/rss-offline && git status --short && git log --oneline --decorate -n 10


fatal: not a git repository (or any of the parent directories): .git


-rw-r--r-- 1 root root    15752 05-24 04:34 /var/www/rss-offline/entries.json
-rw-r--r-- 1 root root 11308899 05-24 04:34 /var/www/rss-offline/rss-offline-latest.pdf
2026-05-24 04:34:04.224265923 -0300 /var/www/rss-offline/rss-offline-latest.pdf
2026-05-24 04:34:04.624267757 -0300 /var/www/rss-offline/entries.json


fatal: not a git repository (or any of the parent directories): .git

Command exited with code 128


**Locating the Git Repo**

I need to check if the git repository is located at /home/sebas/work/projects/rss-offline, but it might not be a git repo. I wonder if I could compare the current feed sources with my backups. It seems like I should inspect the task documents too. Maybe I’ll search for any mentions of added feeds in the logs to find more clues. Let’s see what I can uncover!

cd /home/sebas && find /home/sebas -path '*/rss-offline*' -name 'feed-sources.json' -o -path '*/rss-offline*' -name '*.log' | sed 's#^#/#' | head -100


# BB-004 rss-offline status — 2026-05-14

Current state for offline feed reading on `ballbox-first`.

## Outcome

Primary path now:

- `https://ballbox-first.emperor-ratio.ts.net/rss-offline/`

## Why the pivot happened

Previous cross-origin browser caching was not reliable enough for the main user goal:

- read recent content offline on phone
- avoid opening blogs one by one first

The weak point was cross-origin caching of external blog pages from mobile browsers.
That made offline hit rate inconsistent even after prefetch attempts.
The current builder now saves the fetched blog page HTML locally instead of a text-only extraction.

## What `rss-offline` does

- reads a curated feed list from local config
- fetches recent entries directly from feeds
- sorts entries by date descending
- downloads recent linked articles server-side
- stores a full local HTML copy of each fetched article page
- serves a static web UI at `/rss-offline/`
- makes the **local copy** the primary click target
- keeps a secondary link to the real/original blog
- registers a service worker under `/rss-offline/`
- precaches generated local article pages for better offline behavior
- runs a rebuild cron every 30 minutes

## Current files and paths

Project source:

- `/home/sebas/work/projects/rss-offline/`
- `/home/sebas/work/projects/rss-offline/feed-sources.json`
- `/home/sebas/work/projects/rss-offline/build.py`

Generated site:

- `/var/www/rss-offline/`
- `/var/www/rss-offline/index.html`
- `/var/www/rss-offline/entries.json`
- `/var/www/rss-offline/sw.js`
- `/var/www/rss-offline/offline.html`
- `/var/www/rss-offline/article-*.html`

Logs:

- `/home/sebas/runtime/rss-offline-build.log`

## Current behavior limits

- offline reliability is better for local copies than for real blog links
- Safari/iPhone caching still may not be perfect for every generated page every time
- some sites will still depend on remote assets for full visual fidelity, but the saved local page is much closer to the original than the old text-only copy
- no category/tag UX yet; the current product is a date-sorted list only
- local copies are raw saved pages with a small local banner, not per-site cleaned reader views

## Operational notes

Cron currently rebuilds every 30 minutes.
That means:

- new recent articles should appear automatically
- local copies should refresh automatically
- service worker cache version only changes when the generated file content changes

## Product direction for now

Treat `rss-offline` as the current best offline reading path.
Keep investing in `rss-offline` only if a future need appears for:

- better feed management UX
- multi-user reader features
- categorization/search heavier than the current simple offline list


//home/sebas/work/projects/rss-offline/feed-sources.json
//home/sebas/runtime/rss-offline-build.log


**Determining baseline for PDF generation**

I need to figure out the baseline for the last merged PDF generation. I think I might be able to infer that from the build log, checking for when the merged PDF was generated and then seeing how many feeds were counted at that time. Maybe I can open the log tail and start there, as it could show the feed count.  Overall, there's some exploration involved, and I'm curious to see what I find!

python3 - <<'PY'
import json
from pathlib import Path
p=Path('/home/sebas/work/projects/rss-offline/feed-sources.json')
feeds=json.loads(p.read_text())
print('current_feeds', len(feeds))
for i,f in enumerate(feeds,1):
    print(i, f['name'])
PY

cd /home/sebas && rg -n "feed-sources.json|rss-offline-latest.pdf|PDF_MERGED_FILENAME|merged" /home/sebas/runtime /home/sebas/work 2>/dev/null | head -200


current_feeds 17
1 Armin Ronacher's Thoughts and Writings
2 Changelog on Tailscale
3 Cursor Blog | RSS Feed
4 David Heinemeier Hansson
5 DigitalOcean Blog
6 Earendil Posts
7 Go Make Things
8 Infrequently Noted
9 Leadership in Tech
10 Martin Alderson
11 OpenClaw Blog
12 Peter Steinberger
13 Simon Willison’s Newsletter
14 Supernuclear
15 The GitHub Blog
16 Web Performance Calendar
17 { Mario Zechner }


OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK rendered https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK simple https://tailscale.com/changelog/#2026-05-14-service
OK rendered https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK rendered https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK rendered https://www.digitalocean.com/blog/your-infrastructure-matters
OK rendered https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK rendered https://tailscale.com/changelog/#2026-05-13-client
OK rendered https://tailscale.com/changelog/#2026-05-13-service
OK rendered https://tailscale.com/changelog/#2026-05-13-service
OK rendered https://tailscale.com/changelog/#2026-05-13-service
OK rendered https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK rendered https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK rendered https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK rendered https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK rendered https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK rendered https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK rendered https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK rendered https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK rendered https://lucumr.pocoo.org/2026/5/8/local-models/
OK rendered https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK rendered https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK rendered https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK rendered https://openclaw.ai/blog/openclaw-rough-week/
OK rendered https://www.digitalocean.com/blog/powering-the-inference-era
OK rendered https://gomakethings.com/which-side-are-you-on/
OK rendered https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK rendered https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK rendered https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK rendered https://simonw.substack.com/p/deepseek-v4-and-the-end-of-the-openaimicrosoft
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK rendered https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK simple https://tailscale.com/changelog/#2026-05-14-service
OK simple https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK simple https://www.digitalocean.com/blog/your-infrastructure-matters
OK simple https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK simple https://tailscale.com/changelog/#2026-05-13-client
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK simple https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK simple https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK simple https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK simple https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK simple https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK simple https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK simple https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK simple https://lucumr.pocoo.org/2026/5/8/local-models/
OK simple https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK simple https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK simple https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openclaw-rough-week/
OK simple https://www.digitalocean.com/blog/powering-the-inference-era
OK simple https://gomakethings.com/which-side-are-you-on/
OK simple https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK simple https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK simple https://simonw.substack.com/p/deepseek-v4-and-the-end-of-the-openaimicrosoft
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK simple https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK rendered https://tailscale.com/changelog/#2026-05-14-service
OK simple https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK simple https://www.digitalocean.com/blog/your-infrastructure-matters
OK simple https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK simple https://tailscale.com/changelog/#2026-05-13-client
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK simple https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK simple https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK simple https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK simple https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK simple https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK simple https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK simple https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK simple https://lucumr.pocoo.org/2026/5/8/local-models/
OK simple https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK simple https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK simple https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openclaw-rough-week/
OK simple https://www.digitalocean.com/blog/powering-the-inference-era
OK simple https://gomakethings.com/which-side-are-you-on/
OK simple https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK simple https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK rendered https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK simple https://tailscale.com/changelog/#2026-05-14-service
OK simple https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK simple https://www.digitalocean.com/blog/your-infrastructure-matters
OK simple https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK simple https://tailscale.com/changelog/#2026-05-13-client
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK simple https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK simple https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK simple https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK simple https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK simple https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK simple https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK simple https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK simple https://lucumr.pocoo.org/2026/5/8/local-models/
OK simple https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK simple https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK simple https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openclaw-rough-week/
OK simple https://www.digitalocean.com/blog/powering-the-inference-era
OK simple https://gomakethings.com/which-side-are-you-on/
OK simple https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK simple https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK rendered https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK simple https://tailscale.com/changelog/#2026-05-14-service
OK simple https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK simple https://www.digitalocean.com/blog/your-infrastructure-matters
OK simple https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK simple https://tailscale.com/changelog/#2026-05-13-client
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK simple https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK simple https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK simple https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK simple https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK simple https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK simple https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK simple https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK simple https://lucumr.pocoo.org/2026/5/8/local-models/
OK simple https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK simple https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK simple https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openclaw-rough-week/
OK simple https://www.digitalocean.com/blog/powering-the-inference-era
OK simple https://gomakethings.com/which-side-are-you-on/
OK simple https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK simple https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK rendered https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK simple https://tailscale.com/changelog/#2026-05-14-service
OK simple https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK simple https://www.digitalocean.com/blog/your-infrastructure-matters
OK simple https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK simple https://tailscale.com/changelog/#2026-05-13-client
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK simple https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK simple https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK simple https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK simple https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK simple https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK simple https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK simple https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK simple https://lucumr.pocoo.org/2026/5/8/local-models/
OK simple https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK simple https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK simple https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openclaw-rough-week/
OK simple https://www.digitalocean.com/blog/powering-the-inference-era
OK simple https://gomakethings.com/which-side-are-you-on/
OK simple https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK simple https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving
OK rendered https://tailscale.com/changelog/#2026-05-15-service
OK rendered https://github.blog/news-insights/company-news/github-availability-report-april-2026/
OK rendered https://github.blog/engineering/architecture-optimization/from-latency-to-instant-modernizing-github-issues-navigation-performance/
OK rendered https://gomakethings.com/we-are-miracles/
OK rendered https://leadershipintech.com/newsletters/2277-before-you-fire-all-your-glue-people-because-of-ai
OK simple https://tailscale.com/changelog/#2026-05-14-service
OK simple https://martinalderson.com/posts/managed-agents-are-the-new-lambda/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openai-models-in-openclaw-done-right/
OK simple https://www.digitalocean.com/blog/your-infrastructure-matters
OK simple https://github.blog/open-source/gaming/dungeons-desktops-10-roguelikes-that-never-die-because-their-communities-wont-let-them/
OK simple https://tailscale.com/changelog/#2026-05-13-client
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://tailscale.com/changelog/#2026-05-13-service
OK simple https://github.blog/news-insights/company-news/github-copilot-individual-plans-introducing-flex-allotments-in-pro-and-pro-and-a-new-max-plan/
OK simple https://github.blog/ai-and-ml/github-copilot/dungeons-desktops-building-a-procedurally-generated-roguelike-with-github-copilot-cli/
OK simple https://github.blog/developer-skills/github/github-for-beginners-getting-started-with-oss-contributions/
OK simple https://gomakethings.com/pruning-harvesting-replanting-and-other-forced-metaphors/
OK simple https://leadershipintech.com/newsletters/2276-when-everyone-has-ai-and-the-company-still-learns-nothing
OK simple https://simonw.substack.com/p/vibe-coding-and-agentic-engineering
OK simple https://github.blog/news-insights/policy-news-and-insights/why-age-assurance-laws-matter-for-developers/
OK simple https://github.blog/news-insights/policy-news-and-insights/how-researchers-are-using-github-innovation-graph-data-to-reveal-the-digital-complexity-of-nations/
OK simple https://lucumr.pocoo.org/2026/5/8/local-models/
OK simple https://supernuclear.substack.com/p/what-popup-villages-teach-us-about
OK simple https://leadershipintech.com/newsletters/2272-agile-in-the-age-of-ai
OK simple https://martinalderson.com/posts/open-weights-are-quietly-closing-up/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://openclaw.ai/blog/openclaw-rough-week/
OK simple https://www.digitalocean.com/blog/powering-the-inference-era
OK simple https://gomakethings.com/which-side-are-you-on/
OK simple https://lucumr.pocoo.org/2026/5/4/content-for-contents-sake/
OK simple https://martinalderson.com/posts/august-29-2026-a-scenario/?utm_source=rss&utm_medium=rss&utm_campaign=feed
OK simple https://leadershipintech.com/newsletters/2271-measure-less-to-learn-more
OK rendered https://github.blog/ai-and-ml/github-copilot/building-a-general-purpose-accessibility-agent-and-what-we-learned-in-the-process/
OK rendered https://github.blog/security/raising-the-bar-quality-shared-responsibility-and-the-future-of-githubs-bug-bounty-program/
OK rendered https://supernuclear.substack.com/p/repost-meet-cheryl-your-coliving

[15501 more lines in file. Use offset=251 to continue.]


/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/coreBundle.js:66551:      const mergedResult = mergeTextParts(toolResult);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/coreBundle.js:66552:      serverDebugResponse("callResult", mergedResult);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/coreBundle.js:66553:      return mergedResult;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/coreBundle.js:66857:  const merged = mergeConfig(defaultConfig, config);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/coreBundle.js:66858:  const browser = await validateBrowserConfig(merged.browser);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/coreBundle.js:66859:  return { ...merged, browser };
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:10708:       * Return an object containing merged local and global option values as key-value pairs.
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:45677:        const merged = cxt.mergeValidEvaluated(schCxt, schValid);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:45678:        if (!merged)
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:52332:        const merged = cxt.mergeValidEvaluated(schCxt, schValid);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:52333:        if (!merged)
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:59588:  const mergedDescriptors = {};
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:59591:    Object.assign(mergedDescriptors, descriptors);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:59593:  return Object.defineProperties({}, mergedDescriptors);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:62222:  const merged = mergeValues(left.value, right.value);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:62223:  if (!merged.valid) {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:62224:    throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(merged.mergeErrorPath)}`);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:62226:  result.value = merged.data;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:72937:      message = `Intersection results could not be merged`;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75013:   * inferred type of merged objects. Please
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75017:    const merged = new _ZodObject({
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75026:    return merged;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75054:  //   const merged: any = new ZodObject({
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75061:  //   return merged;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75074:  //   // const mergedShape = objectUtil.mergeShapes(
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75078:  //   const merged: any = new ZodObject({
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75085:  //   return merged;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75431:      const merged = mergeValues2(parsedLeft.value, parsedRight.value);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75432:      if (!merged.valid) {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:75441:      return { status: status.value, value: merged.data };
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:78351:  const mergedAllOf = [];
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:78354:      mergedAllOf.push(...schema.allOf);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:78366:      mergedAllOf.push(nestedSchema);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:78369:  return mergedAllOf.length ? {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:78370:    allOf: mergedAllOf,
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:80688:   * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:81367:   * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:82115:    const mergedInit = {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/lib/utilsBundle.js:82121:    return baseFetch(url2, mergedInit);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/protocol.d.ts:7261:     * TODO: OBSOLETE: To remove when setPressureDataOverride is merged.
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/protocol.d.ts:7822:will be merged with existing values in the storage area.
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:3234:   * options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:5150:   * context options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:9489:   * merged with page-specific extra HTTP headers set with
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:10417:       * options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:15818:       * options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:22100:       * options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:22788:       * options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright-core/types/types.d.ts:23963:     * options was provided and the passed URL is a path, it gets merged via the
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/matchers/expect.js:12971:  let merged = expect;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/matchers/expect.js:12976:    merged = merged.extend(info.userMatchers);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/matchers/expect.js:12978:  return merged;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/runner/index.js:7698:        `Blob reports being merged were recorded with different test directories, and`,
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:32294:      const mergedVisitor = {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:32298:      Object.defineProperty(mergedVisitor, "_exploded", {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:32301:      Object.defineProperty(mergedVisitor, "_verified", {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:32311:        mergePair(mergedVisitor, topVisitor);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:32318:          const nodeVisitor = mergedVisitor[key] || (mergedVisitor[key] = {});
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:32322:      return mergedVisitor;
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:35538:          get __mergedMap() {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:57615:      const merged = {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:57619:        (0, _util.mergeOptions)(merged, opts);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:57621:      const options = Object.assign({}, merged, {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:57622:        targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir),
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:59349:      if (result.__mergedMap) {
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:63069:          const mergedSuperCall = _core.types.callExpression(_core.types.cloneNode(protoInitLocal), [expressions[0]]);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/lib/transform/babelBundle.js:63070:          expressions.splice(0, 2, mergedSuperCall);
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/types/test.d.ts:7602: * fixtures specifically for the test. Values prepared by the fixtures are merged into a single object that is
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/types/test.d.ts:7651: * fixtures specifically for the test. Values prepared by the fixtures are merged into a single object that is
/home/sebas/work/reports/ourvend-cloud-map/node_modules/playwright/types/test.d.ts:9776:   * context options and the `url` argument is a string, the two values are merged via the
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/parquet.py:81:        Neighboring byte ranges will only be merged when their
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/parquet.py:84:        Neighboring byte ranges will only be merged when the size of
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/utils.py:40:        Its contents will get merged with the inferred information from the
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/utils.py:538:    gap is <= `max_gap`, and when the merged byte range does not
/home/sebas/work/projects/rss-offline/build.py:21:SOURCES_PATH = BASE_DIR / 'feed-sources.json'
/home/sebas/work/projects/rss-offline/build.py:42:PDF_MERGED_FILENAME = os.environ.get('RSS_OFFLINE_PDF_MERGED_FILENAME', 'rss-offline-latest.pdf')
/home/sebas/work/projects/rss-offline/build.py:597:    merged_path = OUTPUT_DIR / PDF_MERGED_FILENAME
/home/sebas/work/projects/rss-offline/build.py:598:    subprocess.run(['pdfunite', *article_pdfs, str(merged_path)], check=True)
/home/sebas/work/projects/rss-offline/build.py:600:        'path': f'/rss-offline/{PDF_MERGED_FILENAME}',
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/implementations/reference.py:684:            Neighboring byte ranges will only be merged when their
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/implementations/reference.py:688:            Neighboring byte ranges will only be merged when the size of
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/fsspec/implementations/reference.py:957:            # unbundle from merged bytes - simple approach
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py:302:        provided, it is merged with the instance's ``connection_pool_kw``
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py:396:        removed from the merged dictionary.
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:285:        return {k.lower(): v for k, v in self.itermerged()} == {
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:286:            k.lower(): v for k, v in other_as_http_header_dict.itermerged()
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:427:        return f"{type(self).__name__}({dict(self.itermerged())})"
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:446:    def itermerged(self) -> typing.Iterator[tuple[str, str]]:
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/llvmlite/tests/test_ir.py:456:        # Identical debug info nodes should be merged
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/llvmlite/tests/test_ir.py:487:        # Identical DIBasicType metadata nodes should be merged
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:65:    setting is a dictionary, they will be merged together using `dict_class`
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:80:    merged_setting = dict_class(to_key_val_list(session_setting))
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:81:    merged_setting.update(to_key_val_list(request_setting))
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:85:    none_keys = [k for (k, v) in merged_setting.items() if v is None]
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:87:        del merged_setting[key]
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:89:    return merged_setting
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:463:        merged from the :class:`Request <Request>` instance and those of the
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:477:        merged_cookies = merge_cookies(
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:498:            cookies=merged_cookies,
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py:543:    """Add cookies to cookiejar and returns a merged CookieJar.
/home/sebas/runtime/venvs/catt/share/fish/vendor_completions.d/yt-dlp.fish:205:complete --command yt-dlp --long-option video-multistreams --description 'Allow multiple video streams to be merged into a single file'
/home/sebas/runtime/venvs/catt/share/fish/vendor_completions.d/yt-dlp.fish:207:complete --command yt-dlp --long-option audio-multistreams --description 'Allow multiple audio streams to be merged into a single file'
/home/sebas/runtime/venvs/catt/share/man/man1/yt-dlp.1:825:Allow multiple video streams to be merged into a single file
/home/sebas/runtime/venvs/catt/share/man/man1/yt-dlp.1:831:Allow multiple audio streams to be merged into a single file
/home/sebas/runtime/venvs/catt/share/man/man1/yt-dlp.1:2222:pre-merged mp4 and webm formats with a height lower than 480.
/home/sebas/runtime/venvs/catt/share/man/man1/yt-dlp.1:3783:    # These are the minimum required fields for a merged format
/home/sebas/runtime/venvs/catt/share/man/man1/yt-dlp.1:3806:and merged with
/home/sebas/runtime/venvs/catt/share/doc/yt_dlp/README.txt:973:    --video-multistreams            Allow multiple video streams to be merged
/home/sebas/runtime/venvs/catt/share/doc/yt_dlp/README.txt:977:    --audio-multistreams            Allow multiple audio streams to be merged
/home/sebas/runtime/venvs/catt/share/doc/yt_dlp/README.txt:1959:-f "(mp4,webm)[height<480]" will download the best pre-merged mp4 and
/home/sebas/runtime/venvs/catt/share/doc/yt_dlp/README.txt:2889:        # These are the minimum required fields for a merged format
/home/sebas/runtime/venvs/catt/share/doc/yt_dlp/README.txt:2910:-   Forked from yt-dlc@f9401f2 and merged with youtube-dl@a08f2b7
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/yt_dlp-2026.3.17.dist-info/METADATA:942:    --video-multistreams            Allow multiple video streams to be merged
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/yt_dlp-2026.3.17.dist-info/METADATA:946:    --audio-multistreams            Allow multiple audio streams to be merged
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/yt_dlp-2026.3.17.dist-info/METADATA:1678:Format selectors can also be grouped using parentheses; e.g. `-f "(mp4,webm)[height<480]"` will download the best pre-merged mp4 and webm formats with a height lower than 480.
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/yt_dlp-2026.3.17.dist-info/METADATA:2307:    # These are the minimum required fields for a merged format
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/yt_dlp-2026.3.17.dist-info/METADATA:2330:* Forked from [**yt-dlc@f9401f2**](https://github.com/blackjack4494/yt-dlc/commit/f9401f2a91987068139c5f757b12fc711d4c0cee) and merged with [**youtube-dl@a08f2b7**](https://github.com/ytdl-org/youtube-dl/commit/a08f2b7e4567cdc50c0614ee0a4ffdff49b8b6e6) ([exceptions](https://github.com/yt-dlp/yt-dlp/issues/21))
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py:28:        should have their specifier parts merged or a candidate matches a
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pychromecast/controllers/plex.py:105:        **kwargs: To allow overrides, this will be merged with the rest of the msg.
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py:231:        provided, it is merged with the instance's ``connection_pool_kw``
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py:309:        removed from the merged dictionary.
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:171:        return dict((k.lower(), v) for k, v in self.itermerged()) == dict(
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:172:            (k.lower(), v) for k, v in other.itermerged()
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:298:        return "%s(%s)" % (type(self).__name__, dict(self.itermerged()))
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:320:    def itermerged(self):
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:64:    setting is a dictionary, they will be merged together using `dict_class`
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:79:    merged_setting = dict_class(to_key_val_list(session_setting))
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:80:    merged_setting.update(to_key_val_list(request_setting))
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:84:    none_keys = [k for (k, v) in merged_setting.items() if v is None]
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:86:        del merged_setting[key]
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:88:    return merged_setting
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:460:        merged from the :class:`Request <Request>` instance and those of the
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:474:        merged_cookies = merge_cookies(
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:495:            cookies=merged_cookies,
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py:543:    """Add cookies to cookiejar and returns a merged CookieJar.
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_internal/cache.py:281:                # https://github.com/pypa/pip/pull/10564 is merged.
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/pip/_internal/cli/parser.py:234:        # was merged which removed the fallthrough logic for options
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py:28:        should have their specifier parts merged or a candidate matches a
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/numpy/ma/core.py:4222:            # Now take care of the mask; the merged mask should have an item
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/numpy/ma/core.py:8034:    merged_array : array
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py:231:        provided, it is merged with the instance's ``connection_pool_kw``
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/urllib3/poolmanager.py:309:        removed from the merged dictionary.
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:171:        return dict((k.lower(), v) for k, v in self.itermerged()) == dict(
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:172:            (k.lower(), v) for k, v in other.itermerged()
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:298:        return "%s(%s)" % (type(self).__name__, dict(self.itermerged()))
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/urllib3/_collections.py:320:    def itermerged(self):
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/urllib3/poolmanager.py:302:        provided, it is merged with the instance's ``connection_pool_kw``
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/urllib3/poolmanager.py:396:        removed from the merged dictionary.
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:64:    setting is a dictionary, they will be merged together using `dict_class`
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:79:    merged_setting = dict_class(to_key_val_list(session_setting))
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:80:    merged_setting.update(to_key_val_list(request_setting))
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:84:    none_keys = [k for (k, v) in merged_setting.items() if v is None]
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:86:        del merged_setting[key]
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:88:    return merged_setting
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:460:        merged from the :class:`Request <Request>` instance and those of the
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:474:        merged_cookies = merge_cookies(
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/sessions.py:495:            cookies=merged_cookies,
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/urllib3/_collections.py:285:        return {k.lower(): v for k, v in self.itermerged()} == {
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/urllib3/_collections.py:286:            k.lower(): v for k, v in other_as_http_header_dict.itermerged()
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/urllib3/_collections.py:427:        return f"{type(self).__name__}({dict(self.itermerged())})"
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/urllib3/_collections.py:446:    def itermerged(self) -> typing.Iterator[tuple[str, str]]:
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/requests/cookies.py:543:    """Add cookies to cookiejar and returns a merged CookieJar.
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_vendor/distlib/locators.py:979:                         the results from all locators are merged (this can be
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/pip/_internal/cache.py:279:                # https://github.com/pypa/pip/pull/10564 is merged.
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_vendor/resolvelib/providers.py:28:        should have their specifier parts merged or a candidate matches a
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/numpy/_core/multiarray.py:3:In v1.16 the multiarray and umath c-extension modules were merged into
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/numpy/_core/fromnumeric.py:367:    merged_array : array
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/numpy/_core/fromnumeric.py:368:        The merged result.
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/torchgen/packaged/autograd/derivatives.yaml:2743:# because it should be merged into the previous convolution (left for future
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/cuda/bindings/_lib/cyruntime/cyruntime.pxi:13:# c.b._lib.cyruntime.utils), but was merged into one.
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/cuda/bindings/_lib/cyruntime/cyruntime.pxd:18:# c.b._lib.cyruntime.utils), but was merged into one.
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/urllib3/poolmanager.py:302:        provided, it is merged with the instance's ``connection_pool_kw``
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/urllib3/poolmanager.py:396:        removed from the merged dictionary.
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/urllib3/_collections.py:285:        return {k.lower(): v for k, v in self.itermerged()} == {
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/urllib3/_collections.py:286:            k.lower(): v for k, v in other_as_http_header_dict.itermerged()
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/urllib3/_collections.py:427:        return f"{type(self).__name__}({dict(self.itermerged())})"
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/urllib3/_collections.py:446:    def itermerged(self) -> typing.Iterator[tuple[str, str]]:
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_internal/cache.py:281:                # https://github.com/pypa/pip/pull/10564 is merged.
/home/sebas/runtime/venvs/copyparty/lib/python3.13/site-packages/pip/_internal/cli/parser.py:234:        # was merged which removed the fallthrough logic for options
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:182:    # Cache for decoded payload deduplication: hash(decoded_payload) -> (mean_mess_ratio, cd_ratios_merged, passed)
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:665:            cd_ratios_merged = merge_coherence_ratios(cd_ratios)
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:667:            cd_ratios_merged = merge_coherence_ratios(cd_ratios)
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:669:        if cd_ratios_merged:
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:673:                    cd_ratios_merged, encoding_iana
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:682:            cd_ratios_merged,
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:700:                (mean_mess_ratio, cd_ratios_merged, True),
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:758:                max((v for _, v in cd_ratios_merged), default=0.0)
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/charset_normalizer/api.py:759:                if cd_ratios_merged
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:65:    setting is a dictionary, they will be merged together using `dict_class`
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:80:    merged_setting = dict_class(to_key_val_list(session_setting))
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:81:    merged_setting.update(to_key_val_list(request_setting))
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:85:    none_keys = [k for (k, v) in merged_setting.items() if v is None]
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:87:        del merged_setting[key]
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:89:    return merged_setting
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:463:        merged from the :class:`Request <Request>` instance and those of the
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:477:        merged_cookies = merge_cookies(
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/sessions.py:498:            cookies=merged_cookies,
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/requests/cookies.py:543:    """Add cookies to cookiejar and returns a merged CookieJar.
/home/sebas/runtime/venvs/whisper/lib/python3.13/site-packages/numpy/_core/umath.py:3:the multiarray and umath c-extension modules were merged into a single
/home/sebas/runtime/venvs/catt/lib/python3.13/site-packages/yt_dlp/options.py:903:        help='Allow multiple video streams to be merged into a single file')