{"adoption": {"forks": 1935, "observed_at": "2026-08-28T04:11:32.611827+00:00", "stars": 22424}, "canonical_url": "https://ross.abutalabs.com/products/redux-saga", "card": {"archived": false, "artifact_type": "library", "description": "An alternative side effect model for Redux apps", "domain": ["frontend", "web-development", "developer-tools"], "enriched": true, "function": ["middleware", "state-management", "concurrency", "http-client"], "health_score": 99, "homepage": "https://redux-saga.js.org/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["redux-saga/redux-saga"], "name": "redux-saga/redux-saga", "platform": ["browser"], "pushed_at": "2026-08-23T14:13:18+00:00", "repo": "redux-saga/redux-saga", "stars": 22424, "tags": ["redux", "sagas", "side-effects", "generators", "async", "react", "task-cancellation", "nodejs", "javascript"], "topics": ["redux", "sagas", "effects", "middleware", "redux-saga"], "urls": [], "use_cases": ["handle async data fetching in Redux apps", "manage side effects in React applications", "replace redux-thunk for complex async flows", "cancel or race concurrent API requests", "test asynchronous workflows easily", "queue and serialize dispatched actions", "coordinate background tasks with Redux state"], "what_it_is": "redux-saga is a Redux middleware library that manages application side effects like asynchronous data fetching using ES6 generator functions. It models sagas as background threads that can be started, paused, and cancelled via Redux actions, making async flows easy to read, write, and test.", "when_to_avoid": ["you use a modern state manager like Redux Toolkit's RTK Query, Zustand, or TanStack Query for data fetching", "your app has only simple async needs that redux-thunk handles fine", "your team is unfamiliar with ES6 generators and can't invest in learning them", "you're not using Redux at all"], "when_to_choose": ["your Redux app has complex async logic with cancellation, racing, or debouncing needs", "you want highly testable side-effect code using generators", "you need fine-grained control over concurrent tasks and action channels", "your team is already invested in Redux and wants a mature side-effect model"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/redux-saga", "repo": "redux-saga/redux-saga", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:32.611827+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:57:10.614820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4b5755b346cae640d15d7fb08b9757055cee2de46499c96c83443c5514a36fa5", "fetched_at": "2026-08-28T04:11:32.611827+00:00", "kind": "readme", "missing": false, "url": "https://github.com/redux-saga/redux-saga"}, {"content_hash": "218857758623cf98401c389f5da87203c6d3ff3e912a54123f688ea9bad53347", "fetched_at": "2026-08-29T07:55:58.672446+00:00", "kind": "homepage", "missing": false, "url": "https://redux-saga.js.org/"}, {"content_hash": "f83d8ae6e7d58e11fb68badb8be5454d5d79ad908db939e81a4c3925272cb1cf", "fetched_at": "2026-08-29T07:55:58.675156+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/GettingStarted"}, {"content_hash": "08dc15231d42f272d18d223c669b01493c2c0001548ffddcae93aa8a52ea7b88", "fetched_at": "2026-08-29T07:55:58.677195+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/basics/DeclarativeEffects"}, {"content_hash": "9546504d23f4a915238ed9b73170d763b823bfb92f50b4fdc666f4a60236f3dc", "fetched_at": "2026-08-29T07:55:58.679384+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/advanced/Channels"}, {"content_hash": "7da324b22ac1b38eb446938ea44744a8852168fd801f35a65c6da2ddd74f8819", "fetched_at": "2026-08-29T07:55:58.682287+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/api"}, {"content_hash": "067014879a22ed5d098956f1c151bc27b69775490653c2ddc4bd08ed9b619390", "fetched_at": "2026-08-29T07:55:58.685639+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/introduction/BeginnerTutorial"}, {"content_hash": "62310fd5d7ad2f8f27104b96407c27f69e608cb83f6fb51e75f2867f2341fb80", "fetched_at": "2026-08-29T07:55:58.687600+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Glossary"}, {"content_hash": "cc7589a1653404c132b119c0872ad6d456def8aa9d84c4a241978a3e9de8a235", "fetched_at": "2026-08-29T07:55:58.689245+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/Troubleshooting"}, {"content_hash": "e595a17fb8aef5a2c5120347d61cebdcdbdb9fcb75156f96a808c75093c06fd7", "fetched_at": "2026-08-29T07:55:58.690888+00:00", "kind": "site_page", "missing": false, "url": "https://redux-saga.js.org/docs/ExternalResources"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 95}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3930, "days_push": 10, "days_rel": 38, "gap_med": 0.0, "n_releases_24m": 31}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}