mirror of
https://github.com/seanbetts/steam-hardware-watch.git
synced 2026-10-06 01:00:18 +02:00
Record Steam Machine follow-up package movement
This commit is contained in:
1 parent
15858a35f1
commit
cde4f5f5fc
5 files changed
+219
-27
No files matched your search
@@ -109,6 +109,18 @@ fetch_json "sections-frame-search" "https://komodostation.com/wp-json/wp/v2/sect
|
||||
fetch_json "media-controller-search" "https://komodostation.com/wp-json/wp/v2/media?search=Steam%20Controller&per_page=100" || true
|
||||
fetch_json "media-parent-product-controller" "https://komodostation.com/wp-json/wp/v2/media?parent=413763&per_page=100" || true
|
||||
|
||||
for optional_array in \
|
||||
sections-controller-search \
|
||||
sections-machine-search \
|
||||
sections-frame-search \
|
||||
media-controller-search \
|
||||
media-parent-product-controller
|
||||
do
|
||||
if [ ! -f "$OUT_DIR/$optional_array.json" ]; then
|
||||
printf '%s\n' "[]" > "$OUT_DIR/$optional_array.json"
|
||||
fi
|
||||
done
|
||||
|
||||
for id in $(jq -r '.[].id' "$OUT_DIR/sections-controller-search.json" 2>/dev/null || true); do
|
||||
fetch_json "media-parent-section-$id" "https://komodostation.com/wp-json/wp/v2/media?parent=$id&per_page=100" || true
|
||||
done
|
||||
|
||||
+28
-27
@@ -1,47 +1,48 @@
|
||||
# Steam Hardware Watch Status
|
||||
|
||||
Last updated: `2026-05-12`
|
||||
Last updated: `2026-05-14`
|
||||
|
||||
## Best Current Answer
|
||||
|
||||
- `Price`: Steam Controller remains confirmed by official Valve store APIs at `$99.00` in the US. Steam Machine and Steam Frame still have no confirmed public price.
|
||||
- `Release date`: Steam Controller remains confirmed with release date `May 4, 2026` and package `1558609`. Steam Machine and Steam Frame still only expose broad `Coming soon` / `2026` timing.
|
||||
- `Same-time launch`: same-day availability for the full trio is ruled out. Steam Controller is public and purchasable; Machine and Frame still have no public package, package group, price, or exact availability. Steam Machine reservation package changenumbers moved on `2026-05-12`; the multi-package change cluster resembles the Steam Controller package-history pattern before its public purchase timing appeared, but public Valve APIs still do not expose Machine purchase or reservation readiness.
|
||||
- `Same-time launch`: same-day availability for the full trio is ruled out. Steam Controller is public and purchasable; Machine and Frame still have no public package, package group, price, or exact availability. Steam Machine reservation package changenumbers have now moved twice: a multi-package cluster on `2026-05-12`, followed by another bump across all four watched Machine packages on `2026-05-14`. That is a stronger Controller-like backend-prep signal for Machine, but public Valve APIs still do not expose Machine purchase or reservation readiness.
|
||||
|
||||
## Source Snapshot
|
||||
|
||||
### Komodo
|
||||
|
||||
- Komodo API access worked on `2026-05-12`.
|
||||
- Product modified timestamps:
|
||||
- Controller: `2026-05-12T09:15:51`
|
||||
- Machine: `2026-04-24T14:32:54`
|
||||
- Frame: `2026-04-24T14:33:36`
|
||||
- Controller remains the only product with recent Komodo movement. A direct JSON diff versus `2026-05-11` found only `modified` / `modified_gmt` changes, so this is timestamp-only until corroborated by visible content, media, or store-state movement. Machine and Frame remain unchanged from their April 24 timestamps.
|
||||
- Visual asset retrieval completed for the current set: `141` discovered, `141` retrieved, `0` blocked.
|
||||
- Komodo was partially available on `2026-05-14` through the dedicated browser fallback.
|
||||
- Product modified timestamps captured in this run:
|
||||
- Controller: `2026-05-13T09:02:58`
|
||||
- Machine: `n/a` in this run because the optional Machine product fetch failed
|
||||
- Frame: `n/a` in this run because the optional Frame product fetch failed
|
||||
- Controller changed from `2026-05-12T09:15:51` to `2026-05-13T09:02:58`, but a direct JSON diff versus `2026-05-12` found only `modified` / `modified_gmt` changes. Treat this as timestamp-only until corroborated by visible content, media, store-state movement, or Steam metadata.
|
||||
- Machine and Frame Komodo product/section endpoints failed in this run. Any compare-report lines about Machine or Frame section removal are partial-fetch artifacts, not evidence that Valve removed sections.
|
||||
- Visual asset retrieval found `141` candidate assets, retrieved `136`, and left `5` blocked known Komodo URLs for manual retry.
|
||||
|
||||
### SteamKit / PICS
|
||||
|
||||
- SteamKit/PICS is now the primary direct Steam metadata baseline for watched app and package movement.
|
||||
- Current changenumbers from the `2026-05-12` run:
|
||||
- SteamKit/PICS is the primary direct Steam metadata source for watched app and package movement.
|
||||
- Current changenumbers from the `2026-05-14` run:
|
||||
- Controller app `4165870`: `35731145`
|
||||
- Frame app `4165890`: `35675573`
|
||||
- Machine app `4165910`: `35675573`
|
||||
- Controller package `1558609`: `35745078`
|
||||
- Machine package `1629446`: `35819604` (`35672615` on `2026-05-11`)
|
||||
- Machine package `1629447`: `35819607` (`35672615` on `2026-05-11`)
|
||||
- Machine package `1629458`: `35819602` (`35672615` on `2026-05-11`)
|
||||
- Machine package `1629460`: `35819593` (`35672615` on `2026-05-11`)
|
||||
- Machine package `1629446`: `35842876` (`35819604` on `2026-05-12`)
|
||||
- Machine package `1629447`: `35842851` (`35819607` on `2026-05-12`)
|
||||
- Machine package `1629458`: `35842860` (`35819602` on `2026-05-12`)
|
||||
- Machine package `1629460`: `35842863` (`35819593` on `2026-05-12`)
|
||||
- Frame packages `1629484`, `1629486`: `35672606`
|
||||
- The four watched Steam Machine package IDs moved in SteamKit/PICS on `2026-05-12`. This is the strongest current signal of fresh backend work, but it remains private metadata only.
|
||||
- Manual package-history comparison adds context: Steam Controller package `1558609` reportedly had three changes in about 40 minutes plus one later follow-up change roughly two days before Valve's public purchase-timing update appeared. The Machine package set now shows a tighter multi-package cluster, with uneven per-package counts (`1 / 3 / 3 / 4`) across about three minutes. Treat this as a medium-strength imminent-preorder heuristic, not confirmation.
|
||||
- The four watched Steam Machine package IDs received a follow-up SteamKit/PICS changenumber bump on `2026-05-14`. This is the strongest current signal of fresh Machine-specific backend work, especially because the two watched Steam Frame package IDs did not move.
|
||||
- Manual package-history context remains important: Steam Controller package `1558609` reportedly had a clustered change pattern plus one later follow-up change roughly two days before Valve's public purchase-timing update appeared. The Machine set now has both the initial multi-package cluster and the later follow-up bump. Treat this as a stronger imminent-preorder heuristic, not confirmation.
|
||||
- Machine and Frame apps/packages currently require private PICS metadata tokens, but changenumbers are visible and suitable for movement monitoring.
|
||||
- Raw snapshot: `/Users/sean/Coding/steam-hardware-watch/runs/2026-05-12/api/steamkit/pics-product-info.json`
|
||||
- Future runs also write `reports/steamkit-pics-detail.md` with human-readable product grouping, previous changenumber comparison, SHA hash, and exposed app/depot/branch fields.
|
||||
- Raw snapshot: `/Users/sean/Coding/steam-hardware-watch/runs/2026-05-14/api/steamkit/pics-product-info.json`
|
||||
- Human-readable detail: `/Users/sean/Coding/steam-hardware-watch/runs/2026-05-14/reports/steamkit-pics-detail.md`
|
||||
|
||||
### SteamDB
|
||||
|
||||
- Automated SteamDB access remained blocked on `2026-05-12`.
|
||||
- Automated SteamDB access remained blocked on `2026-05-14`.
|
||||
- The package report is still a structural baseline, not a content baseline: all watched SteamDB package rows are `missing_or_blocked`.
|
||||
- SteamDB remains useful as corroborating/human-readable metadata once a trusted browser session can pass the challenge, but SteamKit/PICS now covers primary package movement.
|
||||
|
||||
@@ -65,7 +66,7 @@ Last updated: `2026-05-12`
|
||||
### SteamOS Package Mirror
|
||||
|
||||
- Valve's public SteamOS package mirror was reachable.
|
||||
- Notable mirror hits include `fremont-hw-support 20260506.1-1` in `holo-3.8` and `holo-main`.
|
||||
- Notable mirror hits still include `fremont-hw-support 20260506.1-1` in `holo-3.8` and `holo-main`.
|
||||
- No direct `Deckard`, `Roy`, `Steam Frame`, `Steam Machine`, ARM/Snapdragon, or new product-specific top-level repo namespace appeared in the default pass.
|
||||
|
||||
### Valve Support / Store / CDN
|
||||
@@ -77,11 +78,11 @@ Last updated: `2026-05-12`
|
||||
- Machine app `4165910`: public app metadata, `Coming soon`, no packages, no package groups, no price.
|
||||
- Machine packages `1629446`, `1629447`, `1629458`, `1629460`: `packagedetails success:false`.
|
||||
- Frame packages `1629484`, `1629486`: `packagedetails success:false`.
|
||||
- This remains the cleanest public-readiness baseline. The `2026-05-12` SteamKit/PICS Machine package movement has not propagated to public `appdetails`, `packagedetails`, packages, package groups, price, or exact timing.
|
||||
- This remains the cleanest public-readiness baseline. The `2026-05-14` SteamKit/PICS Machine package movement has not propagated to public `appdetails`, `packagedetails`, packages, package groups, price, or exact timing.
|
||||
|
||||
### Customs / Regulatory
|
||||
|
||||
- ImportInfo automated customs fetches were blocked on `2026-05-12`.
|
||||
- ImportInfo automated customs fetches were blocked on `2026-05-14`.
|
||||
- The latest useful customs evidence remains the `2026-05-01` NBD / ImportGenius pass:
|
||||
- `WIRELESS PC CONTROLLER` row dated `2026-04-04`.
|
||||
- `GAME CONSOLE` shipment arriving `2026-04-23` for `INGRAM MICRO C/O VALVE CORPORATION`.
|
||||
@@ -91,13 +92,13 @@ Last updated: `2026-05-12`
|
||||
|
||||
- When will Valve publish Steam Machine and Steam Frame prices?
|
||||
- When will Steam Machine and Steam Frame receive public packages or package groups?
|
||||
- Will SteamKit/PICS changenumber movement precede public Valve API readiness?
|
||||
- Will the Machine package cluster receive a Controller-like follow-up changenumber bump before public preorder/reservation metadata appears?
|
||||
- Will the `2026-05-14` Machine follow-up changenumber bump precede public Valve API readiness?
|
||||
- Will Valve expose Machine package IDs through public `packagedetails`, `appdetails.packages`, package groups, reservation text, or purchase eligibility?
|
||||
- Are the `fremont-hw-support` SteamOS packages related to Steam Machine launch preparation?
|
||||
|
||||
## Next Checks
|
||||
|
||||
- Watch SteamKit/PICS changenumbers for all watched app and package IDs, especially whether the `2026-05-12` Machine package cluster gets a follow-up bump or begins to expose public metadata.
|
||||
- Watch SteamKit/PICS changenumbers for all watched app and package IDs, with higher frequency over the next 24-48 hours if possible.
|
||||
- Watch Valve `appdetails` / `packagedetails` for Machine and Frame package or package-group exposure.
|
||||
- Get one trusted-browser SteamDB package-page baseline if we still want human-readable SteamDB corroboration.
|
||||
- Get one trusted-browser SteamDB package-page baseline for the four Machine package IDs to corroborate the new PICS movement with human-readable history pages.
|
||||
- Continue normal Komodo, SteamTracking, SteamOS mirror, Valve API, and customs checks.
|
||||
@@ -40,3 +40,4 @@
|
||||
{"date_checked": "2026-05-11", "source": "steamkit-pics", "entity": "steam-controller,steam-machine,steam-frame", "claim": "SteamKit/PICS now provides a direct baseline changenumber snapshot for watched Valve hardware apps and reservation packages.", "evidence_type": "steam_product_info_baseline", "confidence": "high", "ref": "/Users/sean/Coding/steam-hardware-watch/runs/2026-05-11/reports/steamkit-pics-packages.tsv", "notes": "Controller app 4165870 changenumber 35731145; Frame app 4165890 and Machine app 4165910 changenumber 35675573; Controller package 1558609 changenumber 35745078; Machine packages 1629446/1629447/1629458/1629460 changenumber 35672615; Frame packages 1629484/1629486 changenumber 35672606. Machine and Frame rows require private PICS metadata tokens but visible changenumbers are enough for movement monitoring."}
|
||||
{"date_checked": "2026-05-12", "source": "steamkit-pics", "entity": "steam-machine", "claim": "SteamKit/PICS shows all four watched Steam Machine reservation package IDs moved since the 2026-05-11 baseline.", "evidence_type": "steam_product_info_changenumber_delta", "confidence": "high", "ref": "/Users/sean/Coding/steam-hardware-watch/runs/2026-05-12/reports/steamkit-pics-detail.md", "notes": "Machine packages 1629446, 1629447, 1629458, and 1629460 changed from changenumber 35672615 to 35819604, 35819607, 35819602, and 35819593 respectively. Rows still require private PICS metadata tokens and Valve appdetails/packagedetails remain non-public, so this is backend movement rather than confirmed public launch readiness."}
|
||||
{"date_checked": "2026-05-12", "source": "manual-steamdb-pattern", "entity": "steam-machine,steam-controller", "claim": "Steam Machine package-history movement resembles the Steam Controller package pattern observed before public purchase timing appeared.", "evidence_type": "package_history_pattern_comparison", "confidence": "medium", "ref": "/Users/sean/Coding/steam-hardware-watch/status/runs/2026-05-12.md", "notes": "Manual package-history observation: Steam Machine packages changed in an uneven 1/3/3/4 pattern across about three minutes. Steam Controller package 1558609 reportedly had three changes in about 40 minutes plus one later follow-up roughly two days before Valve publicly exposed purchase timing. This increases near-term watch priority but does not confirm preorder timing without public Valve API movement."}
|
||||
{"date_checked": "2026-05-14", "source": "steamkit-pics", "entity": "steam-machine", "claim": "SteamKit/PICS shows a second follow-up changenumber bump across all four watched Steam Machine reservation package IDs.", "evidence_type": "steam_product_info_followup_changenumber_delta", "confidence": "high", "ref": "/Users/sean/Coding/steam-hardware-watch/runs/2026-05-14/reports/steamkit-pics-detail.md", "notes": "Machine packages 1629446, 1629447, 1629458, and 1629460 moved from 35819604/35819607/35819602/35819593 on 2026-05-12 to 35842876/35842851/35842860/35842863 on 2026-05-14. Frame packages 1629484 and 1629486 stayed at 35672606, and public Valve appdetails/packagedetails still expose no Machine packages, package groups, price, or exact timing."}
|
||||
@@ -0,0 +1,84 @@
|
||||
# Run Note: 2026-05-14
|
||||
|
||||
## Summary
|
||||
|
||||
- Full skill run completed with artifacts under `/Users/sean/Coding/steam-hardware-watch/runs/2026-05-14`.
|
||||
- Material finding: SteamKit/PICS shows a second/follow-up changenumber bump across all four watched Steam Machine reservation package IDs since the `2026-05-12` run.
|
||||
- Steam Frame package IDs did not move.
|
||||
- Valve public APIs still do not expose Steam Machine or Steam Frame package groups, public package details, price, exact release timing, or purchase/reservation readiness.
|
||||
- Komodo was partially recovered through the dedicated browser fallback for Controller data, but Machine and Frame optional Komodo endpoints still failed.
|
||||
|
||||
## Source Checks
|
||||
|
||||
### Komodo
|
||||
|
||||
- Initial automated Komodo access was blocked.
|
||||
- Dedicated browser fallback recovered the Controller product enough to record a new modified timestamp: `2026-05-13T09:02:58`.
|
||||
- Controller JSON diff versus `2026-05-12` is timestamp-only (`modified` / `modified_gmt`).
|
||||
- Machine and Frame product/section fetches failed in this run. Compare-report lines suggesting Machine/Frame section removal should be treated as partial-fetch artifacts.
|
||||
- Visual assets: `141` discovered, `136` retrieved, `5` blocked known Komodo URLs.
|
||||
|
||||
### SteamKit / PICS
|
||||
|
||||
- SteamKit/PICS completed successfully.
|
||||
- Machine package movement:
|
||||
- `1629446`: `35819604` -> `35842876`
|
||||
- `1629447`: `35819607` -> `35842851`
|
||||
- `1629458`: `35819602` -> `35842860`
|
||||
- `1629460`: `35819593` -> `35842863`
|
||||
- Frame packages stayed unchanged:
|
||||
- `1629484`: `35672606`
|
||||
- `1629486`: `35672606`
|
||||
- Controller package `1558609` stayed unchanged at `35745078`.
|
||||
- Machine app `4165910`, Frame app `4165890`, and Controller app `4165870` stayed unchanged.
|
||||
- Interpretation: this is a Machine-specific backend movement signal. It strengthens the Controller-precedent comparison because the Machine package cluster now has a later follow-up bump, but it remains private metadata only.
|
||||
|
||||
### SteamDB
|
||||
|
||||
- Automated SteamDB access remained blocked.
|
||||
- Reservation package rows remain `missing_or_blocked`, so SteamDB is not yet a human-readable corroborating baseline for today's package movement.
|
||||
|
||||
### SteamTracking / GameTracking
|
||||
|
||||
- Fresh checkout still contains the known Triton/Ibex controller pairing surface.
|
||||
- No new Machine or Frame price, reservation, package, or release-date signal was found.
|
||||
|
||||
### SteamVR Depots
|
||||
|
||||
- SteamVR news metadata was saved.
|
||||
- SteamDB SteamVR depot metadata remained blocked.
|
||||
- No fresh depot manifest/build comparison was collected.
|
||||
|
||||
### SteamOS Package Mirror
|
||||
|
||||
- Public mirror remained reachable.
|
||||
- `fremont-hw-support 20260506.1-1` remains visible in `holo-3.8` and `holo-main`.
|
||||
- No direct Steam Machine, Steam Frame, Deckard, Roy, ARM/Snapdragon, or new product-specific namespace surfaced in this pass.
|
||||
|
||||
### Valve Support / CDN
|
||||
|
||||
- Valve public endpoints were reachable.
|
||||
- Controller remains public with package `1558609`, package group present, and `$99.00`.
|
||||
- Frame app `4165890` remains `Coming soon`, with no public packages, no package groups, and no price.
|
||||
- Machine app `4165910` remains `Coming soon`, with no public packages, no package groups, and no price.
|
||||
- Machine packages `1629446`, `1629447`, `1629458`, `1629460` still return `packagedetails success:false`.
|
||||
- Frame packages `1629484`, `1629486` still return `packagedetails success:false`.
|
||||
|
||||
### Customs / Regulatory
|
||||
|
||||
- ImportInfo automated customs fetches were blocked.
|
||||
- No new customs evidence was added.
|
||||
|
||||
## Effect On Key Questions
|
||||
|
||||
- Price: unchanged. Only Steam Controller has a confirmed price.
|
||||
- Release date: unchanged. Only Steam Controller has a confirmed exact date.
|
||||
- Same-time launch: unchanged. Full same-day launch remains ruled out, and current private metadata movement points more toward Machine-specific preparation than Frame movement.
|
||||
- Product furthest along: Steam Controller is already public/purchasable. Among unreleased hardware, Steam Machine now has the strongest fresh backend-prep signal because all four watched package IDs moved again while Frame stayed unchanged.
|
||||
|
||||
## Next Checks
|
||||
|
||||
- Repeat focused SteamKit/PICS checks for the watched package IDs over the next 24-48 hours.
|
||||
- Watch Valve public `appdetails` / `packagedetails` for Machine package exposure, package groups, price, reservation text, or purchase eligibility.
|
||||
- Complete a trusted-browser SteamDB package-history pass for Machine packages `1629446`, `1629447`, `1629458`, and `1629460`.
|
||||
- Treat Komodo Controller timestamp movement as low-value unless a future diff shows content, media, stock-state, or section changes.
|
||||
@@ -0,0 +1,94 @@
|
||||
import os
|
||||
import subprocess
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from tempfile import TemporaryDirectory
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
def write_executable(path, content):
|
||||
path.write_text(content.strip() + "\n", encoding="utf-8")
|
||||
path.chmod(0o755)
|
||||
|
||||
|
||||
class CheckKomodoTests(unittest.TestCase):
|
||||
def test_optional_machine_and_frame_fetch_failures_do_not_abort(self):
|
||||
tmp = TemporaryDirectory()
|
||||
self.addCleanup(tmp.cleanup)
|
||||
tmp_path = Path(tmp.name)
|
||||
run_dir = tmp_path / "run"
|
||||
fake_bin = tmp_path / "bin"
|
||||
fake_bin.mkdir()
|
||||
|
||||
write_executable(
|
||||
fake_bin / "curl",
|
||||
r"""
|
||||
#!/bin/sh
|
||||
for arg do
|
||||
url="$arg"
|
||||
done
|
||||
case "$url" in
|
||||
*wp-json/wp/v2/product/413763*)
|
||||
printf '%s\n' '{"modified":"2026-05-14T12:00:00","title":{"rendered":"Steam Controller"}}'
|
||||
;;
|
||||
*wp-json/wp/v2/sections?search=Steam%20Controller*)
|
||||
printf '%s\n' '[{"id":433306,"date":"2026-04-01T00:00:00","modified":"2026-05-14T12:00:00","slug":"steam-controller-01-banner","title":{"rendered":"Steam Controller Banner"}}]'
|
||||
;;
|
||||
*wp-json/wp/v2/media?search=Steam%20Controller*)
|
||||
printf '%s\n' '[]'
|
||||
;;
|
||||
*wp-json/wp/v2/media?parent=*)
|
||||
printf '%s\n' '[]'
|
||||
;;
|
||||
*wp-json/wp/v2/product/413772*|*wp-json/wp/v2/product/413776*|*wp-json/wp/v2/sections?search=Steam%20Machine*|*wp-json/wp/v2/sections?search=Steam%20Frame*)
|
||||
exit 22
|
||||
;;
|
||||
*wp-json/*)
|
||||
printf '%s\n' '{"name":"Komodo"}'
|
||||
;;
|
||||
*)
|
||||
exit 22
|
||||
;;
|
||||
esac
|
||||
""",
|
||||
)
|
||||
|
||||
env = os.environ.copy()
|
||||
env.update(
|
||||
{
|
||||
"PATH": f"{fake_bin}:{env['PATH']}",
|
||||
"KOMODO_ENV_FILE": str(tmp_path / "missing-komodo-env.sh"),
|
||||
}
|
||||
)
|
||||
|
||||
result = subprocess.run(
|
||||
[str(ROOT / "scripts" / "check_komodo.sh"), str(run_dir)],
|
||||
cwd=ROOT,
|
||||
env=env,
|
||||
text=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
check=False,
|
||||
)
|
||||
|
||||
self.assertEqual("", result.stderr)
|
||||
self.assertEqual(0, result.returncode)
|
||||
self.assertIn("Saved Komodo API responses", result.stdout)
|
||||
self.assertIn(
|
||||
"controller\t2026-05-14T12:00:00",
|
||||
(run_dir / "reports" / "komodo-product-modified.tsv").read_text(encoding="utf-8"),
|
||||
)
|
||||
self.assertEqual(
|
||||
"",
|
||||
(run_dir / "reports" / "komodo-machine-sections.tsv").read_text(encoding="utf-8"),
|
||||
)
|
||||
self.assertEqual(
|
||||
"",
|
||||
(run_dir / "reports" / "komodo-frame-sections.tsv").read_text(encoding="utf-8"),
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user