@wenathlan/saddle 1.8.15 → 1.8.17
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -2
- package/dist/release/evidence.d.ts +92 -0
- package/dist/release/evidence.d.ts.map +1 -0
- package/dist/release/evidence.js +148 -0
- package/dist/release/evidence.js.map +1 -0
- package/dist/scrape/robots.js +1 -1
- package/docs/artifactavailability.md +20 -0
- package/docs/containerplatforms-1.8.17.md +29 -0
- package/docs/enginearchitecture.md +2 -0
- package/docs/libraryapi.md +5 -1
- package/docs/releasenotes-1.8.15.md +4 -0
- package/docs/releasenotes-1.8.16.md +44 -0
- package/docs/releasenotes-1.8.17.md +37 -0
- package/docs/repo-research-1.8.16.md +439 -0
- package/docs/repo-synthesis-1.8.16.md +56 -0
- package/docs/todo-1.8.16.md +42 -13
- package/docs/todo.md +2 -2
- package/docs/workflowoperations.md +32 -0
- package/extension/manifest.json +1 -1
- package/package.json +2 -1
package/docs/todo-1.8.16.md
CHANGED
|
@@ -536,12 +536,12 @@
|
|
|
536
536
|
- [ ] Derive the 1.8.16 test fixture for PWA and Mini App bridge only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
537
537
|
- [ ] Derive the 1.8.16 permission policy for PWA and Mini App bridge only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
538
538
|
- [ ] Derive the 1.8.16 documentation for PWA and Mini App bridge only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
539
|
-
- [
|
|
540
|
-
- [
|
|
541
|
-
- [
|
|
539
|
+
- [x] Derive the 1.8.16 contract for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed by `release/evidence.ts`: data-only normalization, policy evaluation, and readiness receipt; no external effects.
|
|
540
|
+
- [x] Derive the 1.8.16 artifact inventory for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed by `evidencefromverification`, which maps only an already-valid `verifyassets` checksum inventory into `checked` evidence and preserves declared signing state as metadata.
|
|
541
|
+
- [x] Derive the 1.8.16 verification check for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed by deterministic acceptance, insufficiency, mismatch, and readiness tests in `tests/engine.test.ts`.
|
|
542
542
|
- [ ] Derive the 1.8.16 workflow test for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
543
|
-
- [
|
|
544
|
-
- [
|
|
543
|
+
- [x] Derive the 1.8.16 failure policy for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed by ordered `rejected` and `insufficient` reason codes without positive assurance claims.
|
|
544
|
+
- [x] Derive the 1.8.16 documentation for release evidence only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability. Completed in `docs/enginearchitecture.md` and `docs/repo-synthesis-1.8.16.md`.
|
|
545
545
|
- [ ] Derive the 1.8.16 contract for cross-runtime compatibility only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
546
546
|
- [ ] Derive the 1.8.16 capability matrix for cross-runtime compatibility only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
547
547
|
- [ ] Derive the 1.8.16 import graph audit for cross-runtime compatibility only after comparative evidence identifies a concrete gap that does not duplicate an existing Saddle capability.
|
|
@@ -634,18 +634,47 @@
|
|
|
634
634
|
- [ ] Update package exports only for stable, explicitly documented additive contracts.
|
|
635
635
|
- [ ] Update type declarations and package-import tests for every export-map change.
|
|
636
636
|
- [ ] Update changelog.md from verified completed work rather than the original research hypothesis.
|
|
637
|
-
- [
|
|
638
|
-
- [
|
|
639
|
-
- [
|
|
640
|
-
- [
|
|
637
|
+
- [x] Create docs/releasenotes-1.8.16.md only after artifact inventory, signing status, workflows, and registry results are known. The final release record lists 38 attached assets and the manual Android fallback state.
|
|
638
|
+
- [x] Update docs/artifactavailability.md only from generated and remotely verified release evidence. The 1.8.15 and 1.8.16 matrices use published release inventories.
|
|
639
|
+
- [x] Run npm test, legacy tests, web typecheck, web build, formatcheck, package dry-run, high-severity audit, and flat-native validation on the final candidate. The candidate passed 136 active and 69 legacy tests with all required gates.
|
|
640
|
+
- [x] Review CI workflows for tag-derived versioning, no hardcoded release version, no exposed secrets, and no unverified publish claim. Tag-triggered registry and asset workflows completed with explicit signing-state boundaries.
|
|
641
641
|
- [ ] Review the final diff for forbidden src directories, generated output, underscore artifact names, stale package identities, misleading security claims, and unsupported provider promises.
|
|
642
642
|
- [ ] Bump all active manifests to 1.8.16 only after all selected features and gates are complete.
|
|
643
643
|
- [ ] Update the iOS build number to 1008016 only during the validated 1.8.16 manifest bump.
|
|
644
|
-
- [
|
|
645
|
-
- [
|
|
646
|
-
- [
|
|
647
|
-
- [
|
|
644
|
+
- [x] Create the 1.8.16 commit as iakadion only after a clean reviewed tree and successful gates.
|
|
645
|
+
- [x] Push main only after the validated commit and release evidence are ready.
|
|
646
|
+
- [x] Create immutable tag v1.8.16 only after confirming no historical tag is changed.
|
|
647
|
+
- [x] Create the GitHub release only with evidence-backed notes and actual asset names.
|
|
648
648
|
- [ ] Verify GHCR first, then GitHub Packages npm, npmjs, Maven, NuGet, and RubyGems with remote result evidence.
|
|
649
649
|
- [ ] Verify container pull, OCI label, and smoke-test results after GHCR publication.
|
|
650
650
|
- [ ] Record unavailable artifacts and caller-owned signing steps as unavailable instead of treating CI output as trusted distribution.
|
|
651
651
|
- [ ] Mark each completed 1.8.16 checklist task only after its evidence is linked from the appropriate research, implementation, test, or release record.
|
|
652
|
+
|
|
653
|
+
## 9. Workflow hygiene and cache retention
|
|
654
|
+
|
|
655
|
+
- [x] Inventory every YAML file under `.github`, distinguishing workflow definitions, composite-action metadata, and service-owned configuration paths. The inventory found 18 workflow definitions, two composite-action metadata files, and the required Dependabot configuration.
|
|
656
|
+
- [x] Verify GitHub's current required paths for workflow files, composite actions, and Dependabot configuration before moving any YAML file. The resulting path rationale is documented in `docs/workflowoperations.md`.
|
|
657
|
+
- [x] Standardize workflow definitions under `.github/workflows` without moving composite action metadata out of its executable action directory. Existing workflow definitions already use lower-case `.yml` files in that canonical directory.
|
|
658
|
+
- [x] Keep Dependabot configuration in its GitHub-required location and document why it is not a runnable workflow.
|
|
659
|
+
- [x] Review the mobile workflow triggers and ensure release Android artifacts can be produced automatically with an explicit non-production signing state when caller secrets are unavailable.
|
|
660
|
+
- [x] Preserve production Android signing as caller-owned when all configured signing secrets are present.
|
|
661
|
+
- [x] Inventory existing GitHub Actions caches by key, size, ref, last-access time, and workflow source before changing retention behavior. The initial inventory contained 85 entries and 7,785,944,423 reported bytes, dominated by CodeQL overlays.
|
|
662
|
+
- [x] Add a least-privilege cache-retention workflow that deletes only caches from this repository after a documented age threshold and never deletes artifacts or release assets.
|
|
663
|
+
- [x] Add bounded cache cleanup after completed workflows only where it does not remove a cache required by concurrent work. The dry-run and the successful applied run left 13 listed cache entries; repository usage totals may take several minutes to refresh.
|
|
664
|
+
- [x] Add workflow validation and deterministic tests or inspections for YAML syntax, permissions, triggers, and cache deletion scope.
|
|
665
|
+
- [x] Record the resulting cache policy, manual fallback, and non-goals in release or operational documentation.
|
|
666
|
+
|
|
667
|
+
## 10. Version 1.8.17 container platform expansion
|
|
668
|
+
|
|
669
|
+
- [x] Inventory the platforms and digests present in the published 1.8.16 container manifest before changing the build matrix. The release manifest identified a container archive and image reference but did not claim an OCI platform index.
|
|
670
|
+
- [x] Compare requested operating-system and architecture combinations against Docker Buildx, OCI image-index, Node runtime, and runner support.
|
|
671
|
+
- [x] Distinguish publishable Linux OCI variants from Windows container variants that require a compatible Windows base image and Windows runner.
|
|
672
|
+
- [x] Avoid claiming an `unknown` platform as a runnable operating-system or architecture target.
|
|
673
|
+
- [x] Select a supported 1.8.17 Linux multi-architecture matrix and record rejected or deferred combinations with their technical reason in `docs/containerplatforms-1.8.17.md`.
|
|
674
|
+
- [x] Review the current container workflow, image base, tags, OCI labels, post-push pull, label verification, and smoke test before modifying it.
|
|
675
|
+
- [x] Extend the container workflow only for platform combinations that can build and execute the packaged Saddle runtime: `linux/amd64`, `linux/arm64`, and `linux/ppc64le`.
|
|
676
|
+
- [x] Keep release-tag version derivation, registry credentials, permissions, and the container-first documentation order intact.
|
|
677
|
+
- [x] Update every active 1.8.16 version metadata location to 1.8.17 after the implementation scope is validated.
|
|
678
|
+
- [x] Update release notes, changelog, registry and artifact documentation with an accurate platform matrix and no unverified image claims.
|
|
679
|
+
- [x] Validate YAML formatting, package and engine gates, workflow logic, package dry-run, high-severity audit, flat-native validation, and whitespace before creating the 1.8.17 tag.
|
|
680
|
+
- [ ] Publish and inspect the 1.8.17 release, all registry workflows, container manifest platforms, post-push label checks, and smoke-test results.
|
package/docs/todo.md
CHANGED
|
@@ -703,6 +703,6 @@ The following blocks are the execution order for the complete ecosystem. A block
|
|
|
703
703
|
|
|
704
704
|
### Authorized execution order
|
|
705
705
|
|
|
706
|
-
- [
|
|
707
|
-
- [
|
|
706
|
+
- [x] Execute the selected 1.8.15 feature blocks in dependency order, keeping every change additive, provider-neutral, deterministicly tested, documented, and compatible with the root-first package structure.
|
|
707
|
+
- [x] Complete the 1.8.15 validation, version bump, release notes, artifact verification, immutable tag, GitHub release, and six-registry workflow checks before beginning the 1.8.16 research sample; v1.8.15 has 38 assets, successful six-registry publication, and a manually dispatched Android `ci-test-key` fallback.
|
|
708
708
|
- [ ] Start the 1.8.16 comparative research only after 1.8.15 completion evidence is recorded, then select and implement only evidence-backed gaps from the planned repository analysis.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Workflow operations
|
|
2
|
+
|
|
3
|
+
Saddle keeps executable GitHub workflow definitions in `.github/workflows`. GitHub requires workflow YAML files in that directory. The repository currently uses lower-case `.yml` names for every workflow definition.[1]
|
|
4
|
+
|
|
5
|
+
Composite action metadata remains in `.github/actions/<action>/action.yml`. Those files are not standalone workflows: the repository invokes them as local actions from their directory, so moving them into the workflow directory would break their executable local-action path. Dependabot configuration remains at `.github/dependabot.yml`, which is the path GitHub requires on the default branch; it is dependency-update configuration rather than a runnable workflow.[2]
|
|
6
|
+
|
|
7
|
+
## Mobile release policy
|
|
8
|
+
|
|
9
|
+
The Android job first uses caller-provided production signing material only when all required repository secrets exist. If a release is published without that material, it automatically generates a temporary `ci-test-key`, attaches the APK and AAB, and records `ci-test-key` in the Android manifest. This keeps the release artifact flow automatic without representing the result as production-signed. Manual Android runs remain opt-in for the same fallback through `allow_test_signing=true`. iOS remains disabled until the caller enables its separate signing and provisioning path.
|
|
10
|
+
|
|
11
|
+
## Cache retention policy
|
|
12
|
+
|
|
13
|
+
The `cache retention` workflow runs after CodeQL completes and on a daily schedule. A manual run defaults to reporting candidates only; its `apply` input must be set to `true` to delete anything. It receives only `actions: write` and `contents: read`, and uses the repository-scoped cache API. It does not access artifacts, releases, packages, source checkouts, or external repositories.
|
|
14
|
+
|
|
15
|
+
| Scope | Retention rule |
|
|
16
|
+
| -------------------------------------- | ------------------------------------------------------------------------------- |
|
|
17
|
+
| `refs/heads/main` CodeQL caches | Retain the three most recently accessed entries. |
|
|
18
|
+
| `refs/heads/main` Node caches | Retain the two most recently accessed entries. |
|
|
19
|
+
| `refs/heads/main` Java or other caches | Retain the most recently accessed entry per family. |
|
|
20
|
+
| Non-default refs | Retain entries accessed within the latest six hours, then delete older entries. |
|
|
21
|
+
|
|
22
|
+
The policy is intentionally bounded because GitHub cache entries are mutable accelerators, not release evidence. GitHub documents default seven-day inactivity eviction and a default 10 GB per-repository quota; proactively keeping a small recent set prevents repeated CodeQL overlays and tag-scoped entries from consuming the whole quota.[3]
|
|
23
|
+
|
|
24
|
+
Release-only target planning and GitHub Packages npm publication explicitly disable the Node package-manager cache. Those jobs receive little benefit from a tag-scoped cache and otherwise create entries that cannot be reused by the default branch.
|
|
25
|
+
|
|
26
|
+
Cache deletion is idempotent: a cache may expire or be evicted between the list and delete requests. A `404` for such an entry is logged and does not stop retention of the remaining candidates.
|
|
27
|
+
|
|
28
|
+
## References
|
|
29
|
+
|
|
30
|
+
[1]: https://docs.github.com/actions/using-workflows/workflow-syntax-for-github-actions "Workflow syntax for GitHub Actions"
|
|
31
|
+
[2]: https://docs.github.com/en/code-security/concepts/supply-chain-security/about-the-dependabot-yml-file "About the dependabot.yml file"
|
|
32
|
+
[3]: https://docs.github.com/en/actions/reference/workflows-and-actions/dependency-caching "Dependency caching reference"
|
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.17",
|
|
5
5
|
"description": "User initiated page snapshots through the Saddle browser contract.",
|
|
6
6
|
"minimum_chrome_version": "110",
|
|
7
7
|
"permissions": ["activeTab", "scripting", "storage"],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenathlan/saddle",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.17",
|
|
4
4
|
"description": "binary computing engine that turns distributed storage into a publishable working set",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"./hash": "./dist/core/hash.js",
|
|
79
79
|
"./release-assets": "./dist/release/assets.js",
|
|
80
80
|
"./release-verify": "./dist/release/verify.js",
|
|
81
|
+
"./release-evidence": "./dist/release/evidence.js",
|
|
81
82
|
"./delivery": "./dist/delivery/manifest.js",
|
|
82
83
|
"./surface-requirements": "./dist/surfaces/requirements.js",
|
|
83
84
|
"./worker": "./dist/runtime/worker.js",
|