Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-26 16:38 UTC

servo / stylo

CSS engine that powers Servo and Firefox

RustKeine Lizenz erkannt★ 304 Sterne⑂ 94 Forksseit Feb. 2024Auf GitHub ansehen ↗

servo/stylo erreicht einen Gesundheitsindex von 70 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Vitality (100/100) ab, am schwächsten bei Engineering Quality (46/100). Zuletzt heute aktualisiert. 8 Mitwirkende tragen den Großteil der jüngsten Arbeit.

70
gesamt / 100
Gut

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

70
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

ServoOrganisation
1.251 Follower193 öffentliche Reposseit Okt. 2012

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
crates.iostylo0.19.046.36122vor 23 Tagen
crates.ioto_shmem0.5.046.7326vor 23 Tagen
crates.ioselectors0.39.06.604.02161vor 23 Tagencssselectors
crates.ioservo_arc0.4.36.194.8027vor 256 Tagen
crates.iostylo_dom0.19.046.40520vor 23 Tagencssstyle
crates.iostylo_atoms0.19.046.42720vor 23 Tagen
crates.iostylo_derive0.19.045.80520vor 23 Tagen
crates.iostylo_traits0.19.046.39920vor 23 Tagen

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

100Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
36/36Commit-Rhythmus — 52/52 Wochen mit Commits
18/18Commit-Volumen — 1.063 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year1.063
human_commit_share1
days_since_last_push0
active_weeks_last_year52

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 18 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 25 Tagen
27/27Release-Rhythmus — ein Release etwa alle 19,5 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count18
latest_release_tagv0.19.0
releases_from_tagsnein
days_since_latest_release25
mean_days_between_releases19,5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

59Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
40.3/60Stars — 304 Stars
16.4/25Forks — 94 Forks
5/15Watcher — 9 Watcher
Verwendete Eingangsdaten
forks94
stars304
watchers9
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
0/22.5Lizenz — keine Lizenzdatei erkannt
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licensenein
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
80/80Downloads pro Monat — 13.076.952 Downloads/Monat über crates
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesstylo, to_shmem, selectors, servo_arc, stylo_dom, stylo_atoms, stylo_derive, stylo_traits
dependents
ecosystemscrates
total_downloads114.753.542
monthly_downloads13.076.952
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

85Exzellent · 24 % des Gesamtindex
Wie die Bewertung erfolgt
54/54Bus-Faktor — 8 Beitragende decken die Hälfte aller Commits ab
16.6/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 26 % der Commits
13.5/13.5Breite der Beitragenden — 100 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 46 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor8
contributors_sampled100
top_contributor_share0,264
Wie die Bewertung erfolgt
30.6/46.8Issue-Lösungsquote — 66 % der Issues geschlossen
32.2/38.3PR-Annahme — 276/328 entschiedene PRs gemergt
9/15OpenSSF Scorecard: Code-Review — Found 18/30 approved changesets -- score normalized to 6
Verwendete Eingangsdaten
merged_prs276
open_issues29
closed_issues55
issue_closed_ratio0,655
closed_unmerged_prs52
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
22.3/25Reichweite des Inhabers — 1.251 Follower von servo
25/25Kontohistorie — 193 öffentliche Repos, Kontoalter ca. 13 Jahre
Verwendete Eingangsdaten
followers1.251
owner_typeOrganization
is_verified
owner_loginservo
public_repos193
account_age_days5.031

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 8 Paket(e) auf crates
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 23 Tagen
20/20Versionshistorie — 61 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesstylo, to_shmem, selectors, servo_arc, stylo_dom, stylo_atoms, stylo_derive, stylo_traits
ecosystemscrates
any_deprecatednein
min_days_since_publish23

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

46Gefährdet · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 3 Workflow(s)
0/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 11 out of 11 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsnein
has_editorconfignein
has_linter_confignein
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

48Gefährdet · 16 % des Gesamtindex

Sicherheitslage

48Gefährdet
Wie die Bewertung erfolgt
6/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — keine Daten
2.5/2.5CI-Tests — 11 out of 11 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
4.5/7.5Code-Review — Found 18/30 approved changesets -- score normalized to 6
2.5/2.5Contributors — project has 46 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Lizenz — license file not detected
7.5/7.5Maintained — 30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate4,8
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

47Gefährdet · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 87 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,87
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — Cargo.toml, malloc_size_of/Cargo.toml, selectors/Cargo.toml (Toolchain-Konvention, kein Task-Runner)
0/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — Rust (statisch typisiert)
10/10Reproduzierbare Umgebung — Nix
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixja
has_testsnein
lockfiles
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0
toolchain_manifestsCargo.toml, malloc_size_of/Cargo.toml, selectors/Cargo.toml, servo_arc/Cargo.toml, style/Cargo.toml, style_derive/Cargo.toml, style_traits/Cargo.toml, stylo_atoms/Cargo.toml, stylo_dom/Cargo.toml, stylo_static_prefs/Cargo.toml, to_shmem/Cargo.toml, to_shmem_derive/Cargo.toml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Rust (statisch typisiert)
52.1/55Handhabbare Dateigrößen — 18/347 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageRust
largest_source_bytes187.207
source_files_sampled347
oversized_source_files18

Eckdaten

304GitHub-Sterne
100Mitwirkende
1.063Commits, letzte 12 Monate
0Tage seit letztem Push
18Releases
8Bus-Faktor
29offene Issues
crates.ioPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • No resolved dependencies carried a version and a supported ecosystem

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 94 ⇿
0Sterne
94Forks
18Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

0204060801009232024-032025-052026-07
Major 0Minor 18Patch 0

Jeder Punkt umfasst 3 Tage.

OpenSSF Scorecard 4.8 / 10
4.8Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-26 16:37 UTC

8Binary-Artifactsbinaries present in source code
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests11 out of 11 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
6Code-ReviewFound 18/30 approved changesets -- score normalized to 6
10Contributorsproject has 46 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
10Maintained30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 105
RegistryPaketVersionsvorgabeManifest
crates.ioapp_units0.7malloc_size_of/Cargo.toml
crates.iocssparser0.37malloc_size_of/Cargo.toml
crates.ioeuclid0.22malloc_size_of/Cargo.toml
crates.ioselectorsmalloc_size_of/Cargo.toml
crates.ioservo_arcmalloc_size_of/Cargo.toml
crates.iosmallbitvec2.3.0malloc_size_of/Cargo.toml
crates.iosmallvec1.13malloc_size_of/Cargo.toml
crates.iostring_cache0.9malloc_size_of/Cargo.toml
crates.iothin-vec0.2.13malloc_size_of/Cargo.toml
crates.iovoid1.0.2malloc_size_of/Cargo.toml
crates.iobitflags2selectors/Cargo.toml
crates.iocssparser0.37selectors/Cargo.toml
crates.ioderive_more2selectors/Cargo.toml
crates.iorustc-hash2.1.1selectors/Cargo.toml
crates.iolog0.4selectors/Cargo.toml
crates.iophf0.13selectors/Cargo.toml
crates.ioprecomputed-hash0.1selectors/Cargo.toml
crates.ioservo_arcselectors/Cargo.toml
crates.iosmallvec1.0selectors/Cargo.toml
crates.ioto_shmemselectors/Cargo.toml
crates.ioto_shmem_deriveselectors/Cargo.toml
crates.ionew_debug_unreachable1selectors/Cargo.toml
crates.ioserde1.0servo_arc/Cargo.toml
crates.iostable_deref_trait1.0.0servo_arc/Cargo.toml
crates.ioapp_units0.7.8style/Cargo.toml
crates.ioarrayvec0.7style/Cargo.toml
crates.ioatomic_refcell0.1style/Cargo.toml
crates.iobitflags2style/Cargo.toml
crates.iobyteorder1.0style/Cargo.toml
crates.iocssparser0.37style/Cargo.toml
crates.ioderive_more2style/Cargo.toml
crates.iodomstyle/Cargo.toml
crates.ionew_debug_unreachable1.0style/Cargo.toml
crates.ioencoding_rs0.8style/Cargo.toml
crates.ioeuclid0.22style/Cargo.toml
crates.iorustc-hash2.1.1style/Cargo.toml
crates.ioicu_segmenter>= 1.5, <= 2.*style/Cargo.toml
crates.ioindexmap2style/Cargo.toml
crates.ioitertools0.14style/Cargo.toml
crates.ioitoa1.0style/Cargo.toml
crates.iolog0.4style/Cargo.toml
crates.iomalloc_size_ofstyle/Cargo.toml
crates.iomalloc_size_of_derive0.1style/Cargo.toml
crates.ioweb_atoms0.2.0style/Cargo.toml
crates.iomime0.3.13style/Cargo.toml
crates.ionum_cpus1.1.0style/Cargo.toml
crates.ionum-integer0.1style/Cargo.toml
crates.ionum-traits0.2style/Cargo.toml
crates.ionum-derive0.4style/Cargo.toml
crates.ioparking_lot0.12style/Cargo.toml
crates.ioprecomputed-hash0.1.1style/Cargo.toml
crates.iorayon1style/Cargo.toml
crates.iorayon-core1style/Cargo.toml
crates.ioselectorsstyle/Cargo.toml
crates.ioserde1.0style/Cargo.toml
crates.ioservo_arcstyle/Cargo.toml
crates.iostylo_atomsstyle/Cargo.toml
crates.iosmallbitvec2.3.0style/Cargo.toml
crates.iosmallvec1.0style/Cargo.toml
crates.iostatic_assertions1.1style/Cargo.toml
crates.iostatic_prefsstyle/Cargo.toml
crates.iostring_cache0.9style/Cargo.toml
crates.iostrum0.28style/Cargo.toml
crates.iostrum_macros0.28style/Cargo.toml
crates.iostyle_derivestyle/Cargo.toml
crates.iostyle_traitsstyle/Cargo.toml
crates.ioto_shmemstyle/Cargo.toml
crates.ioto_shmem_derivestyle/Cargo.toml
crates.iothin-vec0.2.1style/Cargo.toml
crates.iouluru3.0style/Cargo.toml
crates.iovoid1.0.2style/Cargo.toml
crates.iourl2.5style/Cargo.toml
crates.iodarling0.20style_derive/Cargo.toml
crates.ioproc-macro21style_derive/Cargo.toml
crates.ioquote1style_derive/Cargo.toml
crates.iosyn2style_derive/Cargo.toml
crates.iosynstructure0.13style_derive/Cargo.toml
crates.ioapp_units0.7style_traits/Cargo.toml
crates.iobitflags2style_traits/Cargo.toml
crates.iocssparser0.37style_traits/Cargo.toml
crates.ioeuclid0.22style_traits/Cargo.toml
crates.iomalloc_size_ofstyle_traits/Cargo.toml
crates.iomalloc_size_of_derive0.1style_traits/Cargo.toml
crates.ioselectorsstyle_traits/Cargo.toml
crates.ioserde1.0style_traits/Cargo.toml
crates.ioservo_arcstyle_traits/Cargo.toml
crates.iostylo_atomsstyle_traits/Cargo.toml
crates.iothin-vec0.2style_traits/Cargo.toml
crates.ioto_shmemstyle_traits/Cargo.toml
crates.ioto_shmem_derivestyle_traits/Cargo.toml
crates.iourl2.5style_traits/Cargo.toml
crates.iostring_cache0.9stylo_atoms/Cargo.toml
crates.iobitflags2stylo_dom/Cargo.toml
crates.iomalloc_size_ofstylo_dom/Cargo.toml
crates.iocssparser0.37to_shmem/Cargo.toml
crates.ioservo_arcto_shmem/Cargo.toml
crates.iosmallbitvec2.3.0to_shmem/Cargo.toml
crates.iosmallvec1.13to_shmem/Cargo.toml
crates.iostring_cache0.9to_shmem/Cargo.toml
crates.iothin-vec0.2.1to_shmem/Cargo.toml
crates.iodarling0.20to_shmem_derive/Cargo.toml
crates.ioproc-macro21to_shmem_derive/Cargo.toml
crates.ioquote1to_shmem_derive/Cargo.toml
crates.iosyn2to_shmem_derive/Cargo.toml
crates.iosynstructure0.13to_shmem_derive/Cargo.toml
Alle Abhängigkeiten 52

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 45 direkte und 7 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
crates.ioapp_unitsdirekt
crates.ioarrayvecdirekt
crates.ioatomic_refcelldirekt
crates.iobitflagsdirekt
crates.iobyteorderdirekt
crates.iocssparserdirekt
crates.iodarlingdirekt
crates.ioderive_moredirekt
crates.ioencoding_rsdirekt
crates.ioeucliddirekt
crates.ioicu_segmenterdirekt
crates.ioindexmapdirekt
crates.ioitertoolsdirekt
crates.ioitoadirekt
crates.iologdirekt
crates.iomalloc_size_of_derivedirekt
crates.iomimedirekt
crates.ionew_debug_unreachabledirekt
crates.ionum-derivedirekt
crates.ionum-integerdirekt
crates.ionum-traitsdirekt
crates.ionum_cpusdirekt
crates.ioparking_lotdirekt
crates.iophfdirekt
crates.ioprecomputed-hashdirekt
crates.ioproc-macro2direkt
crates.ioquotedirekt
crates.iorayondirekt
crates.iorayon-coredirekt
crates.iorustc-hashdirekt
crates.ioserdedirekt
crates.iosmallbitvecdirekt
crates.iosmallvecdirekt
crates.iostable_deref_traitdirekt
crates.iostatic_assertionsdirekt
crates.iostring_cachedirekt
crates.iostrumdirekt
crates.iostrum_macrosdirekt
crates.iosyndirekt
crates.iosynstructuredirekt
crates.iothin-vecdirekt
crates.ioulurudirekt
crates.iourldirekt
crates.iovoiddirekt
crates.ioweb_atomsdirekt
crates.iobindgenindirekt
crates.iomozbuildindirekt
crates.iophf_codegenindirekt
crates.ioregexindirekt
crates.iostring_cache_codegenindirekt
crates.iotomlindirekt
crates.iowalkdirindirekt
Abhängigkeits-Advisories nicht bewertet

