@wenathlan/saddle 1.8.12 → 1.8.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/registry.d.ts +1 -1
- package/dist/browser/snapshot.d.ts +12 -0
- package/dist/browser/snapshot.d.ts.map +1 -1
- package/dist/browser/snapshot.js +76 -0
- package/dist/browser/snapshot.js.map +1 -1
- package/dist/dispatch/resumable.d.ts +18 -1
- package/dist/dispatch/resumable.d.ts.map +1 -1
- package/dist/dispatch/resumable.js +28 -3
- package/dist/dispatch/resumable.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -2
- package/dist/queue/persistent.d.ts +2 -1
- package/dist/queue/persistent.d.ts.map +1 -1
- package/dist/queue/persistent.js +27 -10
- package/dist/queue/persistent.js.map +1 -1
- package/dist/release/assets.d.ts +25 -0
- package/dist/release/assets.d.ts.map +1 -1
- package/dist/release/assets.js +67 -4
- package/dist/release/assets.js.map +1 -1
- package/dist/scrape/robots.js +1 -1
- package/dist/scrape/schema.d.ts +18 -0
- package/dist/scrape/schema.d.ts.map +1 -1
- package/dist/scrape/schema.js +67 -0
- package/dist/scrape/schema.js.map +1 -1
- package/docs/artifactavailability.md +16 -0
- package/docs/releasenotes-1.8.12.md +46 -0
- package/docs/releasenotes-1.8.13.md +42 -0
- package/docs/repo-analysis-1.8.21.json +2617 -0
- package/docs/repo-candidates-1.8.21.jsonl +666 -0
- package/docs/repo-research-1.8.21.md +38 -0
- package/docs/repo-selected-1.8.21.json +786 -0
- package/docs/repo-synthesis-1.8.21.md +112 -0
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Comparative synthesis for Saddle 1.8.21
|
|
2
|
+
|
|
3
|
+
The evidence set contains 60 public repositories selected across browser, scraping, storage, workflow, extension and packaging categories. Metadata, README excerpts, relevant tree paths and up to two code excerpts per repository were collected through the GitHub API. This document records patterns, not copied code.
|
|
4
|
+
|
|
5
|
+
## Evidence coverage
|
|
6
|
+
|
|
7
|
+
| Measure | Result |
|
|
8
|
+
|---|---:|
|
|
9
|
+
| Repositories analyzed | 60 |
|
|
10
|
+
| Repositories with code samples | 35 |
|
|
11
|
+
| Code samples captured | 64 |
|
|
12
|
+
| Repositories with relevant paths | 54 |
|
|
13
|
+
|
|
14
|
+
## Category coverage
|
|
15
|
+
|
|
16
|
+
| Category | Repositories |
|
|
17
|
+
|---|---:|
|
|
18
|
+
| browser automation | 14 |
|
|
19
|
+
| web scraping crawler | 11 |
|
|
20
|
+
| s3 compatible storage | 11 |
|
|
21
|
+
| browser extension automation | 10 |
|
|
22
|
+
| package release artifacts | 7 |
|
|
23
|
+
| workflow engine ci cd | 5 |
|
|
24
|
+
| storage backup | 1 |
|
|
25
|
+
| storage | 1 |
|
|
26
|
+
|
|
27
|
+
## License and language signals
|
|
28
|
+
|
|
29
|
+
The license field is evidence for comparison, not permission to copy. Any code reuse would require a separate compatibility review against GPL-3.0-only and the repository's complete notices.
|
|
30
|
+
|
|
31
|
+
| License signal | Repositories |
|
|
32
|
+
|---|---:|
|
|
33
|
+
| unknown | 19 |
|
|
34
|
+
| MIT | 16 |
|
|
35
|
+
| Apache-2.0 | 13 |
|
|
36
|
+
| AGPL-3.0 | 5 |
|
|
37
|
+
| NOASSERTION | 3 |
|
|
38
|
+
| GPL-2.0 | 1 |
|
|
39
|
+
| WTFPL | 1 |
|
|
40
|
+
| BSD-3-Clause | 1 |
|
|
41
|
+
| BSD-2-Clause | 1 |
|
|
42
|
+
|
|
43
|
+
| Language | Repositories |
|
|
44
|
+
|---|---:|
|
|
45
|
+
| Python | 15 |
|
|
46
|
+
| TypeScript | 12 |
|
|
47
|
+
| JavaScript | 8 |
|
|
48
|
+
| Go | 8 |
|
|
49
|
+
| unknown | 4 |
|
|
50
|
+
| C++ | 3 |
|
|
51
|
+
| Jupyter Notebook | 2 |
|
|
52
|
+
| Rust | 1 |
|
|
53
|
+
| Java | 1 |
|
|
54
|
+
| PHP | 1 |
|
|
55
|
+
| Zig | 1 |
|
|
56
|
+
| Dockerfile | 1 |
|
|
57
|
+
|
|
58
|
+
## Recurring implementation signals
|
|
59
|
+
|
|
60
|
+
| Signal | Repositories with evidence |
|
|
61
|
+
|---|---:|
|
|
62
|
+
| queue | 22 |
|
|
63
|
+
| storage | 43 |
|
|
64
|
+
| browser | 33 |
|
|
65
|
+
| workflow | 39 |
|
|
66
|
+
| release | 49 |
|
|
67
|
+
| security | 27 |
|
|
68
|
+
|
|
69
|
+
## Most visible repositories in the evidence set
|
|
70
|
+
|
|
71
|
+
| Repository | Stars | License | Categories |
|
|
72
|
+
|---|---:|---|---|
|
|
73
|
+
| [n8n-io/n8n](https://github.com/n8n-io/n8n) | 200533 | NOASSERTION | workflow engine ci cd |
|
|
74
|
+
| [browser-use/browser-use](https://github.com/browser-use/browser-use) | 109121 | MIT | browser automation |
|
|
75
|
+
| [puppeteer/puppeteer](https://github.com/puppeteer/puppeteer) | 95460 | Apache-2.0 | browser automation |
|
|
76
|
+
| [microsoft/playwright](https://github.com/microsoft/playwright) | 94485 | Apache-2.0 | browser automation |
|
|
77
|
+
| [scrapy/scrapy](https://github.com/scrapy/scrapy) | 63841 | BSD-3-Clause | web scraping crawler |
|
|
78
|
+
| [minio/minio](https://github.com/minio/minio) | 61393 | AGPL-3.0 | s3 compatible storage |
|
|
79
|
+
| [rclone/rclone](https://github.com/rclone/rclone) | 59129 | MIT | storage |
|
|
80
|
+
| [apache/airflow](https://github.com/apache/airflow) | 46473 | Apache-2.0 | workflow engine ci cd |
|
|
81
|
+
| [vercel-labs/agent-browser](https://github.com/vercel-labs/agent-browser) | 40571 | Apache-2.0 | browser automation |
|
|
82
|
+
| [restic/restic](https://github.com/restic/restic) | 35497 | BSD-2-Clause | storage backup |
|
|
83
|
+
| [SeleniumHQ/selenium](https://github.com/SeleniumHQ/selenium) | 34368 | Apache-2.0 | browser automation |
|
|
84
|
+
| [apify/crawlee](https://github.com/apify/crawlee) | 25378 | Apache-2.0 | web scraping crawler |
|
|
85
|
+
| [browserbase/stagehand](https://github.com/browserbase/stagehand) | 23931 | MIT | browser automation |
|
|
86
|
+
| [prefecthq/prefect](https://github.com/prefecthq/prefect) | 23618 | Apache-2.0 | workflow engine ci cd |
|
|
87
|
+
| [renovatebot/renovate](https://github.com/renovatebot/renovate) | 22257 | AGPL-3.0 | package release artifacts |
|
|
88
|
+
|
|
89
|
+
## Objective-driven candidate gaps for 1.8.21
|
|
90
|
+
|
|
91
|
+
The comparison suggests five independent feature directions. They are selected because they fit observed Saddle contracts and can be implemented without importing a provider's code or binding the library to hosted infrastructure.
|
|
92
|
+
|
|
93
|
+
| Candidate | Comparable pattern | Saddle implementation boundary | Decision |
|
|
94
|
+
|---|---|---|---|
|
|
95
|
+
| Durable request leases | Crawlee and workflow engines make queue ownership, retries and persistence explicit. | Extend the existing persistent queue with caller-owned lease, visibility timeout, attempt count and idempotency key; keep storage adapters injectable. | Select for implementation |
|
|
96
|
+
| Structured extraction contract | Stagehand and Crawlee separate observation/extraction from action execution. | Add schema-neutral extraction results with provenance, bounded payload size and injected parser; do not add an LLM or hosted browser dependency. | Select for implementation |
|
|
97
|
+
| Browser context budget | Stagehand emphasizes token-efficient context and deterministic locators. | Add bounded snapshot projection with field allowlist, max bytes and stable element references, reusing existing snapshot/diff contracts. | Select for implementation |
|
|
98
|
+
| Workflow cancellation and compensation | Temporal separates workflow state from worker execution and makes lifecycle state explicit. | Add an explicit cancellation transition and caller-owned compensation callback to the existing resumable run contract. | Select for implementation |
|
|
99
|
+
| Artifact retention policy | Crawlee, release systems and storage projects separate durable results from transient worker state. | Add retention metadata and deterministic pruning decisions to artifact manifests without deleting caller data implicitly. | Select for implementation |
|
|
100
|
+
|
|
101
|
+
## Rejected or deferred patterns
|
|
102
|
+
|
|
103
|
+
Hosted stealth browsers, automatic proxy rotation, CAPTCHA solving, embedded object stores, cloud-specific dispatch APIs, native worker modules in the universal export graph and copying provider-specific code are rejected or deferred. They either violate caller-owned infrastructure, expand the security boundary, conflict with transport neutrality or require a separate legal and operational decision.
|
|
104
|
+
|
|
105
|
+
## References
|
|
106
|
+
|
|
107
|
+
[1]: https://github.com/browserbase/stagehand "Stagehand repository"
|
|
108
|
+
[2]: https://github.com/apify/crawlee "Crawlee repository"
|
|
109
|
+
[3]: https://github.com/temporalio/sdk-typescript "Temporal TypeScript SDK repository"
|
|
110
|
+
[4]: https://github.com/minio/minio "MinIO repository"
|
|
111
|
+
[5]: https://github.com/browser-use/browser-use "Browser Use repository"
|
|
112
|
+
[6]: https://github.com/Scrapy/scrapy "Scrapy repository"
|
package/extension/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
3
|
"name": "Saddle browser bridge",
|
|
4
|
-
"version": "1.8.
|
|
4
|
+
"version": "1.8.13",
|
|
5
5
|
"description": "User initiated page snapshots through the Saddle browser contract.",
|
|
6
6
|
"minimum_chrome_version": "110",
|
|
7
7
|
"permissions": ["activeTab", "scripting", "storage"],
|