forkit-ai-footprints 0.2.1 → 0.2.4

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/PRIVACY.md CHANGED
@@ -59,10 +59,13 @@ AI Footprints may call HTTP(S) endpoints only when the hostname is one of:
59
59
  - `localhost`
60
60
  - `127.0.0.1`
61
61
  - `::1`
62
+ - `www.forkit.dev`, limited to `/api/v1/ai-footprints/challenges` and
63
+ `/api/v1/ai-footprints/contributions` after explicit Preview consent and the
64
+ one-hour eligibility gate.
62
65
 
63
- Remote endpoints and endpoints containing embedded credentials are rejected.
66
+ Other remote endpoints and endpoints containing embedded credentials are rejected.
64
67
  AI Footprints contains no Forkit.dev login, registry-write, passport-publish,
65
- Runtime_C2-write, billing, telemetry-upload, or deployment client.
68
+ Runtime_C2-write, billing, general telemetry, or deployment client.
66
69
 
67
70
  `forkit-ai-footprints serve` binds only to `127.0.0.1`. Its rescan route
68
71
  requires the same page origin and a random in-memory session token. The route
@@ -95,11 +98,11 @@ generate one App Attest key and store only its opaque key identifier in the
95
98
  device-only Keychain. The current UI and CLI do not invoke enrollment,
96
99
  attestation, assertion generation, or upload.
97
100
 
98
- On first launch, the native app asks whether aggregate measurements may be
99
- prepared for global comparison. The answer is stored locally in macOS user
100
- defaults as two booleans (asked and allowed). It is not a device identifier and
101
- is never transmitted. A user who chose “Not now” can reopen the same permission
102
- from the comparison view.
101
+ On first launch of the v2 Preview consent, the native app states that an
102
+ anonymous aggregate will be sent after one valid observed hour and refreshed
103
+ when internet is available. The answer and consent version are stored locally
104
+ in macOS user defaults. A user who chose “Not now” can reopen the same
105
+ permission from the comparison view. No request is made before permission.
103
106
 
104
107
  ## Filesystem identity
105
108
 
@@ -140,19 +143,20 @@ used as automatic evidence of ownership, safety, provenance, or passport status.
140
143
 
141
144
  ## Anonymous contribution boundary
142
145
 
143
- The local app can create an allowlisted schema `2.0` preview only after at least
144
- 3,600 valid observed seconds. First-launch permission and exact payload review are
145
- separate actions. The preview
146
+ The local app can create and send an allowlisted schema `2.0` Preview only after
147
+ at least 3,600 valid observed seconds and explicit v2 native permission. The Preview
146
148
  contains valid seconds, AI-active seconds, activity ratio, supported app count
147
149
  and categories, model/loaded/runtime counts, recognized model-file bytes,
148
150
  macOS major, architecture, and scanner/runtime schema versions. It excludes
149
151
  names, process counts, CPU/RAM values, guess, device identity, local scan ID,
150
- timestamps, and all item-level records. The CLI and app still have no uploader. A
151
- separate Forkit.dev aggregate endpoint candidate exists with contribution writes
152
- disabled by default. That candidate now fails closed without Apple App Attest
153
- verification and excludes quarantined or revoked installations from the public
154
- pulse. The CLI still contains no proof enrollment or upload transport. Enabling
155
- either remains a founder/security release gate.
152
+ timestamps, and all item-level records. The native app generates one owner-only
153
+ local Ed25519 key, signs the exact aggregate against a one-time server challenge,
154
+ and stores a small local sync receipt. The server persists only a keyed hash of
155
+ the public contribution identity and one latest aggregate. Community Preview
156
+ signatures prevent undetected payload changes and simple replay; they do not
157
+ prove unique hardware or truthful measurement. Public Preview copy must say
158
+ community-reported and not hardware-verified. Apple App Attest verification and
159
+ verified ranking remain a separate founder/security release gate.
156
160
 
157
161
  ## Local share page
158
162
 
package/README.md CHANGED
@@ -58,7 +58,7 @@ git clone https://github.com/arpitasarker01/forkit-ai-footprints.git
58
58
  cd forkit-ai-footprints
59
59
  npm ci
60
60
  npm pack
61
- npm install -g ./forkit-ai-footprints-0.2.1.tgz
61
+ npm install -g ./forkit-ai-footprints-0.2.4.tgz
62
62
  forkit-ai-footprints serve
