The lead still recommended secure, which the flask-cors addition moved to a challenger slot, and said nothing about CORS. The lead now names nh3 and the CORS picks, and the closing paragraph names the sanitizer and the CSP instead of "both".
Co-Authored-By: Claude <noreply@anthropic.com>
Two How-to-choose picks named Monty and Temporal did not link to their table rows, because their names differ from the README entries pydantic-monty and temporalio.
Co-Authored-By: Claude <noreply@anthropic.com>
The star scan pruned unstarred repos from its untracked ledger but left their Rejected Additions lines in docs/audit-logs.md, so that list went stale after unstars.
Co-Authored-By: Claude <noreply@anthropic.com>
The ledger kept screen-out rows for unstarred repos because the scan script only read it and the skill called it append-only, so dead rows piled up.
Co-Authored-By: Claude <noreply@anthropic.com>
General becomes Argument Parsing for argparse, click, typer, and cyclopts, and prompt_toolkit moves to TUI Frameworks after textual. Redirects the old General URL.
Co-Authored-By: Claude <noreply@anthropic.com>
General held two unrelated tools. tablib moves to Data Formats, and General becomes Binary Formats for pyelftools. Redirects the old General URL.
Co-Authored-By: Claude <noreply@anthropic.com>
General held two unrelated tools. pyfiglet moves to CLI Development > Terminal Rendering as a challenger, and the rest becomes Diffs for difflib. Redirects the old General URL.
Co-Authored-By: Claude <noreply@anthropic.com>
Others mixed three jobs. pdb-like Debugger becomes Debuggers and takes debugpy, a new Web Framework Toolbars holds django-debug-toolbar, django-silk, and flask-debugtoolbar, and icecream joins Tracing. Redirects the two old subcategory URLs.
Co-Authored-By: Claude <noreply@anthropic.com>
On phones the label under each project name showed its subcategory, and names like "General", "Synchronous", or "Core" only make sense under their category heading, so the home and group tables showed vague labels.
Co-Authored-By: Claude <noreply@anthropic.com>
Comparisons treat dataclasses as the default for class boilerplate and attrs as the upgrade for validators, converters, and slots.
Co-Authored-By: Claude <noreply@anthropic.com>
The payment methods listed card via Open Collective first, ahead of the options sponsors are pointed to first.
Co-Authored-By: Claude <noreply@anthropic.com>
- machine-learning.md: the Prophet docs moved from facebook.github.io/prophet
(now 404) to meta.github.io/prophet, matching the github.com/meta/prophet
entry in README.md.
- web-apis.md: the Django Ninja routers guide is at /guide/routers/, not
/guides/routers/ (404).
The sitemap lastmod test failed wherever the global git config enabled commit signing with an unreachable key, because the test strips every GIT_* variable and so dropped any override that disabled signing.
Co-Authored-By: Claude <noreply@anthropic.com>
An explicit httpx.HTTPTransport makes httpx ignore HTTPS_PROXY, so the fetch failed with a DNS error wherever outbound traffic must go through a proxy.
Co-Authored-By: Claude <noreply@anthropic.com>
An entry link like /categories/caching/#entry-diskcache did not open its row when only the hash changed on an already-loaded page (editing the URL, back/forward), because the row-opening logic ran only on initial load.
Co-Authored-By: Claude <noreply@anthropic.com>
The test ran main.js against a hand-built fake page, so any new browser API main.js used at page load broke it with a TypeError unrelated to entry links.
Co-Authored-By: Claude <noreply@anthropic.com>
font-display: optional gives the web fonts only ~100ms; on a cold cache, or once GitHub Pages' max-age=600 expires and the font must revalidate, they miss that window and the whole page view renders in Georgia/Avenir Next until reload.
Co-Authored-By: Claude <noreply@anthropic.com>
The jump links sat 17.6px above the hero's bottom edge, tighter than the 20px above the topbar, so the hero looked cut short. Bottom padding goes from 1.1rem to 1.75rem; the comment justifying the smaller bottom no longer applies.
On phones the "Top ↑" header button was wider than the row arrows, so it set the arrow column's width and left a wide gap between the downloads number and the arrow.
Co-Authored-By: Claude <noreply@anthropic.com>
On phones the row arrow was centered in its column, leaving a wider gap on the right edge than on the left.
Co-Authored-By: Claude <noreply@anthropic.com>