`).join('');}
+$('scan').onsubmit=e=>{e.preventDefault();scan();};$('demo').onclick=()=>{$('repo').value='https://github.com/expressjs/express';scan();};$('interval').onchange=()=>{clearInterval(timer);if(+$('interval').value)timer=setInterval(scan,+$('interval').value);};$('export').onclick=()=>{const url=URL.createObjectURL(new Blob([JSON.stringify(report,null,2)],{type:'application/json'}));const a=document.createElement('a');a.href=url;a.download='up-to-date-evidence.json';a.click();setTimeout(()=>URL.revokeObjectURL(url),1000);};
+function issueDraft(){
+if(!report?.files.length)throw new Error('Scan a public repo before requesting monitoring.');
+const repoUrl='https://github.com/'+report.repo;
+const request=`UpToDate monitoring request\n\nRepository: ${repoUrl}\nRequested cadence: ${$('cadence').value}\nNotification preference: ${$('notification').value}\n\nFirst scan: ${report.checkedAt}\nSource commit: ${report.commit}\n\nI understand this is an early-access request. Hosted monitoring is NOT active until confirmed on this issue. No credentials or private details are included.`;
+const query=new URLSearchParams({template:'early-access.yml',title:'Early access: UpToDate — '+report.repo,venture:'up-to-date',plan:'Free / hosted monitoring request',use:request});
+return 'https://github.com/teahubxyz/time/issues/new?'+query;
+}
+$('request').onsubmit=e=>{e.preventDefault();if(!$('public-consent').checked)return;const url=issueDraft();$('request-status').textContent='Opening your draft. Submit it on GitHub to request monitoring; hosted checks remain inactive.';location.assign(url);};
+document.querySelectorAll('a[href="#scan"]').forEach(a=>a.addEventListener('click',()=>setTimeout(()=>$('repo').focus({preventScroll:true}),300)));
diff --git a/ventures/up-to-date/site/index.html b/ventures/up-to-date/site/index.html
index f4b0b7a..5125a4c 100644
--- a/ventures/up-to-date/site/index.html
+++ b/ventures/up-to-date/site/index.html
@@ -1,8 +1,7 @@
-UpToDate · Stack monitor
-NotPlanned / UpToDate01 — monitor first
Your stack moves. Keep an eye on it.
Inspect a public GitHub repository. See what it runs, what changed upstream, and which exact versions have published advisories. Read the evidence before deciding what to change.
-
-
Live, unauthenticated APIs. No tokens, repository writes, or background service. This unlisted link is publicly accessible, not access-controlled.
Ready. The Express example is a real repository, not sample data.
Stack inventory
Component
Observed version
Evidence
Coverage
Signals & impact
Unknowns & scan boundaries
-How this taste test works
We read up to 24 matching files from the default branch, including nested manifests and CI files; check up to 12 dependencies; and keep source links and timestamps. Exact npm lockfile / Python pins can be checked against OSV. Ranges are declarations, not proof of installed versions. Docker tags and Action refs are inventoried; their vulnerability coverage is unknown. Refresh compares the inventory with your previous scan in this tab. Close the tab and monitoring stops.
-Follow the experiment
Free: this browser monitor. Hosted alerts and team monitoring are early-access ideas, with no checkout or paid service yet.
Email is stored privately by NotPlanned for experiment updates.
Paste a public repository URL to get your first check-in.
Monitoring runs only while this tab is open. Close it and checks stop.
+
02 / KEEP THE THREAD
Keep this repo monitored.
Request hosted monitoring through a GitHub issue. We’ll reply on that issue to confirm availability and next steps.
Hosted monitoring: not active
Your check-in
Stack inventory
Component
Observed version
Evidence
Coverage
Unknowns & scan boundaries
+
MONITOR FIRST. MAINTAIN WHEN YOU’RE READY.
Context before changes.
UpToDate reads declared stack files and checks live upstream sources. It never changes your code. Exact npm lockfile versions and Python pins can be checked against OSV; version ranges aren’t proof of what’s installed.
What this scan covers
Up to 24 matching files and 12 unique dependencies on the default branch. Docker and Actions are inventory only. Unsupported parsers, unavailable APIs and rate limits appear as unknowns. This page is public; private repositories and unattended monitoring are unavailable. Hosted monitoring is an early-access request, not an active service.