63
63
  ```
64
64
 
@@ -186,8 +186,9 @@ forkit-ai-footprints scan --no-mcp
186
186
 
187
187
  CLI flags cannot bypass the required monitoring session. The local UI enables
188
188
  an exact schema `2.0` aggregate preview only after 3,600 valid observed seconds;
189
- the installed app asks once on first launch whether aggregate comparison is
190
- allowed, and no upload transport exists. The
189
+ the installed app asks with versioned consent whether the anonymous aggregate
190
+ may join the Global AI Preview. When allowed, the app sends one latest signed
191
+ aggregate after the one-hour gate and refreshes it when internet is available. The
191
192
  payload excludes app/model names, process counts, CPU/RAM, chat, workspace,
192
193
  repository, device, guess, local scan, and account identifiers.
193
194
 
package/STATUS.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Forkit AI Footprints Status
2
2
 
3
- Last updated: 2026-08-27
3
+ Last updated: 2026-08-28
4
4
 
5
- Version: `0.2.1`
5
+ Version: `0.2.4`
6
6
 
7
7
  Production classification: `current` for Apple Silicon macOS
8
8
 
9
- Release state: local v0.2.1 npm-first release candidate. The npm
9
+ Release state: v0.2.4 npm-first community Preview candidate. The npm
10
10
  bootstrap installs a persistent unsigned local app; Developer ID signing and
11
11
  notarization remain future work.
12
12
 
@@ -33,9 +33,15 @@ notarization remain future work.
33
33
  width instead of staying at tiny fixed pixel sizes.
34
34
  - Explicit Start/Stop Monitoring with repeated one-second macOS process-tree
35
35
  sampling, cumulative CPU-time deltas, two-sample entry and three-sample exit
36
- hysteresis, and sleep-gap exclusion. Observation pauses while macOS is locked
37
- or after 60 seconds without user input; every invalid interval starts a new
38
- continuous activity block when valid observation resumes.
36
+ hysteresis, and sleep-gap exclusion. Locked and unavailable time is excluded.
37
+ Unlocked input-idle time remains excluded unless sustained supported AI work
38
+ is still measured, so long-running agents do not disappear merely because the
39
+ keyboard and pointer are untouched.
40
+ - One explicit Start-to-Stop run now keeps one stable observation identity.
41
+ Sleep, lock, and inactivity create separate continuity periods without
42
+ inventing new observations. Timeline intervals preserve every valid measured
43
+ second across state changes, and filtered period counts use continuous blocks
44
+ rather than raw render fragments.
39
45
  - Clear states: **Active now**, **Ready**, **Monitoring**, and **Stopped**.
40
46
  Process presence alone never becomes active activity.
41
47
  - Durations retain seconds at every scale, including observations longer than
@@ -47,6 +53,12 @@ notarization remain future work.
47
53
  - The monitor is owned by the local service, not a browser tab. Closing the
48
54
  window does not end a session; stopping preserves the summary; clearing is a
49
55
  separate explicit action.
56
+ - Service reconnect resumes the same observation without counting its offline
57
+ gap. An explicit Stop followed by Start creates a clean new observation and
58
+ never carries old totals, products, or timeline blocks into the new run.
59
+ - Detailed timeline, one-minute per-app resource buckets, and monitor-overhead
60
+ samples remain bounded locally; cumulative observed and AI-active totals are
61
+ maintained independently and are not reduced when old visual blocks age out.
50
62
  - A persistent native AppKit/WebKit app installed into the current user's
51
63
  Applications folder by a one-time npm bootstrap. Later launches use normal
52
64
  macOS surfaces and do not require Terminal.
@@ -76,10 +88,12 @@ notarization remain future work.
76
88
  - Verified Ollama availability requires the exact local listener owner, a valid
77
89
  version response, and a valid tags response. Loaded state comes only from a
78
90
  valid `/api/ps` response.
79
- - A schema `2.0` candidate global aggregate based on valid observed seconds and
91
+ - A schema `2.0` Global AI Preview aggregate based on valid observed seconds and
80
92
  AI-active seconds. It excludes names, process counts, paths, commands, chat,
81
93
  workspace, device identity, guess, and local scan ID. Review and consent are
82
- separate; upload transport remains disabled.
94
+ separate. After explicit v2 native permission and one valid observed hour,
95
+ the app signs and syncs the allowlisted aggregate to Forkit.dev, keeping one
96
+ latest community-reported Preview row per stable local contribution key.
83
97
  - A 1080×1080 local share card with Share, Save PNG, Copy Image, and Copy
84
98
  Caption controls. It contains only measured totals and supported tool names.
85
99
  - A single Forkit.dev `/ai-footprint` page with an honest benchmark-forming
@@ -112,12 +126,12 @@ notarization remain future work.
112
126
  and stored local model records without attributing prompts or tasks.
113
127
  - A separate earlier real session crossed the previous 10-minute gate at exactly
114
128
  **600 valid seconds** and **598 AI-active seconds**. The current global
115
- comparison candidate now requires **3,600 valid seconds** before the local
116
- preview becomes available; no transport is enabled.
129
+ comparison requires **3,600 valid seconds** before a consented community
130
+ Preview aggregate becomes eligible for sync.
117
131
 
118
132
  ## Validation completed locally
119
133
 
120
- - TypeScript build and the complete local test suite: **119/119** tests passed.
134
+ - TypeScript build and the complete local test suite: **130/130** tests passed.
121
135
  - Deterministic active → idle/locked → resumed lifecycle coverage confirms that
122
136
  paused time changes neither observed nor AI-active seconds and cannot bridge
123
137
  the longest continuous activity block.
@@ -142,8 +156,9 @@ notarization remain future work.
142
156
 
143
157
  ## Intentionally not enabled or not yet field-validated
144
158
 
145
- - No upload, verified global contribution, public ranking, account, registry
146
- write, passport, Mint, Runtime_C2 write, telemetry, or production deployment.
159
+ - No verified global contribution/ranking, account, passport registry
160
+ write, passport, Mint, Runtime_C2 write, or general telemetry. Only the
161
+ explicitly consented community Preview aggregate transport is enabled.
147
162
  - No Homebrew tap, signed direct download, or click installer.
148
163
  - No Developer ID signature, notarization, stapling, Gatekeeper distribution
149
164
  test, or clean external-Mac installation test.
@@ -171,5 +186,6 @@ claim that a cloud model is running locally.
171
186
  ## Smallest release gate
172
187
 
173
188
  Future expansion requires representative multi-device field accuracy, Intel Mac
174
- validation, and Apple signing/notarization. Global contribution remains closed
175
- until its separate server-side verification and abuse-control gate passes.
189
+ validation, and Apple signing/notarization. Community Preview contribution is
190
+ open under the v2 consent/integrity boundary; verified global ranking remains
191
+ closed until its separate hardware-verification and abuse-control gate passes.