Der Advisory-Abgleich konnte für diesen Bericht nicht ausgeführt werden: No resolved dependencies carried a version and a supported ecosystem

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 42994,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Nix": 201,
        "Mako": 1006,
        "Rust": 5316501,
        "Shell": 2707,
        "Python": 79464
      },
      "pushed_at": "2026-07-26T13:44:40Z",
      "created_at": "2024-02-07T05:11:50Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-23T20:50:11Z",
      "description": "CSS engine that powers Servo and Firefox",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "Rust",
      "significant_languages": [
        "Rust"
      ]
    },
    "owner": {
      "blog": "https://servo.org",
      "name": "Servo",
      "type": "Organization",
      "login": "servo",
      "company": null,
      "location": null,
      "followers": 1251,
      "avatar_url": "https://avatars.githubusercontent.com/u/2566135?v=4",
      "created_at": "2012-10-15T17:38:39Z",
      "is_verified": null,
      "public_repos": 193,
      "account_age_days": 5031
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2026-07-01T12:43:26Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2026-06-03T09:31:31Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2026-05-05T01:05:54Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2026-04-03T06:22:33Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2026-04-01T18:32:28Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-03-19T13:57:45Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-03-06T23:06:39Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-02-09T12:19:26Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-01-15T10:55:38Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-01-06T19:51:40Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2025-11-12T15:18:55Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2025-10-04T12:39:11Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2025-09-04T20:50:25Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2025-08-02T21:20:45Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2025-07-02T16:06:58Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2025-06-19T12:08:04Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2025-05-05T14:35:47Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2025-03-31T12:15:29Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2d289c14fdf46952d52cabce63b1f0dc55b2ccde",
          "body": "… Blitz (#426)\n\nEnables `text-decoration-thickness`, `text-decoration-inset`,\n`text-underline-offset`, and `text-underline-position` for Servo builds\nof Stylo, behind the `layout.unimplemented` feature flag.\n\nThe shorthand `text-decoration` is updated to account for\n`text-decoration-thickness` being enabled (this aligns Servo's\nimplementation with Gecko's for this property).\n\nServo PR:\n\n- https://github.com/servo/servo/pull/46592\n\n---------\n\nSigned-off-by: Nico Burns <nico@nicoburns.com>",
          "is_bot": false,
          "headline": "Enable text-decoration-thickness; more text decoration properties for…",
          "author_name": "Nico Burns",
          "author_login": "nicoburns",
          "committed_at": "2026-07-23T20:47:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c757e5c0b851f8d6aabd5c68e5d167962a9c815",
          "body": "…` if delay changes (#422)\n\nIf the delay in an animation changes, we still might need to update the\n`Paused` state if the animation is moving from `Playing` to `Paused`.\n\nServo PR: servo/servo#46689\n\nSigned-off-by: Martin Robinson <mrobinson@igalia.com>",
          "is_bot": false,
          "headline": "Also update `AnimationState::Paused` in `Animation::update_from_other…",
          "author_name": "Martin Robinson",
          "author_login": "mrobinson",
          "committed_at": "2026-07-22T20:24:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "394aea737f0c9f85ee442898c29053de8abf68d8",
          "body": "Oddly enough the longhand itself was already enabled. Its not yet\nsupported in servo though.\n\nServo PR: https://github.com/servo/servo/pull/46618\n\nSigned-off-by: Simon Wülker <simon.wuelker@arcor.de>",
          "is_bot": false,
          "headline": "Enable font-language-override for servo (#429)",
          "author_name": "Simon Wülker",
          "author_login": "simonwuelker",
          "committed_at": "2026-07-19T15:11:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3de91cbac7bba38e159239b3c0a360783fce2ee",
          "body": "…o (#377)\n\nServo PR: https://github.com/servo/servo/pull/45308\n\n---------\n\nSigned-off-by: Simon Wülker <simon.wuelker@arcor.de>",
          "is_bot": false,
          "headline": "Support `font-variant-alternates` and `@font-feature-values` for serv…",
          "author_name": "Simon Wülker",
          "author_login": "simonwuelker",
          "committed_at": "2026-07-16T18:37:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5173fcd4455b99cc42777f81715a1bd68ed5b32c",
          "body": "Removes `engine = \"gecko\"` from 8 SVG-geometric properties to be enabled\nfor servo:\n\n- `x`\n- `y`\n- `cx`\n- `cy`\n- `rx`\n- `ry`\n- `r`\n- `d`\n\nServo [PR](https://github.com/servo/servo/pull/46558)\n\nSigned-off-by: Mohamed Mostafa <mu.mostafa98@gmail.com>",
          "is_bot": false,
          "headline": "Enable SVG geometric properties for Servo (#427)",
          "author_name": "Mohamed Mostafa",
          "author_login": "mu-mostafa98",
          "committed_at": "2026-07-16T11:55:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "219f722e8be7feceacd7a870e93b39f6c6d22b7c",
          "body": "Already landed upstream:\nhttps://phabricator.services.mozilla.com/D311004\n(71a8a43642f62f946fcd147e7ac01658e366113e)\n\nImporting it here early to prevent other PRs from adding new\nServo-specific derives due to copy-pasting.\n\nSigned-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Share Stylo's Servo-specific derives with Gecko (#423)",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-11T08:23:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "116ab95e7332c3d44f3d3f2e134f5c90909ff446",
          "body": "This is a partial revert of #340. Waiting for an available macOS runner\nfrequently takes very long, which makes it annoying when trying to land\nmultiple patches, since they need to also be coordinated with the\ncompanion patches in Servo.\n\nSo I think it's better to not wait for the macOS job after all. We will\nstill wait for the Linux and Windows ones.\n\nSigned-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Stop requiring CI jobs to pass on Mac (#424)",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-11T00:41:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a64923b5d5c67313c81c5056f5e30ec0babb04d6",
          "body": "Removes `engine = \"gecko\"` from 11 SVG-specific CSS properties to be\nenabled for servo:\n\n- **Fill (3):** `fill`, `fill-opacity`, `fill-rule`\n- **Stroke (8):** `stroke`, `stroke-width`, `stroke-linecap`,\n`stroke-linejoin`, `stroke-dasharray`, `stroke-dashoffset`,\n`stroke-miterlimit`, `stroke-opacity`\n[…]\n2) for the new\nfields.\n\nServo [PR](https://github.com/servo/servo/pull/45405)\n\n---------\n\nSigned-off-by: Mohamed Mostafa mu-mostafa98@gmail.com\nCo-authored-by: Mohamed Mostafa <mu-mostafa98@gmail.com>",
          "is_bot": false,
          "headline": "Enable basic SVG-related CSS properties for Servo (#383)",
          "author_name": "Mohamed Mostafa",
          "author_login": "mu-mostafa98",
          "committed_at": "2026-07-10T11:56:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f591fc2d6d6e5f1b1da510efcb38d6bfb22e9563",
          "body": "Corresponding servo PR is at https://github.com/servo/servo/pull/45492\n\nSigned-off-by: Psychpsyo (Cameron) <60073468+Psychpsyo@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Enable box-decoration-break for Servo (#386)",
          "author_name": "Psychpsyo (Cameron)",
          "author_login": "Psychpsyo",
          "committed_at": "2026-07-10T09:37:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e90bb16403de93f469ae71665e0f047ddb00f9ed",
          "body": "Servo PR: https://github.com/servo/servo/pull/46118\n\nSigned-off-by: Simon Wülker <simon.wuelker@arcor.de>",
          "is_bot": false,
          "headline": "style: Implement iterator over all known non-custom properties (#406)",
          "author_name": "Simon Wülker",
          "author_login": "simonwuelker",
          "committed_at": "2026-07-08T10:19:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0151ab3bf0183dd2f802d32e4f7fb2140ccb3475",
          "body": "A couple more keyword/bitflag properties that I'm implementing in Blitz,\nand would like to enable behind the `layout.unimplemented` pref.\n\nSigned-off-by: Nico Burns <nico@nicoburns.com>",
          "is_bot": false,
          "headline": "Enable `scroll-behavior` and `overscroll-behavior` properties (#420)",
          "author_name": "Nico Burns",
          "author_login": "nicoburns",
          "committed_at": "2026-07-08T08:39:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0381f1838deeee0b0b7ad6b7f45cd1c2536c473",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D308885",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T19:09:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14e1a7972ecf6180b2a686d65b811509f89a4da1",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D308495",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T19:09:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acc35ea89ccfd8147b7f7bb87d5e689b2912246e",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D308250",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d646106e3ef21ab62cb6af2d14dbb3cff58b5571",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D306324",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d957b9281018113774dc883ab62265ba55221ac7",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D305186",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04ccd589ae351f38152225df9282f1e9136eed47",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D306635",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62a5138f68b6c45aa3bd63c19d8f7345520ebe98",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D302020",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23d00e56c01b7c2cb98c01914f55a4fb1ad5001d",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D304960",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd33772dbc0ff7ebe521241fd2c166405f477f5b",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D302701",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2872fb8b6a1faef1eb2ea6e62b134cfb50c0a067",
          "body": "Signed-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Fixup for https://phabricator.services.mozilla.com/D287695",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-07T00:08:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "929ddefe0ecf06a6f9efdf92f2d01d0a293f06e7",
          "body": "This is a rebase of 5685b276c8f2a1a3cf57439d7d70d9c2e3f84f3f\n\nSigned-off-by: Oriol Brufau <obrufau@igalia.com>",
          "is_bot": false,
          "headline": "Commit our changes on top of upstream Stylo",
          "author_name": "Delan Azabani",
          "author_login": "delan",
          "committed_at": "2026-07-07T00:08:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b328f200d5a3b6d48af022c50bc2954fe095b5ef",
          "body": "Any ancestors of this commit are from upstream mozilla-central, with\nsome filtering and renaming. Our patches and sync tooling start here.\n\nThe sync tooling has all been squashed into this commit, based on:\nhttps://github.com/servo/stylo/commits/64731e10dc8ef87ef52aa2fb9f988c3b2530f3a7",
          "is_bot": false,
          "headline": "Servo initial downstream commit",
          "author_name": "Delan Azabani",
          "author_login": "delan",
          "committed_at": "2026-07-01T23:39:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6958c7c5504493c4d0c858b137c80183dd7fa86",
          "body": "…-system-reviewers,dshin\n\nImplement the \"multiply two types\" algorithm.\n\nThis will be used by CSSNumericValue.type() and also allows the CSSMathProduct\nconstructor to validate the types of its values as the first consumer of this\nnew functionality.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309307",
          "is_bot": false,
          "headline": "Bug 2051216 - Implement multiplying two NumericTypes; r=firefox-style…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-07-01T11:20:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "449644a6f97cefa5ce193133ebf466ab3a2e949c",
          "body": "…158. r=firefox-style-system-reviewers,emilio\n\nThe logic in cascade.rs assumes the presence of various properties that\nwere only compiled for Gecko. So compile them also for Servo, disabled\nbehind a runtime flag.\nThis allows removing a few `#[cfg(feature = \"gecko\")]`.\nOn the other hand, various `#[cfg(feature = \"gecko\")]` have to be added.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309737",
          "is_bot": false,
          "headline": "Bug 2051770 - Let Stylo compile for Servo after the changes from D308…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-07-01T10:15:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50ae4a76250e160c8e1b4de06496bc88e1effcc1",
          "body": "…system-reviewers,emilio\n\nExcept for `get_attr()`, all methods have a definition that just needs\n`TElement`, nothing else is Gecko-specific.\n\nSo add a `get_attr()` into `TElement` with different definitions for\nGecko and Servo, and also add `get_tree_counting_result()` with a shared\ndefault implemen\n[…]\nation.\n\nThen the implementation of `ElementContext` for objects that also\nimplement `TElement` can just redirect to `TElement`.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309633",
          "is_bot": false,
          "headline": "Bug 2051667 - Share ElementContext logic with Servo. r=firefox-style-…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-06-30T20:24:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d84dd982fc40b5cc500f703306e5880bc018e26a",
          "body": "The test is rather tricky but I think fair enough.\n\nI wanted to make the \"decoding\" attribute map to this property, but we'd\nstill need the existing machinery for the src-animation stuff:\n\nhttps://searchfox.org/firefox-main/rev/6a252a86c5bb0fdd7a197d1c244f8a28e0827b3a/dom/base/nsImageLoadingContent.cpp#613-624\n\nSo for now left as is. I removed some redundant flag checks that are\nincluded already by the DL builder stuff.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309119",
          "is_bot": false,
          "headline": "Bug 2050819 - -moz-image-decoding property. r=tnikkel,layout-reviewers",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-30T17:46:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7e7a42a4bbbcae53188327701483701bb0e6b79",
          "body": "…rse(); r=emilio,firefox-style-system-reviewers\n\nExtend CSSNumericValue.parse() to support simple numbers, percentages, angles,\nand times in addition to the already-supported length values.\n\nAlso parse the whole input so strings with trailing tokens are rejected, and\nupdate WPT expectations for tests that now pass with the additional numeric\nvalue support.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309251",
          "is_bot": false,
          "headline": "Bug 2051120 - Support additional numeric values in CSSNumericValue.pa…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-30T11:03:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e35bb42a670923e032dbab9b735410338f455f98",
          "body": "…rts of Stylo shared with Servo. r=firefox-style-system-reviewers,dshin\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309431",
          "is_bot": false,
          "headline": "Bug 2051394 - Don't use Gecko-specific code for link parameters in pa…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-06-29T23:02:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d661814f1d81c966272a6f667f3c824e0e53e102",
          "body": "…rs,firefox-style-system-reviewers,firefox-svg-reviewers,dshin\n\nIt's unnecessary since bug 2031757.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309401",
          "is_bot": false,
          "headline": "Bug 2051345 - Remove line-height: -moz-block-height. r=layout-reviewe…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-29T17:11:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb5f9a40b914bfa66169e0682a753699b9fcb6b0",
          "body": "… r=emilio,firefox-style-system-reviewers\n\nAdd an unchecked MathSum constructor for sequences of numeric values whose\ntypes have already been validated as addable.\n\nUse it in `SumValue::to_units`, which is now guaranteed to be called only with\naddable units.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309022",
          "is_bot": false,
          "headline": "Bug 2046802 - Add unchecked MathSum constructor for validated values;…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-27T11:45:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab9a7649c7512128b0c5a93935bff36d8fd80043",
          "body": "…firefox-style-system-reviewers,layout-reviewers,emilio\n\nWe add an extra preference,\nlayout.css.text-decoration-inset-percentage.enabled, for the support of\npercentage. This patch only implements the syntax and parsing. We still\nhave to resolve the percentage part in the following patches.\n\nAlso, add the missing parsing tests in WPT.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308885",
          "is_bot": false,
          "headline": "Bug 2044602 - Parse <lenght-percentage> for text-decoration-inset. r=…",
          "author_name": "Boris Chiou",
          "author_login": "BorisChiou",
          "committed_at": "2026-06-27T00:11:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f33a69143ecf705f92a4ae7aa799773bd82256c",
          "body": "…tem-reviewers,emilio\n\nSigned-off-by: Oriol Brufau <obrufau@igalia.com>\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309031",
          "is_bot": false,
          "headline": "Bug 2050808 - Use property-counts in more places. r=firefox-style-sys…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-06-26T21:28:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1844beaf91f18f31dae3985aedd984f66ebe0e0",
          "body": "…system-reviewers\n\nMake `MathSum` a struct again and add a `NumericType` field, populating it when\nconstructing math sums.\n\nThis preserves the numeric type alongside the list of numeric values so\n`CSSNumericValue.type()` can report the expected type for reified `CSSMathSum`\nobjects.\n\nWPT coverage is added in a follow-up patch to avoid introducing many temporary\ntest failures.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309019",
          "is_bot": false,
          "headline": "Bug 2046802 - Store numeric types in MathSum; r=emilio,firefox-style-…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-26T15:50:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9950fbfa6722701259b354f55cb0cb8aeac7bc5f",
          "body": "Apply cargo fmt to existing code to reduce unrelated formatting changes in\nfollow-up patches.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D309018",
          "is_bot": false,
          "headline": "Bug 2046802 - Apply cargo fmt; r=emilio,firefox-style-system-reviewers",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-26T11:01:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94b41d548b424e4a76331616ae1db702b77890da",
          "body": "…smatches. r=firefox-style-system-reviewers,emilio\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308700",
          "is_bot": false,
          "headline": "Bug 2050171 - Return 1 for sibling-index/sibling-count tree-scoped mi…",
          "author_name": "Sajid Anwar",
          "author_login": "kbhomes",
          "committed_at": "2026-06-25T12:30:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f5bdfdb802a42b76a9a7a46172c0c744331b0d38",
          "body": "…rioritary properties. r=firefox-style-system-reviewers,dshin\n\nStore the dependencies between them in a PrioritaryPropertyIdSet (a u32,\neffectively), and document them better / reduce them as well.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308517",
          "is_bot": false,
          "headline": "Bug 2050047 - Improve the representation of the dependency graph of p…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T13:33:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bddd9a3965a850162443cb311ff92c4a7e1f003",
          "body": "…x-style-system-reviewers,dshin\n\nI wanted to reuse some of the iteration stuff without re-writing it.\n\nRust's const support is not amazing, otherwise could be even\nneater... But I think this is good enough.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308516",
          "is_bot": false,
          "headline": "Bug 2050047 - Generalize LonghandIdSet into a generic IdSet. r=firefo…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T13:33:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d07aa3592d065b509a63b969221ff1adc8f5a9c1",
          "body": "…yle-system-reviewers,dshin\n\nSome of the complexity in this code seems kind of gratuitious. We no\nlonger are avoiding the VarInfo clone (since we introduced the NonCustom\nstuff), so simplify this a little bit.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308497",
          "is_bot": false,
          "headline": "Bug 2050047 - Make loop handling easier to reason about. r=firefox-st…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T13:33:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "decb5be6fbbc5d21a055dabec78d1cd97aa007e6",
          "body": "…rebase / review comment fix-up.\n\nIt got caught by the \"Should've been handled earlier\" debug assertions.",
          "is_bot": false,
          "headline": "Bug 2021155 - Restore fast path that accidentally got removed during …",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T12:24:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d0097cde41ea128f319977767de81a1930a38c9",
          "body": "…ont-face. r=firefox-style-system-reviewers,emilio\n\n- Renames `font_face::FontStyle` to `FontStyleRange`, for consistency\n  with `FontWeightRange` and `FontStretchRange`, and to disambiguate it\n  from `values::computed::font::FontStyle`.\n- Renames `ComputedFontStyleDescriptor` to `ComputedFontStyleR\n[…]\nm `FontStyleRange::compute()`, but it's no longer necessary,\n  since `FontStyle::oblique()` already clamps the angle as needed.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308495",
          "is_bot": false,
          "headline": "Bug 2050001 - Simplify logic for computed font-style descriptor of @f…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-06-24T11:35:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b5734d3c257a4ece80e57270dc0583862304aee8",
          "body": "…tution. r=firefox-style-system-reviewers,dshin\n\nWe don't need to do this anymore. Also avoid some registration lookups.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308238",
          "is_bot": false,
          "headline": "Bug 2021155 - Don't move around the custom property map during substi…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T11:33:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a0590d10dc3711f37a662cdc746e0f2bae8ade5",
          "body": "…ox-style-system-reviewers,dshin\n\nThis reuses some storage during property substitution. It still isn't a\nmerge between cycle detection and substitution but it addresses some of\nthe performance regressions seen from the previous patch and is fairly\nstraight-forward.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308225",
          "is_bot": false,
          "headline": "Bug 2021155 - Save some work in custom property substitution. r=firef…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T11:33:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ab9c6f5422da9f74711eca3d85041ebcc58288e",
          "body": "…rties. r=dshin,firefox-style-system-reviewers\n\nThis removes CustomPropertiesBuilder and moves custom property handling\ndirectly to cascade, so that we can deal with the interactions between\ncustom properties and non-custom properties in one place.\n\nThe keyframe stuff is still kinda gross (ugh, Anim\n[…]\n't).\n\n * It uses a SmallVec<&Atom> for cycles because that's generally pretty\n   cheap and it grows with custom property depth.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308158",
          "is_bot": false,
          "headline": "Bug 2021155 - Introduce a more proper property graph for custom prope…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-24T11:33:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c045d30e75119b1e79bc43e3be453f3d406ff18",
          "body": "…nt when appearance:base r=firefox-style-system-reviewers,emilio\" for causing failures at contain-size-select-elem-003.html.\n\nThis reverts commit 7fd8b2d4bd0d08fa1924920da941ff74dbc7c2f4.",
          "is_bot": false,
          "headline": "Revert \"Bug 2044275 - Wire up ::picker, showing instead of SelectPare…",
          "author_name": "Atila Butkovits",
          "author_login": null,
          "committed_at": "2026-06-24T10:54:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7fd8b2d4bd0d08fa1924920da941ff74dbc7c2f4",
          "body": "…appearance:base r=firefox-style-system-reviewers,emilio\n\nThis implements the styles & machinery for ::picker to be shown as a\nanchor-pos popover, instead of the SelectParent - when in appearance base.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305622",
          "is_bot": false,
          "headline": "Bug 2044275 - Wire up ::picker, showing instead of SelectParent when …",
          "author_name": "Keith Cirkel",
          "author_login": "keithamus",
          "committed_at": "2026-06-24T09:30:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4d6cf70caf3734cdfbe1585d6b020faa73e4fe5",
          "body": "…r text-decoration-inset. r=firefox-style-system-reviewers,layout-reviewers,dshin\n\nDifferential Revision: https://phabricator.services.mozilla.com/D308250",
          "is_bot": false,
          "headline": "Bug 1997043 - Enable animating between 'auto' and explicit lengths fo…",
          "author_name": "Jonathan Kew",
          "author_login": "jfkthame",
          "committed_at": "2026-06-23T13:26:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79af21c3f8589a07816242fe81a68a87e55c76d8",
          "body": "…nt when appearance:base r=firefox-style-system-reviewers,emilio\" for causing wpt failures at accessibility-minimum-target-size.html\n\nThis reverts commit 3796944a181dfe299eabd8be1002d396effd77d9.",
          "is_bot": false,
          "headline": "Revert \"Bug 2044275 - Wire up ::picker, showing instead of SelectPare…",
          "author_name": "Silaghi",
          "author_login": null,
          "committed_at": "2026-06-23T10:11:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd18fa8095838525b01ec20e921c0b0cf55a666f",
          "body": "…ween color spaces. r=layout-reviewers,firefox-style-system-reviewers,emilio,nchevobbe\n\nPer spec, missing components used directly should be treated as 0. We\nalready keep track of none components during mixing using the flags,\nso NaN placeholders are not needed.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306997",
          "is_bot": false,
          "headline": "Bug 2045815 - Treat missing color components as 0 when converting bet…",
          "author_name": "Tiaan Louw",
          "author_login": "tiaanl",
          "committed_at": "2026-06-23T08:52:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3796944a181dfe299eabd8be1002d396effd77d9",
          "body": "…appearance:base r=firefox-style-system-reviewers,emilio\n\nThis implements the styles & machinery for ::picker to be shown as a\nanchor-pos popover, instead of the SelectParent - when in appearance base.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305622",
          "is_bot": false,
          "headline": "Bug 2044275 - Wire up ::picker, showing instead of SelectParent when …",
          "author_name": "Keith Cirkel",
          "author_login": "keithamus",
          "committed_at": "2026-06-23T08:37:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b4f6b7bb61cbd9e47f947c7231d13b29c2d2b28",
          "body": "…x-style-system-reviewers,emilio,dshin\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306324",
          "is_bot": false,
          "headline": "Bug 2047015 - Implement CSS progress() function behind pref. r=firefo…",
          "author_name": "Sajid Anwar",
          "author_login": "kbhomes",
          "committed_at": "2026-06-22T14:55:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "102d587b935e6fc17fc56f306d7c3a9aec757835",
          "body": "…ax. r=layout-reviewers,firefox-style-system-reviewers,dshin\n\nUse the modern `color(srgb ...)` storage path when any component is\n`none`, since legacy sRGB cannot represent `none` anyway.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307020",
          "is_bot": false,
          "headline": "Bug 1901991 - Preserve `none` components when parsing modern rgb synt…",
          "author_name": "Tiaan Louw",
          "author_login": "tiaanl",
          "committed_at": "2026-06-22T12:05:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3fc15a6d6585356defcd6373cfe46bbb6567af1",
          "body": "…ior with large arrays. r=firefox-style-system-reviewers,emilio\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307914",
          "is_bot": false,
          "headline": "Bug 2040731 - Optimize dedup_font_settings() to avoid quadratic behav…",
          "author_name": "Jonathan Kew",
          "author_login": "jfkthame",
          "committed_at": "2026-06-21T12:59:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52c120a20b1599fd092f69fd751111aa12e99853",
          "body": "…ection. r=dshin,sukil,firefox-style-system-reviewers\n\nThis fixes attr-cycle failures with my patch for bug 2048926.\n\nThere are two tweaks:\n\n * Change update_attributes_map to not look at type-less attributes\n   eagerly, since they don't introduce extra references.\n\n * Change the cycle code to look \n[…]\nituted.\n\nAdd a test that fails without this change even without that patch\n(basically the same but with the variables swapped).\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307865",
          "is_bot": false,
          "headline": "Bug 2049009 - Fix hash iteration order dependency in attr() cycle det…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-19T21:37:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6fff926a7967d28a1b59777fe17790b8b28ea997",
          "body": "…FixedPoint instead of f32. r=firefox-style-system-reviewers,emilio\n\nf32 prevents Servo from deriving Hash, and it ended up being converted anyway.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307743",
          "is_bot": false,
          "headline": "Bug 2048889 - Change ComputedFontStyleDescriptor to contain FontStyle…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-06-19T14:11:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08f1a1b064d4bbd6e1d082d84d312a4bf38ed099",
          "body": "…stead of f32. r=firefox-style-system-reviewers,dshin\n\nIt's simpler this way, and will allow Servo to derive Hash.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307599",
          "is_bot": false,
          "headline": "Bug 2048690 - Change ComputedFontWeightRange to contain FontWeight in…",
          "author_name": "Oriol Brufau",
          "author_login": "Loirooriol",
          "committed_at": "2026-06-18T18:13:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f05cb187c22395ba8b6e6928fa45a23486f7b3e8",
          "body": "…llipse() behind a nightly-only. r=Oriol,firefox-style-system-reviewers\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305186",
          "is_bot": false,
          "headline": "Bug 2045278 - Put farthest-corner and closest-corner parameters for e…",
          "author_name": "Diego Escalante",
          "author_login": "dcrescalante",
          "committed_at": "2026-06-18T18:07:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "373a4a9feeabe13b320553560d3182284d5fbdb9",
          "body": "… r=firefox-style-system-reviewers,dshin\n\nWe need to compute lengths / sibling-index() / origin colors, even if we\ndon't end up being able to turn the color into absolute, and preserve\nthat result if so.\n\nThe diff looks big but it's mostly moving code around.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307451",
          "is_bot": false,
          "headline": "Bug 1985452 - Split color computation from relative color resolution.…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-18T14:28:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1a42c945904165122e4a74edc4054a89b601f75",
          "body": "…dom\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\n\nWe do this by reducing precision proportionately to the value, rather than simply\nrounding to a certain number of decimals or similar, so that small sizes maintai\n[…]\n added, based on the\ntestcase in the report.\n\n(A few existing tests get minor adjustments to allow for the modified precision.)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306131",
          "is_bot": false,
          "headline": "Bug 2042294 - Quantize font-size at computed-value time, so that \"ran…",
          "author_name": "Jonathan Kew",
          "author_login": "jfkthame",
          "committed_at": "2026-06-18T12:59:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f46ce138de16c0401523a2fba075501402f9cfd2",
          "body": "…hat \"random\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\" for causing wr failures at rule_cache.rs\n\nThis reverts commit e3087c7f29b2329989d439b734fbc2a83c75b05d.",
          "is_bot": false,
          "headline": "Revert \"Bug 2042294 - Quantize font-size at computed-value time, so t…",
          "author_name": "rperta",
          "author_login": "rperta",
          "committed_at": "2026-06-18T11:03:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3087c7f29b2329989d439b734fbc2a83c75b05d",
          "body": "…dom\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\n\nWe do this by reducing precision proportionately to the value, rather than simply\nrounding to a certain number of decimals or similar, so that small sizes maintai\n[…]\n added, based on the\ntestcase in the report.\n\n(A few existing tests get minor adjustments to allow for the modified precision.)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306131",
          "is_bot": false,
          "headline": "Bug 2042294 - Quantize font-size at computed-value time, so that \"ran…",
          "author_name": "Jonathan Kew",
          "author_login": "jfkthame",
          "committed_at": "2026-06-18T10:36:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2286d9578bf13a402af2066dd6f562b2ba9cafc4",
          "body": "…tyle-system-reviewers\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306457",
          "is_bot": false,
          "headline": "Bug 2047198 - Make attr deferring less aggressive. r=emilio,firefox-s…",
          "author_name": "Swarup Ukil",
          "author_login": null,
          "committed_at": "2026-06-18T02:24:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59fbe024ca647c346ae234e4ee390dec344335e4",
          "body": "Differential Revision: https://phabricator.services.mozilla.com/D307310",
          "is_bot": false,
          "headline": "Bug 2048174 - Fix alpha serialization of relative colors. r=sajidanwar",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-17T21:56:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3974492d792d2d050c94762b8ac97e88c240c69",
          "body": "…nt when appearance:base r=firefox-style-system-reviewers,emilio\" for causin wr test failures at /css/css-contain/contain-size-select-elem-003.html\n\nThis reverts commit 3080c3904536b760cb0355e960df56b5431785a7.",
          "is_bot": false,
          "headline": "Revert \"Bug 2044275 - Wire up ::picker, showing instead of SelectPare…",
          "author_name": "Silaghi",
          "author_login": null,
          "committed_at": "2026-06-17T19:38:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3080c3904536b760cb0355e960df56b5431785a7",
          "body": "…appearance:base r=firefox-style-system-reviewers,emilio\n\nThis implements the styles & machinery for ::picker to be shown as a\nanchor-pos popover, instead of the SelectParent - when in appearance base.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305622",
          "is_bot": false,
          "headline": "Bug 2044275 - Wire up ::picker, showing instead of SelectParent when …",
          "author_name": "Keith Cirkel",
          "author_login": "keithamus",
          "committed_at": "2026-06-17T18:03:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9efbbe9a062294cd3401b93bfeddaa0d0ae3d6d0",
          "body": "…hat \"random\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\" for causing wr failures @rule_cache.rs.\n\nThis reverts commit b9ec8814664f0524530b13796b69b960c9bf5992.",
          "is_bot": false,
          "headline": "Revert \"Bug 2042294 - Quantize font-size at computed-value time, so t…",
          "author_name": "agoloman",
          "author_login": "agoloman",
          "committed_at": "2026-06-17T16:06:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59d7e5a81250f099e5e26791c4c1b2eb299949b8",
          "body": null,
          "is_bot": false,
          "headline": "Bug 2048212 - remove file-whitespace.",
          "author_name": "agoloman",
          "author_login": "agoloman",
          "committed_at": "2026-06-17T15:47:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38f691e97992477a3e28dc0103b4fad3bcc1ff67",
          "body": "…style-system-reviewers,dshin\n\nAnd use them for SimpleFilter as well. Inspired by a claudometer patch.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307250",
          "is_bot": false,
          "headline": "Bug 2048212 - Include local names in subtree bloom filter. r=firefox-…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-17T15:38:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9ec8814664f0524530b13796b69b960c9bf5992",
          "body": "…dom\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\n\nWe do this by reducing precision proportionately to the value, rather than simply\nrounding to a certain number of decimals or similar, so that small sizes maintai\n[…]\n added, based on the\ntestcase in the report.\n\n(A few existing tests get minor adjustments to allow for the modified precision.)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306131",
          "is_bot": false,
          "headline": "Bug 2042294 - Quantize font-size at computed-value time, so that \"ran…",
          "author_name": "Jonathan Kew",
          "author_login": "jfkthame",
          "committed_at": "2026-06-17T14:54:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3a6b99d98aef92554c668bdc3a6b3ba62fb90e37",
          "body": "…le,arai,necko-reviewers,media-playback-reviewers,profiler-reviewers,alwu,canova,jesup,places-reviewers,Standard8\n\nHashing char by char is unnecessarily expensive, this hashes four bytes\nat a time for those.\n\nI did that rather than keeping size_t because HashBytes(uint64_t) ends\nup in two AddUint32T\n[…]\nd we rely on\nit matching:\n\n * HashUTF8AsUTF16()\n * JS atoms\n * xpcom atoms.\n\nUse constexpr to simplify the static atoms set up.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306312",
          "is_bot": false,
          "headline": "Bug 2046953 - Use HashBytes for hashing thin strings. r=sergesanspail…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-17T14:01:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d0d7e093011ad61c1e5980658e07a984d39ce563",
          "body": "…em-reviewers,dshin\n\nImplement the \"add two types\" algorithm, including the \"apply the percent hint\"\nalgorithm.\n\nThis will be used by CSSNumericValue.type() and also allows the CSSMathSum\nconstructor to validate the types of its values as the first consumer of this\nnew functionality.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306211",
          "is_bot": false,
          "headline": "Bug 2046802 - Implement adding two NumericTypes. r=firefox-style-syst…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-17T13:53:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96dd170a74da968b7a89a88e3202e2fdba156c9b",
          "body": "…m-reviewers,dshin\n\nAdd cached non-zero exponent counts and helper methods for reading, setting,\nand updating NumericType exponents.\n\nThese helpers are needed for implementing the \"add two types\" algorithm\nefficiently, and will also be useful for future numeric type matching checks\nsuch as \"A type matches <length>\".\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306209",
          "is_bot": false,
          "headline": "Bug 2046802 - Add NumericType exponent helpers. r=firefox-style-syste…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-17T13:53:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6da0348ac3fe40f25b34a2ef9afaec0a725edbd",
          "body": "They compute to a keyword. The spec is clear that the values should be\ncomputed, not resolved and currentColor computes to a keyword, see\nhttps://issues.chromium.org/issues/40137692 for the Chromium issue.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307058",
          "is_bot": false,
          "headline": "Bug 2047996 - Make computed currentcolor reify properly. r=janv",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-17T08:07:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a67401d2206fe757b60bfae8ebe1e10b3356e68",
          "body": "…nv\" for causing wpt failures in properties/logical.html\n\nThis reverts commit fa6f8cebce6e7ad445195829e686bf37bfab4a9b.",
          "is_bot": false,
          "headline": "Revert \"Bug 2047996 - Make computed currentcolor reify properly. r=ja…",
          "author_name": "Cristian Tuns",
          "author_login": null,
          "committed_at": "2026-06-17T01:17:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6b1b7cf58d16b1257ff6b556dd5063222b3493a",
          "body": "…ting between color spaces. r=layout-reviewers,firefox-style-system-reviewers,emilio\" for causing failures at test_color_to.html.\n\nThis reverts commit f413a6f06adc25c95b3f1f2169cb0172316b98dd.",
          "is_bot": false,
          "headline": "Revert \"Bug 2045815 - Treat missing color components as 0 when conver…",
          "author_name": "Atila Butkovits",
          "author_login": null,
          "committed_at": "2026-06-17T00:41:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f413a6f06adc25c95b3f1f2169cb0172316b98dd",
          "body": "…ween color spaces. r=layout-reviewers,firefox-style-system-reviewers,emilio\n\nPer spec, missing components used directly should be treated as 0. We\nalready keep track of none components during mixing using the flags,\nso NaN placeholders are not needed.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306997",
          "is_bot": false,
          "headline": "Bug 2045815 - Treat missing color components as 0 when converting bet…",
          "author_name": "Tiaan Louw",
          "author_login": "tiaanl",
          "committed_at": "2026-06-16T23:01:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3fe26763f7fb99d8ce067896debee7a76f8ccd4",
          "body": "…hat \"random\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\" for causing reftest failures in /color-1-ref.html\n\nThis reverts commit ae957f26de5b1fc4385826bd6ad7fd2c5ddc1c27.",
          "is_bot": false,
          "headline": "Revert \"Bug 2042294 - Quantize font-size at computed-value time, so t…",
          "author_name": "Cristian Tuns",
          "author_login": null,
          "committed_at": "2026-06-16T22:52:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4adf21bcb3a0fceed4cb3a2a68398074c2f83296",
          "body": "…sanspaille,arai,necko-reviewers,media-playback-reviewers,profiler-reviewers,alwu,canova,jesup\" for causing mochitest failures in test_beaconContentPolicy.html\n\nThis reverts commit dc4ec0bb8ca6362f9115a063483f14fb3eb083f8.",
          "is_bot": false,
          "headline": "Revert \"Bug 2046953 - Use HashBytes for hashing thin strings. r=serge…",
          "author_name": "Cristian Tuns",
          "author_login": null,
          "committed_at": "2026-06-16T21:21:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa6f8cebce6e7ad445195829e686bf37bfab4a9b",
          "body": "They compute to a keyword. The spec is clear that the values should be\ncomputed, not resolved and currentColor computes to a keyword, see\nhttps://issues.chromium.org/issues/40137692 for the Chromium issue.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307058",
          "is_bot": false,
          "headline": "Bug 2047996 - Make computed currentcolor reify properly. r=janv",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-16T19:09:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae957f26de5b1fc4385826bd6ad7fd2c5ddc1c27",
          "body": "…dom\" floating-point sizes don't overwhelm our caches. r=perftest-reviewers,firefox-style-system-reviewers,layout-reviewers,dshin,sparky\n\nWe do this by reducing precision proportionately to the value, rather than simply\nrounding to a certain number of decimals or similar, so that small sizes maintai\n[…]\n added, based on the\ntestcase in the report.\n\n(A few existing tests get minor adjustments to allow for the modified precision.)\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306131",
          "is_bot": false,
          "headline": "Bug 2042294 - Quantize font-size at computed-value time, so that \"ran…",
          "author_name": "Jonathan Kew",
          "author_login": "jfkthame",
          "committed_at": "2026-06-16T19:08:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "19a6f29d36713b1c3158640974f102ac914d947b",
          "body": "…rgb syntax. r=layout-reviewers,firefox-style-system-reviewers,dshin\" for causing failures at color-computed-rgb.html.\n\nThis reverts commit 1d5df57765e69f1de8199b7047f16f716eab18a8.",
          "is_bot": false,
          "headline": "Revert \"Bug 1901991 - Preserve `none` components when parsing modern …",
          "author_name": "Atila Butkovits",
          "author_login": null,
          "committed_at": "2026-06-16T18:48:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d5df57765e69f1de8199b7047f16f716eab18a8",
          "body": "…ax. r=layout-reviewers,firefox-style-system-reviewers,dshin\n\nUse the modern `color(srgb ...)` storage path when any component is\n`none`, since legacy sRGB cannot represent `none` anyway.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D307020",
          "is_bot": false,
          "headline": "Bug 1901991 - Preserve `none` components when parsing modern rgb synt…",
          "author_name": "Tiaan Louw",
          "author_login": "tiaanl",
          "committed_at": "2026-06-16T17:17:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc4ec0bb8ca6362f9115a063483f14fb3eb083f8",
          "body": "…le,arai,necko-reviewers,media-playback-reviewers,profiler-reviewers,alwu,canova,jesup\n\nHashing char by char is unnecessarily expensive, this hashes four bytes\nat a time for those.\n\nI did that rather than keeping size_t because HashBytes(uint64_t) ends\nup in two AddUint32ToHash() anyways, and that w\n[…]\nd we rely on\nit matching:\n\n * HashUTF8AsUTF16()\n * JS atoms\n * xpcom atoms.\n\nUse constexpr to simplify the static atoms set up.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306312",
          "is_bot": false,
          "headline": "Bug 2046953 - Use HashBytes for hashing thin strings. r=sergesanspail…",
          "author_name": "Emilio Cobos Álvarez",
          "author_login": "emilio",
          "committed_at": "2026-06-16T14:51:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4bda1500d3a0ae9f7f0a42f22701f0c7d2ed35b",
          "body": "…pectorUtils.getComputationStepsSupportedCSSFunctions. r=layout-reviewers,firefox-style-system-reviewers,emilio.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306691",
          "is_bot": false,
          "headline": "Bug 2047495 - Properly serialize SiblingCount and SiblingIndex in Ins…",
          "author_name": "Nicolas Chevobbe",
          "author_login": "nchevobbe",
          "committed_at": "2026-06-16T06:46:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02148c2da04dbdf6a303bca2e17fac79a059db3a",
          "body": "…e-system-reviewers\n\nAdd a NumericType field to UnitValue and populate it when constructing unit\nvalues.\n\nThis preserves the numeric type alongside the value and unit string so\nCSSNumericValue.type() can report the expected type for reified CSSUnitValue\nobjects.\n\nWPT coverage is added in a follow-up patch to avoid introducing many temporary\ntest failures.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305909",
          "is_bot": false,
          "headline": "Bug 2045434 - Store numeric types in UnitValue. r=emilio,firefox-styl…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-15T16:44:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c431426426070c31874359c4378f769d1991e4ed",
          "body": "…irefox-style-system-reviewers\n\nRefactor NumericType::try_from_unit() to use dedicated constructors for the\nindividual base types.\n\nThese constructors can be used when the numeric type is already known from\ncontext, avoiding the need to derive it from a unit string. A follow-up patch\nwill use them when constructing UnitValue objects during reification.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305908",
          "is_bot": false,
          "headline": "Bug 2045434 - Add NumericType constructors for base types. r=emilio,f…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-15T16:44:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71503193fa98621ba058edefd79e5dc2d5c2dd77",
          "body": "…refox-style-system-reviewers\n\nStore a NumericType on CSSNumericValue and use it to expose the CSSNumericType\ndictionary from CSSNumericValue::Type().\n\nThe numeric type is initially empty for all numeric values. A follow-up patch\nwill initialize it when constructing CSSUnitValue.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305631",
          "is_bot": false,
          "headline": "Bug 2045434 - Add initial CSSNumericValue.type() support. r=emilio,fi…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-15T10:40:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52b2b0b970e41ba2a6868484e1c979e5e8e81454",
          "body": "…-style-system-reviewers,emilio\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306635",
          "is_bot": false,
          "headline": "Bug 2047437 - Implement alpha() color function behind pref. r=firefox…",
          "author_name": "Sajid Anwar",
          "author_login": "kbhomes",
          "committed_at": "2026-06-15T08:42:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "598e3f7f088e343de6ee2b701595a182b6e60dc9",
          "body": "…elative colors. r=firefox-style-system-reviewers,tlouw,emilio\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306373",
          "is_bot": false,
          "headline": "Bug 1925572 - Improve parsing and validation of channel keywords in r…",
          "author_name": "Sajid Anwar",
          "author_login": "kbhomes",
          "committed_at": "2026-06-14T21:07:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c6eeef4b228c86274667c52cd2a07260253b6f7",
          "body": "…irefox-style-system-reviewers,emilio)\" for causing build bustages\n\nThis reverts commit bc066288cd32b7285dc1a29c6bc8368b05f23c2a.\n\nRevert \"Bug 2042048: Make selectors dependency on cssparser default features optional (r=firefox-style-system-reviewers,emilio)\"\n\nThis reverts commit ae0e054a14222cfa22400fc1ae60b463f56d2482.\n\nRevert \"Bug 2042048: Eliminate derive_more dependency from selectors (r=firefox-style-system-reviewers,emilio)\"\n\nThis reverts commit a6a9fa253c9070f4e406f47a47447d45096cc49c.",
          "is_bot": false,
          "headline": "Revert \"Bug 2042048: Make selectors's dependency on phf optional (r=f…",
          "author_name": "Sandor Molnar",
          "author_login": "smolnar-sheriff",
          "committed_at": "2026-06-14T20:31:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59d2fb5aa1518c761596e69e2dae905b10ce7cf3",
          "body": null,
          "is_bot": false,
          "headline": "Merge mozilla-central to autoland",
          "author_name": "Lando",
          "author_login": null,
          "committed_at": "2026-06-14T20:21:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b76c3f4f56623300280e5838b87d997df624fdc",
          "body": "…ilio,firefox-style-system-reviewers\" for causing failures @ CSSNumericValue.cpp\n\nThis reverts commit c88ace4b856625e2308dcf8116a3994ff9633182.\n\nRevert \"Bug 2045434 - Validate units in CSSNumericValue.to(). r=emilio,firefox-style-system-reviewers\"\n\nThis reverts commit bfe4621a5bee360d6c6ba48ea2a4492\n[…]\nda2a774f1c0f3228c680cca97cb5.\n\nRevert \"Bug 2045434 - Add initial CSSNumericValue.type() support. r=emilio,firefox-style-system-reviewers\"\n\nThis reverts commit 6114a592d4f7c945e07e0b81c46b709caf2f1b75.",
          "is_bot": false,
          "headline": "Revert \"Bug 2045434 - Validate units in CSSNumericValue.toSum(). r=em…",
          "author_name": "Sandor Molnar",
          "author_login": "smolnar-sheriff",
          "committed_at": "2026-06-14T20:18:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ddd525528964781e24796b0bac51e3a70bb52e5a",
          "body": "…rds in relative colors. r=firefox-style-system-reviewers,tlouw,emilio\" for causing flag related failures.\n\nThis reverts commit ba966310fe2135005b6c8a2ecc1c273d490243aa.",
          "is_bot": false,
          "headline": "Revert \"Bug 1925572 - Improve parsing and validation of channel keywo…",
          "author_name": "Cosmin Sabou",
          "author_login": "CosminSabou",
          "committed_at": "2026-06-14T20:08:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc066288cd32b7285dc1a29c6bc8368b05f23c2a",
          "body": "…tyle-system-reviewers,emilio)\n\nSigned-off-by: Nico Burns <nico@nicoburns.com>\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302243",
          "is_bot": false,
          "headline": "Bug 2042048: Make selectors's dependency on phf optional (r=firefox-s…",
          "author_name": "Nico Burns",
          "author_login": "nicoburns",
          "committed_at": "2026-06-14T20:02:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae0e054a14222cfa22400fc1ae60b463f56d2482",
          "body": "…optional (r=firefox-style-system-reviewers,emilio)\n\nSigned-off-by: Nico Burns <nico@nicoburns.com>\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302242",
          "is_bot": false,
          "headline": "Bug 2042048: Make selectors dependency on cssparser default features …",
          "author_name": "Nico Burns",
          "author_login": "nicoburns",
          "committed_at": "2026-06-14T20:02:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6a9fa253c9070f4e406f47a47447d45096cc49c",
          "body": "…ox-style-system-reviewers,emilio)\n\nThis was only being used for 2 impls which are now hand-written.\n\nSigned-off-by: Nico Burns <nico@nicoburns.com>\n\nDifferential Revision: https://phabricator.services.mozilla.com/D302241",
          "is_bot": false,
          "headline": "Bug 2042048: Eliminate derive_more dependency from selectors (r=firef…",
          "author_name": "Nico Burns",
          "author_login": "nicoburns",
          "committed_at": "2026-06-14T20:02:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba966310fe2135005b6c8a2ecc1c273d490243aa",
          "body": "…elative colors. r=firefox-style-system-reviewers,tlouw,emilio\n\nDifferential Revision: https://phabricator.services.mozilla.com/D306373",
          "is_bot": false,
          "headline": "Bug 1925572 - Improve parsing and validation of channel keywords in r…",
          "author_name": "Sajid Anwar",
          "author_login": "kbhomes",
          "committed_at": "2026-06-14T19:54:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f2ddf462289a8abd22f5bfbcdb25cc53ef01267",
          "body": "…ilio,firefox-style-system-reviewers\" for causing failures @ CSSNumericValue.cpp\n\nThis reverts commit c88ace4b856625e2308dcf8116a3994ff9633182.\n\nRevert \"Bug 2045434 - Validate units in CSSNumericValue.to(). r=emilio,firefox-style-system-reviewers\"\n\nThis reverts commit bfe4621a5bee360d6c6ba48ea2a4492\n[…]\nda2a774f1c0f3228c680cca97cb5.\n\nRevert \"Bug 2045434 - Add initial CSSNumericValue.type() support. r=emilio,firefox-style-system-reviewers\"\n\nThis reverts commit 6114a592d4f7c945e07e0b81c46b709caf2f1b75.",
          "is_bot": false,
          "headline": "Revert \"Bug 2045434 - Validate units in CSSNumericValue.toSum(). r=em…",
          "author_name": "Sandor Molnar",
          "author_login": "smolnar-sheriff",
          "committed_at": "2026-06-14T18:23:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6114a592d4f7c945e07e0b81c46b709caf2f1b75",
          "body": "…refox-style-system-reviewers\n\nStore a NumericType on CSSNumericValue and use it to expose the CSSNumericType\ndictionary from CSSNumericValue::Type().\n\nThe numeric type is initially empty for all numeric values. A follow-up patch\nwill initialize it when constructing CSSUnitValue.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305631",
          "is_bot": false,
          "headline": "Bug 2045434 - Add initial CSSNumericValue.type() support. r=emilio,fi…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-14T07:44:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d4d2cc00ec53fe9315951cf5ca4e6d54b5eb6e7",
          "body": "…emilio,firefox-style-system-reviewers\n\nAdd the initial infrastructure for Numeric Value Typing and implement the\nalgorithm for creating a type from a string unit.\n\nThis will be used by CSSNumericValue.type() and also allows the CSSUnitValue\nconstructor to validate its unit argument.\n\nDifferential Revision: https://phabricator.services.mozilla.com/D305100",
          "is_bot": false,
          "headline": "Bug 2045434 - Implement creating a NumericType from a unit string. r=…",
          "author_name": "Jan Varga",
          "author_login": "janvarga",
          "committed_at": "2026-06-13T16:17:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 18,
      "commits_last_year": 1063,
      "latest_release_at": "2026-07-01T12:43:26Z",
      "latest_release_tag": "v0.19.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 25,
      "mean_days_between_releases": 19.5
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 25,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "stylo",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/stylo",
          "is_deprecated": false,
          "latest_version": "0.19.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 22,
          "total_downloads": 239417,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 46361,
          "first_published_at": "2024-04-29T22:57:24.925088Z",
          "latest_published_at": "2026-07-03T16:30:13.751128Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        },
        {
          "name": "to_shmem",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/to_shmem",
          "is_deprecated": false,
          "latest_version": "0.5.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 6,
          "total_downloads": 239123,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 46732,
          "first_published_at": "2023-02-15T08:05:37.470645Z",
          "latest_published_at": "2026-07-03T16:26:05.455090Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        },
        {
          "name": "selectors",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [
            "css",
            "selectors"
          ],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/selectors",
          "is_deprecated": false,
          "latest_version": "0.39.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 61,
          "total_downloads": 57870974,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 6604021,
          "first_published_at": "2014-12-29T15:42:13.431991Z",
          "latest_published_at": "2026-07-03T16:26:14.622378Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        },
        {
          "name": "servo_arc",
          "exists": true,
          "license": "MIT OR Apache-2.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/servo_arc",
          "is_deprecated": false,
          "latest_version": "0.4.3",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 7,
          "total_downloads": 55457147,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 6194802,
          "first_published_at": "2018-01-12T23:13:18.094655Z",
          "latest_published_at": "2025-11-12T14:54:32.018040Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 256
        },
        {
          "name": "stylo_dom",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [
            "css",
            "style"
          ],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/stylo_dom",
          "is_deprecated": false,
          "latest_version": "0.19.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 20,
          "total_downloads": 237169,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 46405,
          "first_published_at": "2024-10-12T13:25:25.286253Z",
          "latest_published_at": "2026-07-03T16:29:08.284433Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        },
        {
          "name": "stylo_atoms",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/stylo_atoms",
          "is_deprecated": false,
          "latest_version": "0.19.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 20,
          "total_downloads": 237396,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 46427,
          "first_published_at": "2024-10-12T13:48:28.432740Z",
          "latest_published_at": "2026-07-03T16:28:45.290302Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        },
        {
          "name": "stylo_derive",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/stylo_derive",
          "is_deprecated": false,
          "latest_version": "0.19.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 20,
          "total_downloads": 235295,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 45805,
          "first_published_at": "2024-10-12T14:51:41.683793Z",
          "latest_published_at": "2026-07-03T16:29:24.609425Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        },
        {
          "name": "stylo_traits",
          "exists": true,
          "license": "MPL-2.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/stylo_traits",
          "is_deprecated": false,
          "latest_version": "0.19.0",
          "repository_url": "https://github.com/servo/stylo",
          "versions_count": 20,
          "total_downloads": 237021,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 46399,
          "first_published_at": "2024-10-12T14:48:41.830394Z",
          "latest_published_at": "2026-07-03T16:29:41.554119Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 23
        }
      ]
    },
    "popularity": {
      "forks": 94,
      "stars": 304,
      "watchers": 9,
      "fork_history": {
        "days": [
          {
            "date": "2024-03-01",
            "count": 1
          },
          {
            "date": "2024-03-10",
            "count": 1
          },
          {
            "date": "2024-03-18",
            "count": 3
          },
          {
            "date": "2024-03-21",
            "count": 1
          },
          {
            "date": "2024-03-26",
            "count": 1
          },
          {
            "date": "2024-05-05",
            "count": 1
          },
          {
            "date": "2024-06-02",
            "count": 1
          },
          {
            "date": "2024-07-17",
            "count": 1
          },
          {
            "date": "2024-08-29",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-10-05",
            "count": 1
          },
          {
            "date": "2024-10-27",
            "count": 1
          },
          {
            "date": "2024-11-11",
            "count": 1
          },
          {
            "date": "2024-11-20",
            "count": 1
          },
          {
            "date": "2024-12-10",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2025-01-10",
            "count": 1
          },
          {
            "date": "2025-01-13",
            "count": 1
          },
          {
            "date": "2025-01-24",
            "count": 2
          },
          {
            "date": "2025-02-02",
            "count": 1
          },
          {
            "date": "2025-02-03",
            "count": 1
          },
          {
            "date": "2025-02-07",
            "count": 1
          },
          {
            "date": "2025-02-10",
            "count": 1
          },
          {
            "date": "2025-02-18",
            "count": 1
          },
          {
            "date": "2025-02-20",
            "count": 1
          },
          {
            "date": "2025-03-01",
            "count": 1
          },
          {
            "date": "2025-03-10",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 2
          },
          {
            "date": "2025-03-20",
            "count": 1
          },
          {
            "date": "2025-03-23",
            "count": 1
          },
          {
            "date": "2025-04-06",
            "count": 1
          },
          {
            "date": "2025-04-11",
            "count": 1
          },
          {
            "date": "2025-04-23",
            "count": 1
          },
          {
            "date": "2025-05-16",
            "count": 1
          },
          {
            "date": "2025-05-25",
            "count": 1
          },
          {
            "date": "2025-07-19",
            "count": 1
          },
          {
            "date": "2025-07-22",
            "count": 1
          },
          {
            "date": "2025-07-31",
            "count": 1
          },
          {
            "date": "2025-09-01",
            "count": 1
          },
          {
            "date": "2025-09-08",
            "count": 1
          },
          {
            "date": "2025-09-11",
            "count": 1
          },
          {
            "date": "2025-09-29",
            "count": 1
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-20",
            "count": 1
          },
          {
            "date": "2025-10-28",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-11-13",
            "count": 1
          },
          {
            "date": "2025-11-15",
            "count": 1
          },
          {
            "date": "2025-11-23",
            "count": 2
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-12-08",
            "count": 1
          },
          {
            "date": "2025-12-15",
            "count": 1
          },
          {
            "date": "2025-12-20",
            "count": 1
          },
          {
            "date": "2026-01-01",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-14",
            "count": 1
          },
          {
            "date": "2026-01-24",
            "count": 1
          },
          {
            "date": "2026-02-20",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-15",
            "count": 1
          },
          {
            "date": "2026-03-23",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-03-31",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-04-03",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-07",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 1
          },
          {
            "date": "2026-05-03",
            "count": 2
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-13",
            "count": 2
          },
          {
            "date": "2026-06-18",
            "count": 1
          },
          {
            "date": "2026-06-22",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 1
          },
          {
            "date": "2026-07-07",
            "count": 1
          },
          {
            "date": "2026-07-08",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 92,
        "total_forks": 94
      },
      "star_history": null,
      "open_issues_and_prs": 46
    },
    "ai_readiness": {
      "has_nix": true,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "Cargo.toml",
        "malloc_size_of/Cargo.toml",
        "selectors/Cargo.toml",
        "servo_arc/Cargo.toml",
        "style/Cargo.toml",
        "style_derive/Cargo.toml",
        "style_traits/Cargo.toml",
        "stylo_atoms/Cargo.toml",
        "stylo_dom/Cargo.toml",
        "stylo_static_prefs/Cargo.toml",
        "to_shmem/Cargo.toml",
        "to_shmem_derive/Cargo.toml"
      ],
      "largest_source_bytes": 187207,
      "source_files_sampled": 347,
      "oversized_source_files": 18,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "malloc_size_of/Cargo.toml",
        "selectors/Cargo.toml",
        "servo_arc/Cargo.toml",
        "style/Cargo.toml",
        "style_derive/Cargo.toml",
        "style_traits/Cargo.toml",
        "stylo_atoms/Cargo.toml",
        "stylo_dom/Cargo.toml",
        "stylo_static_prefs/Cargo.toml",
        "to_shmem/Cargo.toml",
        "to_shmem_derive/Cargo.toml"
      ],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 52,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "crates"
      ],
      "dependencies": [
        {
          "name": "app_units",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.7"
        },
        {
          "name": "cssparser",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.37"
        },
        {
          "name": "euclid",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.22"
        },
        {
          "name": "selectors",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "servo_arc",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "smallbitvec",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.3.0"
        },
        {
          "name": "smallvec",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.13"
        },
        {
          "name": "string_cache",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "thin-vec",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.13"
        },
        {
          "name": "void",
          "manifest": "malloc_size_of/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.2"
        },
        {
          "name": "bitflags",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "cssparser",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.37"
        },
        {
          "name": "derive_more",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "rustc-hash",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.1.1"
        },
        {
          "name": "log",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "phf",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.13"
        },
        {
          "name": "precomputed-hash",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "servo_arc",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "smallvec",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "to_shmem",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "to_shmem_derive",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "new_debug_unreachable",
          "manifest": "selectors/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "serde",
          "manifest": "servo_arc/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "stable_deref_trait",
          "manifest": "servo_arc/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.0"
        },
        {
          "name": "app_units",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.7.8"
        },
        {
          "name": "arrayvec",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.7"
        },
        {
          "name": "atomic_refcell",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "bitflags",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "byteorder",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "cssparser",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.37"
        },
        {
          "name": "derive_more",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "dom",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "new_debug_unreachable",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "encoding_rs",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.8"
        },
        {
          "name": "euclid",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.22"
        },
        {
          "name": "rustc-hash",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.1.1"
        },
        {
          "name": "icu_segmenter",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": ">= 1.5, <= 2.*"
        },
        {
          "name": "indexmap",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "itertools",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.14"
        },
        {
          "name": "itoa",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "log",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "malloc_size_of",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "malloc_size_of_derive",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "web_atoms",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.0"
        },
        {
          "name": "mime",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.3.13"
        },
        {
          "name": "num_cpus",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.1.0"
        },
        {
          "name": "num-integer",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "num-traits",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2"
        },
        {
          "name": "num-derive",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4"
        },
        {
          "name": "parking_lot",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "precomputed-hash",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1.1"
        },
        {
          "name": "rayon",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "rayon-core",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "selectors",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "servo_arc",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "stylo_atoms",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "smallbitvec",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.3.0"
        },
        {
          "name": "smallvec",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "static_assertions",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.1"
        },
        {
          "name": "static_prefs",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "string_cache",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "strum",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.28"
        },
        {
          "name": "strum_macros",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.28"
        },
        {
          "name": "style_derive",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "style_traits",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "to_shmem",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "to_shmem_derive",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "thin-vec",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.1"
        },
        {
          "name": "uluru",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3.0"
        },
        {
          "name": "void",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0.2"
        },
        {
          "name": "url",
          "manifest": "style/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.5"
        },
        {
          "name": "darling",
          "manifest": "style_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.20"
        },
        {
          "name": "proc-macro2",
          "manifest": "style_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "quote",
          "manifest": "style_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "syn",
          "manifest": "style_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "synstructure",
          "manifest": "style_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.13"
        },
        {
          "name": "app_units",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.7"
        },
        {
          "name": "bitflags",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "cssparser",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.37"
        },
        {
          "name": "euclid",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.22"
        },
        {
          "name": "malloc_size_of",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "malloc_size_of_derive",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1"
        },
        {
          "name": "selectors",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "serde",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "servo_arc",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "stylo_atoms",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "thin-vec",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2"
        },
        {
          "name": "to_shmem",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "to_shmem_derive",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "url",
          "manifest": "style_traits/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.5"
        },
        {
          "name": "string_cache",
          "manifest": "stylo_atoms/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "bitflags",
          "manifest": "stylo_dom/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "malloc_size_of",
          "manifest": "stylo_dom/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "cssparser",
          "manifest": "to_shmem/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.37"
        },
        {
          "name": "servo_arc",
          "manifest": "to_shmem/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "smallbitvec",
          "manifest": "to_shmem/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.3.0"
        },
        {
          "name": "smallvec",
          "manifest": "to_shmem/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.13"
        },
        {
          "name": "string_cache",
          "manifest": "to_shmem/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.9"
        },
        {
          "name": "thin-vec",
          "manifest": "to_shmem/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.1"
        },
        {
          "name": "darling",
          "manifest": "to_shmem_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.20"
        },
        {
          "name": "proc-macro2",
          "manifest": "to_shmem_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "quote",
          "manifest": "to_shmem_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "syn",
          "manifest": "to_shmem_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2"
        },
        {
          "name": "synstructure",
          "manifest": "to_shmem_derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.13"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "app_units",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "arrayvec",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "atomic_refcell",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "byteorder",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "cssparser",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "darling",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "derive_more",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "encoding_rs",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "euclid",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "icu_segmenter",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "malloc_size_of_derive",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "mime",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "new_debug_unreachable",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "num-derive",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "num-integer",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "num_cpus",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "parking_lot",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "phf",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "precomputed-hash",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rustc-hash",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "smallbitvec",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "smallvec",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "stable_deref_trait",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "static_assertions",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "string_cache",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "strum",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "strum_macros",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "thin-vec",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "uluru",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "void",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "web_atoms",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "bindgen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "mozbuild",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "phf_codegen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "string_cache_codegen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "toml",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 52,
        "direct_count": 45,
        "indirect_count": 7
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 17,
        "merged_prs": 276,
        "open_issues": 29,
        "closed_ratio": 0.655,
        "closed_issues": 55,
        "closed_unmerged_prs": 52
      },
      "bus_factor": 8,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "emilio",
          "commits": 2714,
          "avatar_url": "https://avatars.githubusercontent.com/u/1323194?v=4"
        },
        {
          "type": "User",
          "login": "Ms2ger",
          "commits": 724,
          "avatar_url": "https://avatars.githubusercontent.com/u/111161?v=4"
        },
        {
          "type": "User",
          "login": "nox",
          "commits": 476,
          "avatar_url": "https://avatars.githubusercontent.com/u/123095?v=4"
        },
        {
          "type": "User",
          "login": "pcwalton",
          "commits": 324,
          "avatar_url": "https://avatars.githubusercontent.com/u/157897?v=4"
        },
        {
          "type": "User",
          "login": "gw3583",
          "commits": 305,
          "avatar_url": "https://avatars.githubusercontent.com/u/39062770?v=4"
        },
        {
          "type": "User",
          "login": "BorisChiou",
          "commits": 281,
          "avatar_url": "https://avatars.githubusercontent.com/u/1914903?v=4"
        },
        {
          "type": "User",
          "login": "SimonSapin",
          "commits": 265,
          "avatar_url": "https://avatars.githubusercontent.com/u/291359?v=4"
        },
        {
          "type": "User",
          "login": "upsuper",
          "commits": 255,
          "avatar_url": "https://avatars.githubusercontent.com/u/333750?v=4"
        },
        {
          "type": "User",
          "login": "Manishearth",
          "commits": 251,
          "avatar_url": "https://avatars.githubusercontent.com/u/1617736?v=4"
        },
        {
          "type": "User",
          "login": "dshin-moz",
          "commits": 249,
          "avatar_url": "https://avatars.githubusercontent.com/u/102040459?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.264
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": false,
      "ci_workflows": [
        "main.yml",
        "mirror-to-release-branch.yml",
        "sync-upstream.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 8,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "11 out of 11 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 6,
            "reason": "Found 18/30 approved changesets -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 46 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2d289c14fdf46952d52cabce63b1f0dc55b2ccde",
        "ran_at": "2026-07-26T16:37:42Z",
        "aggregate_score": 4.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-26T13:44:54Z",
      "oldest_open_prs": [
        {
          "number": 213,
          "created_at": "2025-07-03T04:18:46Z",
          "last_comment_at": "2025-07-03T09:15:10Z",
          "last_comment_author": "yezhizhen"
        },
        {
          "number": 224,
          "created_at": "2025-08-05T14:28:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 225,
          "created_at": "2025-08-07T13:10:07Z",
          "last_comment_at": "2025-10-10T15:57:23Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 241,
          "created_at": "2025-09-14T00:43:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 253,
          "created_at": "2025-10-10T15:45:49Z",
          "last_comment_at": "2025-10-10T18:19:49Z",
          "last_comment_author": "Loirooriol"
        },
        {
          "number": 270,
          "created_at": "2025-11-18T08:52:16Z",
          "last_comment_at": "2025-11-26T12:38:40Z",
          "last_comment_author": "RichardTjokroutomo"
        },
        {
          "number": 276,
          "created_at": "2025-12-03T02:54:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 288,
          "created_at": "2026-01-19T14:31:30Z",
          "last_comment_at": "2026-06-16T15:35:28Z",
          "last_comment_author": "lukewarlow"
        },
        {
          "number": 290,
          "created_at": "2026-01-23T02:03:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 296,
          "created_at": "2026-01-27T13:13:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 351,
          "created_at": "2026-04-10T07:35:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 363,
          "created_at": "2026-05-13T07:43:05Z",
          "last_comment_at": "2026-05-13T12:58:59Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 396,
          "created_at": "2026-06-16T13:52:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 405,
          "created_at": "2026-06-28T19:16:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 411,
          "created_at": "2026-07-02T13:52:34Z",
          "last_comment_at": "2026-07-02T14:55:45Z",
          "last_comment_author": "Loirooriol"
        },
        {
          "number": 412,
          "created_at": "2026-07-02T13:57:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 430,
          "created_at": "2026-07-22T23:03:55Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-23T20:50:06Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 206,
          "created_at": "2017-03-03T03:59:40Z",
          "last_comment_at": "2017-06-27T12:09:59Z",
          "last_comment_author": "nox"
        },
        {
          "number": 204,
          "created_at": "2017-05-20T12:12:05Z",
          "last_comment_at": "2017-05-20T12:12:06Z",
          "last_comment_author": "highfive"
        },
        {
          "number": 205,
          "created_at": "2017-08-26T12:48:37Z",
          "last_comment_at": "2017-08-28T22:50:24Z",
          "last_comment_author": "nox"
        },
        {
          "number": 210,
          "created_at": "2020-04-30T00:00:58Z",
          "last_comment_at": "2025-06-30T07:30:56Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 299,
          "created_at": "2024-01-13T16:03:27Z",
          "last_comment_at": "2026-05-12T08:00:16Z",
          "last_comment_author": "yilin0518"
        },
        {
          "number": 5,
          "created_at": "2024-02-28T04:18:20Z",
          "last_comment_at": "2024-03-14T15:03:33Z",
          "last_comment_author": "mrobinson"
        },
        {
          "number": 17,
          "created_at": "2024-03-08T00:20:01Z",
          "last_comment_at": "2024-05-25T11:50:05Z",
          "last_comment_author": "mrobinson"
        },
        {
          "number": 30,
          "created_at": "2024-04-11T03:28:07Z",
          "last_comment_at": "2024-04-11T08:54:54Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 101,
          "created_at": "2024-12-22T00:55:33Z",
          "last_comment_at": "2026-07-13T00:13:48Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 118,
          "created_at": "2025-02-04T12:40:05Z",
          "last_comment_at": "2025-02-08T07:41:58Z",
          "last_comment_author": "Loirooriol"
        },
        {
          "number": 132,
          "created_at": "2025-03-09T23:49:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 176,
          "created_at": "2025-05-03T10:31:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 177,
          "created_at": "2025-05-03T10:33:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 234,
          "created_at": "2025-08-20T14:14:44Z",
          "last_comment_at": "2025-08-20T14:29:00Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 235,
          "created_at": "2025-08-20T14:17:02Z",
          "last_comment_at": "2025-08-20T14:20:47Z",
          "last_comment_author": "mrobinson"
        },
        {
          "number": 240,
          "created_at": "2025-09-13T23:24:56Z",
          "last_comment_at": "2025-09-16T19:52:27Z",
          "last_comment_author": "nicoburns"
        },
        {
          "number": 308,
          "created_at": "2026-02-09T15:56:31Z",
          "last_comment_at": "2026-02-09T19:27:10Z",
          "last_comment_author": "jdm"
        },
        {
          "number": 315,
          "created_at": "2026-02-21T19:19:38Z",
          "last_comment_at": "2026-02-24T23:41:29Z",
          "last_comment_author": "Loirooriol"
        },
        {
          "number": 317,
          "created_at": "2026-03-02T23:49:17Z",
          "last_comment_at": "2026-03-16T22:31:53Z",
          "last_comment_author": "Conan-Kudo"
        },
        {
          "number": 318,
          "created_at": "2026-03-03T18:55:22Z",
          "last_comment_at": "2026-07-18T05:46:50Z",
          "last_comment_author": "mrobinson"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/servo/stylo",
    "host": "github.com",
    "name": "stylo",
    "owner": "servo"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 48,
        "vitality": 100,
        "community": 59,
        "governance": 85,
        "engineering": 46
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 100,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 1063,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1063 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1063
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 18,
              "latest_release_tag": "v0.19.0",
              "releases_from_tags": false,
              "days_since_latest_release": 25,
              "mean_days_between_releases": 19.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "18 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 25 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 25
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~19.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 19.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 2,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 2 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 59,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "forks": 94,
              "stars": 304,
              "watchers": 9,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "304 stars",
                "points": 40.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 304
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "94 forks",
                "points": 16.4,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 94
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "9 watchers",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "packages": [
                "stylo",
                "to_shmem",
                "selectors",
                "servo_arc",
                "stylo_dom",
                "stylo_atoms",
                "stylo_derive",
                "stylo_traits"
              ],
              "dependents": null,
              "ecosystems": "crates",
              "total_downloads": 114753542,
              "monthly_downloads": 13076952
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "13,076,952 downloads/month across crates",
                "points": 80,
                "status": "met",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 13076952,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "excellent",
        "name": "Sustainability & Governance",
        "value": 85,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "excellent",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "bus_factor": 8,
              "contributors_sampled": 100,
              "top_contributor_share": 0.264
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "8 contributor(s) cover half of all commits",
                "points": 54,
                "status": "met",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 26% of commits",
                "points": 16.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 26
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "100 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 46 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "merged_prs": 276,
              "open_issues": 29,
              "closed_issues": 55,
              "issue_closed_ratio": 0.655,
              "closed_unmerged_prs": 52
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "66% of issues closed",
                "points": 30.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 66
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "276/328 decided PRs merged",
                "points": 32.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 276,
                      "decided": 328
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 18/30 approved changesets -- score normalized to 6",
                "points": 9,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "followers": 1251,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "servo",
              "public_repos": 193,
              "account_age_days": 5031
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "1,251 followers of servo",
                "points": 22.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1251,
                      "login": "servo"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "193 public repos, account ~13 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 193
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "stylo",
                "to_shmem",
                "selectors",
                "servo_arc",
                "stylo_dom",
                "stylo_atoms",
                "stylo_derive",
                "stylo_traits"
              ],
              "ecosystems": "crates",
              "any_deprecated": false,
              "min_days_since_publish": 23
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on crates",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 23 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 23
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "61 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 61
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "at_risk",
        "name": "Engineering Quality",
        "value": 46,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_ci": true,
              "has_tests": false,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "11 out of 11 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 48,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 48,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 4.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "11 out of 11 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 18/30 approved changesets -- score normalized to 6",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 46 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 16
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "at_risk",
        "name": "AI Readiness",
        "value": 47,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.87,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "87 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 87,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 34,
            "inputs": {
              "has_nix": true,
              "has_tests": false,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "Cargo.toml",
                "malloc_size_of/Cargo.toml",
                "selectors/Cargo.toml",
                "servo_arc/Cargo.toml",
                "style/Cargo.toml",
                "style_derive/Cargo.toml",
                "style_traits/Cargo.toml",
                "stylo_atoms/Cargo.toml",
                "stylo_dom/Cargo.toml",
                "stylo_static_prefs/Cargo.toml",
                "to_shmem/Cargo.toml",
                "to_shmem_derive/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Cargo.toml, malloc_size_of/Cargo.toml, selectors/Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Cargo.toml, malloc_size_of/Cargo.toml, selectors/Cargo.toml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Rust (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Nix",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Nix"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "primary_language": "Rust",
              "largest_source_bytes": 187207,
              "source_files_sampled": 347,
              "oversized_source_files": 18
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Rust (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "18/347 source files over 60KB",
                "points": 52.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 347,
                      "oversized": 18
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-26T16:38:04.371643Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/servo/stylo.svg",
  "full_name": "servo/stylo",
  "license_state": "absent",
  "license_spdx": null
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikencrates.io.