Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
371 commits
Select commit Hold shift + click to select a range
460c89e
Run synthetic compute simulator tests in CI
xrpbanks Sep 19, 2026
d3c7273
Document bounded synthetic compute slice and next UI step
xrpbanks Sep 19, 2026
b578632
Record synthetic compute boundary in participation contract
xrpbanks Sep 19, 2026
8f1e88e
Assert synthetic compute remains disabled and bounded
xrpbanks Sep 19, 2026
1a7f5cb
Clarify participation start pause resume stop lifecycle
xrpbanks Sep 19, 2026
0bf8df1
Make storage and compute fully optional and independent
xrpbanks Sep 19, 2026
58ebcc0
Define grow-from-small participation architecture
xrpbanks Sep 19, 2026
9378bf1
Add optional participation control UI prototype
xrpbanks Sep 19, 2026
9ea600c
Add optional participation control UI prototype
xrpbanks Sep 19, 2026
5926eca
Add optional participation control UI prototype
xrpbanks Sep 19, 2026
8e48a04
Show zero-participation hosted fallback state
xrpbanks Sep 19, 2026
960150d
Style zero-node community capacity state
xrpbanks Sep 19, 2026
c81a1cd
Connect participation UI state to synthetic simulators
xrpbanks Sep 19, 2026
142791f
Connect participation UI state to synthetic simulators
xrpbanks Sep 19, 2026
4c6e073
Test participation UI simulator state matrix
xrpbanks Sep 19, 2026
261be9d
Add tested participation UI state machine
xrpbanks Sep 19, 2026
ac4f122
Add tested participation UI state machine
xrpbanks Sep 19, 2026
3420e06
Use explicit tested participation UI transitions
xrpbanks Sep 19, 2026
b271c04
Load participation controls as module
xrpbanks Sep 19, 2026
68c0b18
Run participation control state tests in CI
xrpbanks Sep 19, 2026
14bb70b
Add synthetic participation growth model
xrpbanks Sep 19, 2026
478af05
Add synthetic participation growth model
xrpbanks Sep 19, 2026
86ceeed
Test zero-to-community participation growth model
xrpbanks Sep 19, 2026
0fe94cc
Add volunteer node reliability and fallback simulation
xrpbanks Sep 19, 2026
d298d3e
Add volunteer node reliability and fallback simulation
xrpbanks Sep 19, 2026
8dcd7e9
Test volunteer churn pause resume and fallback behavior
xrpbanks Sep 19, 2026
30feddc
Add user-facing participation contribution summary
xrpbanks Sep 19, 2026
afa3068
Show personal contribution and local activity in prototype
xrpbanks Sep 19, 2026
6b6814c
Render personal contribution summary and activity
xrpbanks Sep 19, 2026
2e477ca
Style contribution summary and activity panel
xrpbanks Sep 19, 2026
cf7b994
Test user-facing contribution summary
xrpbanks Sep 19, 2026
cf771bc
Add synthetic community capacity preview states
xrpbanks Sep 19, 2026
70d65a0
Add clearly labelled synthetic community growth preview
xrpbanks Sep 19, 2026
43e1918
Render synthetic community growth states in prototype
xrpbanks Sep 19, 2026
e51250e
Test synthetic community capacity preview states
xrpbanks Sep 19, 2026
f7ecd5b
Style synthetic community growth preview controls
xrpbanks Sep 19, 2026
645de25
Add illustrative community growth stage visualization
xrpbanks Sep 19, 2026
df04bdb
Style illustrative community growth meter
xrpbanks Sep 19, 2026
6654483
Animate illustrative community growth stages
xrpbanks Sep 19, 2026
83c8790
Separate storage and compute participation lifecycles
xrpbanks Sep 19, 2026
0dfac7f
Test independent storage and compute pause resume flows
xrpbanks Sep 19, 2026
e6e60db
Fix storage adapter against bounded VolunteerNode API
xrpbanks Sep 19, 2026
9ceaeb2
Add independent storage lifecycle to participation state
xrpbanks Sep 19, 2026
654e0f4
Add storage lifecycle controls and accessible semantics
xrpbanks Sep 19, 2026
7a860d1
Wire independent storage lifecycle and safer UI updates
xrpbanks Sep 19, 2026
4037c7f
Test independent storage and compute UI lifecycles
xrpbanks Sep 19, 2026
aa7c417
Improve keyboard focus touch targets and mobile participation controls
xrpbanks Sep 19, 2026
7807930
Add accessibility and mobile regressions for participation lab
xrpbanks Sep 19, 2026
e303bc2
Preserve Gameverse starting character through future scaling
xrpbanks Sep 19, 2026
903c814
Keep product and starter identity stable while participation scales
xrpbanks Sep 19, 2026
a24661e
Add explicit storage stop and data release choices
xrpbanks Sep 19, 2026
6ea2bd1
Add explicit storage stop and data release choices
xrpbanks Sep 19, 2026
bf3b270
Test storage stop handoff and local delete choices
xrpbanks Sep 19, 2026
136f1fa
Add explicit post-stop storage data choice to UI state
xrpbanks Sep 19, 2026
10a9996
Expose optional storage data release choices
xrpbanks Sep 19, 2026
f09a8bf
Wire explicit storage release preference into prototype
xrpbanks Sep 19, 2026
7dc821e
Test explicit storage data release preference
xrpbanks Sep 19, 2026
b16d4f7
Style explicit storage release controls
xrpbanks Sep 19, 2026
f4702be
Cover storage release selector accessibility
xrpbanks Sep 19, 2026
6465791
Document participant-controlled storage release lifecycle
xrpbanks Sep 19, 2026
86c49f1
Add stable Gameverse starter character identity contract
xrpbanks Sep 19, 2026
4bcedd8
Implement starter character compatibility model
xrpbanks Sep 19, 2026
b85718c
Test starter character persistence across scaling
xrpbanks Sep 19, 2026
7790a78
Test starter character identity across infrastructure scaling
xrpbanks Sep 19, 2026
895c816
Fix participation UI state and storage release defaults
xrpbanks Sep 19, 2026
fde82f1
Connect storage stop choices to synthetic release lifecycle
xrpbanks Sep 19, 2026
bc00936
Test end-to-end storage stop and data release choices
xrpbanks Sep 19, 2026
e737885
Revoke contribution permissions before storage exit cleanup
xrpbanks Sep 19, 2026
7593932
Fix participation accessibility test syntax
xrpbanks Sep 19, 2026
b4e62af
Rewrite participation accessibility test cleanly
xrpbanks Sep 19, 2026
993f784
Keep food logging harness compatible with app entry copy
xrpbanks Sep 19, 2026
5b8d6ad
Update readiness test for profile schema revision
xrpbanks Sep 19, 2026
ec4c70e
Review body limits for identity profile routes
xrpbanks Sep 19, 2026
ea7609a
Review rate budgets for identity profile routes
xrpbanks Sep 19, 2026
2ff1c4e
Update workspace tab harness for account guide dependencies
xrpbanks Sep 19, 2026
26ce916
Validate showcase settlement network before typed use
xrpbanks Sep 19, 2026
ac2605a
Add conservative synthetic participant resource policy
xrpbanks Sep 19, 2026
6ca13b5
Test optional bandwidth battery Wi-Fi and idle limits
xrpbanks Sep 19, 2026
ca92a79
Define optional participation resource preference contract
xrpbanks Sep 19, 2026
a177673
Document conservative optional participant resource controls
xrpbanks Sep 19, 2026
2b5013b
Test participant resource preference policy in CI
xrpbanks Sep 19, 2026
33da44d
Add conservative advanced participation preferences to UI state
xrpbanks Sep 19, 2026
9360150
Add collapsed optional device and network preference panel
xrpbanks Sep 19, 2026
ca92c43
Wire advanced optional resource preferences into participation lab
xrpbanks Sep 19, 2026
8d9ba55
Style collapsed advanced participation preference panel
xrpbanks Sep 19, 2026
b53925e
Test conservative advanced participation preferences
xrpbanks Sep 19, 2026
e935893
Cover advanced participation controls in accessibility tests
xrpbanks Sep 19, 2026
e356343
Enforce advanced voluntary device and network policy in synthetic ada…
xrpbanks Sep 19, 2026
fd7e029
Test voluntary device bandwidth task class and auto-start policies
xrpbanks Sep 19, 2026
e22c003
Add complete synthetic voluntary participation lifecycle demo
xrpbanks Sep 19, 2026
0e10689
Test complete voluntary participation lifecycle end to end
xrpbanks Sep 19, 2026
e5620b6
Document complete voluntary participation lifecycle
xrpbanks Sep 19, 2026
84665bb
Keep storage release selector in sync after reset and exit
xrpbanks Sep 19, 2026
97b8136
Add first Gameverse ecosystem world contract
xrpbanks Sep 19, 2026
4fc0509
Add multilingual Gameverse starter world copy
xrpbanks Sep 19, 2026
c519462
Add Gameverse world helpers and progression rules
xrpbanks Sep 19, 2026
ae37121
Build first playable Calorie ecosystem Gameverse shell
xrpbanks Sep 19, 2026
9e2817c
Add Gameverse route
xrpbanks Sep 19, 2026
95432ac
Add CalorieApp to Gameverse ecosystem portal
xrpbanks Sep 19, 2026
741c3c8
Harden Gameverse locale copy typing
xrpbanks Sep 19, 2026
af09979
Use optimized Calorie logo in Gameverse shell
xrpbanks Sep 19, 2026
bb07177
Connect CalorieApp home to the Gameverse ecosystem
xrpbanks Sep 19, 2026
437fe0c
Style first playable Gameverse ecosystem world
xrpbanks Sep 19, 2026
616c637
Test first Gameverse ecosystem world invariants
xrpbanks Sep 19, 2026
73a98c1
Add world-connected creator gallery catalog
xrpbanks Sep 19, 2026
0a24d0b
Add multilingual creator gallery copy
xrpbanks Sep 19, 2026
d604943
Add age-aware Gallery ecosystem helpers and local drafts
xrpbanks Sep 19, 2026
0d706c0
Build world-connected creator Gallery ecosystem
xrpbanks Sep 19, 2026
fcd65a7
Add direct Gallery ecosystem route
xrpbanks Sep 19, 2026
b4feea4
Connect Gameverse Creator Gallery district to Gallery ecosystem
xrpbanks Sep 19, 2026
9aff499
Embed Creator Gallery preview inside Gameverse district
xrpbanks Sep 19, 2026
e444990
Style integrated Gameverse Creator Gallery ecosystem
xrpbanks Sep 19, 2026
6019286
Test integrated Gallery and Gameverse ecosystem boundaries
xrpbanks Sep 19, 2026
ad5f3f2
Surface local creator drafts back inside the Gameverse Gallery district
xrpbanks Sep 19, 2026
4108bbe
Style local Gallery drafts inside Gameverse preview
xrpbanks Sep 19, 2026
2f1206a
Test local Gallery drafts reappear inside Gameverse district
xrpbanks Sep 19, 2026
78e00c1
Bind local Gallery drafts to their age experience
xrpbanks Sep 19, 2026
66a81cd
Keep local Gallery drafts inside the matching age world
xrpbanks Sep 19, 2026
4a59c51
Render local Creator Gallery drafts as world display objects
xrpbanks Sep 19, 2026
e11c825
Show local Gallery creations as subtle Gameverse world objects
xrpbanks Sep 19, 2026
d397ad8
Test Gallery draft bridge into the matching Gameverse age world
xrpbanks Sep 19, 2026
f5d5ccc
Fix invalid escaped import newlines in Gameverse frontend
xrpbanks Sep 19, 2026
c0ebcaa
Fix invalid escaped import newlines in Gameverse frontend
xrpbanks Sep 19, 2026
dd465c3
Add first real Gameverse labyrinth route
xrpbanks Sep 19, 2026
6b3e384
Add deterministic Gameverse maze movement rules
xrpbanks Sep 19, 2026
8d28246
Codify open-world RPG and metaverse design lessons for Gameverse
xrpbanks Sep 19, 2026
0e874d4
Add multilingual Gameverse maze copy
xrpbanks Sep 19, 2026
4eafac4
Build playable Gameverse maze route
xrpbanks Sep 19, 2026
de8f21d
Add hidden post-maze misty ridge approach
xrpbanks Sep 19, 2026
ec0b2d4
Name the post-maze misty ridge in all launch languages
xrpbanks Sep 19, 2026
5b2df5b
Integrate playable maze and hidden misty ridge progression
xrpbanks Sep 19, 2026
5e58fb5
Style playable maze as part of the world route
xrpbanks Sep 19, 2026
89b19a7
Test playable maze route and hidden mountain approach
xrpbanks Sep 19, 2026
686b6dc
Use free-order landmark discoveries to unlock the maze
xrpbanks Sep 19, 2026
087e190
Make maze unlock depend on core ecosystem landmarks
xrpbanks Sep 19, 2026
63e3053
Add multilingual contextual core-route guidance
xrpbanks Sep 19, 2026
f3fff54
Type multilingual Gameverse core-route guidance
xrpbanks Sep 19, 2026
fe3aba2
Add contextual landmark route guidance without forcing order
xrpbanks Sep 19, 2026
2c0e975
Highlight optional core landmarks with subtle environmental guidance
xrpbanks Sep 19, 2026
0590e03
Lock Gameverse as one continuously evolving live world
xrpbanks Sep 19, 2026
dbac662
Encode persistent live-world continuity in Gameverse config
xrpbanks Sep 19, 2026
e7f4a46
Test persistent Gameverse live-world continuity
xrpbanks Sep 19, 2026
49c1ed5
Add zero-install browser participation runtime contract
xrpbanks Sep 19, 2026
39deabc
Make zero-install browser participation a network invariant
xrpbanks Sep 19, 2026
c5533fe
Lock Gameverse to zero-install link-first entry
xrpbanks Sep 19, 2026
ee5f0a8
Make node and validator participation zero-install from the same Game…
xrpbanks Sep 19, 2026
8a61d20
Require one shared zero-install entry for participants and non-partic…
xrpbanks Sep 19, 2026
2fca2d9
Use one zero-install Gameverse link for every visitor
xrpbanks Sep 19, 2026
f546b8b
Document same-link zero-install browser node and validator model
xrpbanks Sep 19, 2026
56921f9
Lock one-link zero-install Gameverse participation experience
xrpbanks Sep 19, 2026
986c217
Add shared voluntary participation preference for Gameverse and Gallery
xrpbanks Sep 19, 2026
1abd180
Add multilingual participation choice copy
xrpbanks Sep 19, 2026
283aa9b
Add shared opt-in participation choice inside Gameverse and Gallery
xrpbanks Sep 19, 2026
4f1c7a1
Fix shared Gallery draft storage key import
xrpbanks Sep 19, 2026
b4ee0c4
Offer optional participation inside the live Gameverse
xrpbanks Sep 19, 2026
333ccba
Use the same voluntary participation choice in Gallery
xrpbanks Sep 19, 2026
1cfd0a6
Make Gallery participation optional zero-install and shared with Game…
xrpbanks Sep 19, 2026
28b9eb6
Keep participation status language-neutral across all locales
xrpbanks Sep 19, 2026
926cae8
Style shared optional participation choice across Gameverse and Gallery
xrpbanks Sep 19, 2026
222914d
Test shared zero-install participation choice across Gameverse and Ga…
xrpbanks Sep 19, 2026
42ba846
Use Next links for internal Gameverse navigation
xrpbanks Sep 19, 2026
301a231
Use Next link for Gallery return navigation
xrpbanks Sep 19, 2026
d15f838
Use Next link for CalorieApp Gameverse portal
xrpbanks Sep 19, 2026
686bec1
Define Gameverse as a freedom-first player-driven world
xrpbanks Sep 19, 2026
5cbd87b
Encode freedom-first Gameverse principles
xrpbanks Sep 19, 2026
e0010bf
Test freedom-first Gameverse invariants
xrpbanks Sep 19, 2026
eaf9732
Make in-world participation controls compact until chosen
xrpbanks Sep 19, 2026
88b844c
Turn Participation Lodge into the full voluntary control location
xrpbanks Sep 19, 2026
d0eede4
Keep Gallery participation choice available but unobtrusive
xrpbanks Sep 19, 2026
cca0c1b
Polish unobtrusive in-world participation controls
xrpbanks Sep 19, 2026
184ecec
Name the living metaverse CalorieVerse across all locales
xrpbanks Sep 19, 2026
e184972
Use CalorieVerse as the public metaverse name
xrpbanks Sep 19, 2026
ce626ed
Bind CalorieVerse and CalorieApp to one Calorie ecosystem
xrpbanks Sep 19, 2026
ae526c7
Add Calorie ecosystem product-family naming contract
xrpbanks Sep 19, 2026
3ddbe29
Define CalorieVerse within the Calorie ecosystem product family
xrpbanks Sep 19, 2026
3876147
Test CalorieVerse and CalorieApp ecosystem naming
xrpbanks Sep 19, 2026
fa59a54
Update Gallery tests for shared local draft key and age-filtered drafts
xrpbanks Sep 19, 2026
76da033
Add optional interconnected CalorieVerse world interactions
xrpbanks Sep 19, 2026
feb93a0
Add multilingual copy for CalorieVerse world interactions
xrpbanks Sep 19, 2026
3379c90
Add local-first CalorieVerse interaction state and world effects
xrpbanks Sep 19, 2026
7a359be
Build optional contextual CalorieVerse interaction card
xrpbanks Sep 19, 2026
2517a53
Connect optional CalorieVerse interactions to persistent world effects
xrpbanks Sep 19, 2026
641f88f
Style optional CalorieVerse interactions and world responses
xrpbanks Sep 19, 2026
a605ba4
Test optional interconnected CalorieVerse world interactions
xrpbanks Sep 19, 2026
a0f3cfa
Document first optional interconnected CalorieVerse world systems
xrpbanks Sep 19, 2026
d435037
Add open ecosystem IP stewardship and sustainable funding plan
xrpbanks Sep 19, 2026
eea0db7
Add machine-readable open stewardship and funding boundary
xrpbanks Sep 19, 2026
8c95108
Separate open ecosystem building from official repository contributions
xrpbanks Sep 19, 2026
ac33d87
Record CalorieVerse trademark status and future stewardship boundary
xrpbanks Sep 19, 2026
48fccab
Add CalorieVerse and open ecosystem IP clearance gates
xrpbanks Sep 19, 2026
90d0543
Enforce open stewardship and funding legal boundaries in CI
xrpbanks Sep 19, 2026
8e687b5
Add premium digital, UGC platform and crypto launch review gates
xrpbanks Sep 19, 2026
57fc21b
Connect open ecosystem evolution to sustainable funding stewardship
xrpbanks Sep 19, 2026
76a0c99
Add CalorieVerse and Creator Gallery legal-readiness evidence register
xrpbanks Sep 19, 2026
1b6c4af
Bind CalorieVerse open-building to sustainable founder and ecosystem …
xrpbanks Sep 19, 2026
b948ecf
Rename the creator surface to CalorieStudio
xrpbanks Sep 19, 2026
5a0a817
Use CalorieStudio as the creator district name in CalorieVerse
xrpbanks Sep 19, 2026
58f434a
Define CalorieStudio as the native CalorieVerse creator surface
xrpbanks Sep 19, 2026
20587e9
Use CalorieStudio as the public creator surface name
xrpbanks Sep 19, 2026
55e8b23
Rename the creator product surface to CalorieStudio
xrpbanks Sep 19, 2026
f3b36af
Adopt CalorieStudio throughout the CalorieVerse master plan
xrpbanks Sep 19, 2026
d61438f
Use CalorieStudio in open stewardship and funding policy
xrpbanks Sep 19, 2026
7aa7740
Rename creator legal-readiness surface to CalorieStudio
xrpbanks Sep 19, 2026
5a935b9
Test CalorieStudio public naming with legacy route compatibility
xrpbanks Sep 19, 2026
1c59611
Test CalorieStudio naming and legacy Gallery compatibility
xrpbanks Sep 19, 2026
22814bd
Record CalorieStudio trademark status and clearance requirement
xrpbanks Sep 19, 2026
650a054
Rename creator funding surface to CalorieStudio
xrpbanks Sep 19, 2026
5d4b32f
Use CalorieStudio in commercial regulatory boundary
xrpbanks Sep 19, 2026
b0fb2e5
Enforce CalorieStudio naming in legal boundary checks
xrpbanks Sep 19, 2026
7ef7d6c
Add CalorieStudio as the public creator component
xrpbanks Sep 19, 2026
798b375
Keep legacy Creator Gallery component name as a compatibility alias
xrpbanks Sep 19, 2026
34edd1c
Add reusable CalorieStudio page surface
xrpbanks Sep 19, 2026
44f7aa1
Add canonical CalorieStudio route
xrpbanks Sep 19, 2026
34395e4
Keep the old Gallery route as a CalorieStudio compatibility entry
xrpbanks Sep 19, 2026
41574bb
Use CalorieStudio directly inside CalorieVerse
xrpbanks Sep 19, 2026
6e3ec3e
Make studio the canonical CalorieStudio route
xrpbanks Sep 19, 2026
2431f84
Set studio as canonical CalorieStudio route with Gallery compatibility
xrpbanks Sep 19, 2026
ec151c8
Test CalorieStudio canonical and legacy routes
xrpbanks Sep 19, 2026
08e4ca0
Test CalorieStudio canonical route and legacy Gallery compatibility
xrpbanks Sep 19, 2026
bc8747a
Document CalorieStudio canonical route and Gallery compatibility
xrpbanks Sep 19, 2026
95e5539
Use CalorieStudio in CalorieVerse interaction effects
xrpbanks Sep 19, 2026
0af89a6
Rename Gallery interaction copy to CalorieStudio in all locales
xrpbanks Sep 19, 2026
0c6c7ef
Update interaction test language to CalorieStudio
xrpbanks Sep 19, 2026
20b0e29
Stop overriding Next.js exact PostCSS dependency
xrpbanks Sep 19, 2026
a4d1d5f
Restore Next.js nested PostCSS dependency for a valid npm tree
xrpbanks Sep 19, 2026
6e24cb4
Add bounded free-roam movement rules for CalorieVerse
xrpbanks Sep 19, 2026
c36e331
Test CalorieVerse free-roam movement boundaries
xrpbanks Sep 19, 2026
b3f4a19
Add multilingual free-roam controls for CalorieVerse
xrpbanks Sep 19, 2026
d4cab54
Type CalorieVerse free-roam copy
xrpbanks Sep 19, 2026
5b4b35e
Add free-roam keyboard and touch movement to CalorieVerse
xrpbanks Sep 19, 2026
cbe4804
Style touch and keyboard free-roam controls in CalorieVerse
xrpbanks Sep 19, 2026
09457ec
Override only Next.js PostCSS to the patched release
xrpbanks Sep 19, 2026
d599d52
Deduplicate Next.js PostCSS onto the patched overridden dependency
xrpbanks Sep 19, 2026
8a7da2f
Add locked CalorieVerse idea continuity contract
xrpbanks Sep 19, 2026
d2ac945
Preserve the full Showcase-to-CalorieVerse idea history
xrpbanks Sep 19, 2026
98f1c3e
Link the master plan to the full CalorieVerse idea ledger
xrpbanks Sep 19, 2026
1c80b61
Test preservation of the full CalorieVerse idea continuity register
xrpbanks Sep 19, 2026
9676941
Add modular CalorieVerse food and beverage role-chain config
xrpbanks Sep 19, 2026
f73a14f
Add eleven-language F&B chain role copy
xrpbanks Sep 19, 2026
5d4731f
Add modular F&B chain role helpers and local progress
xrpbanks Sep 19, 2026
9912344
Build first modular F&B Chain World role selector
xrpbanks Sep 19, 2026
0d64db8
Connect the modular F&B Chain World to farm and food-data regions
xrpbanks Sep 19, 2026
253571e
Style the modular CalorieVerse F&B role chain
xrpbanks Sep 19, 2026
451374d
Test the modular CalorieVerse F&B Chain World
xrpbanks Sep 19, 2026
93b3dfa
Carry the signed-in CalorieApp nickname into adult CalorieVerse identity
xrpbanks Sep 19, 2026
5ecc153
Show CalorieApp nickname in CalorieVerse without exposing wallet iden…
xrpbanks Sep 19, 2026
afb1e7f
Style CalorieVerse nickname and stable starter identity together
xrpbanks Sep 19, 2026
f8711ee
Test CalorieApp nickname continuity inside CalorieVerse
xrpbanks Sep 19, 2026
84f8a43
Continue CalorieVerse meadow preview with additive food activity
xrpbanks Sep 21, 2026
3b1030b
Document reusable community chat foundation
xrpbanks Sep 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 24 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# CalorieApp project continuity

- Continue the existing checkpoint; never rebuild the CalorieVerse concept from
scratch. Read `docs/CALORIEVERSE_PREVIEW_CHECKPOINT.md` before changing it.
- Draft PR #150, branch `feat/participation-node-simulator`, continues from
`f8711ee1a7d3c6e43c300fc6b1123ebe0329ad44`. No merge or deployment is authorized
for this work. Keep the PR a draft; do not change live services or WordPress.
- `/gameverse/preview` is the small meadow review route. `/gameverse` retains
the larger existing draft with Studio, identity and participation integrations.
The extra route is a review boundary, not a second world or product version.
- CalorieVerse grows continuously: preserve the original world/starter IDs,
module IDs, storage keys and earned progress. Never require a player reset.
- Reuse the eleven-language display registry. Keep UI copy out of reducers.
- Content packs, pure activity reducers, rendering and persistence are separate.
Unknown module fields must survive; unsupported formats must not be overwritten.
- Ordinary play requires no account, wallet, storage contribution, compute role
or reward. Participation is separately opt-in, capped and reversible, with
independent storage/compute consent and pause/resume/full-stop controls.
- Local guest progress is untrusted and cannot authorize calT/CAL/XRP rewards.
Synthetic simulators are not an active network or settlement system.
- Never place private food logs, identity, credentials or age records in public
participant data. Preserve the existing private PostgreSQL boundary.
- Keep deferred architecture, publication and governance work in repository docs;
never store secrets or temporary chat credentials here.
53 changes: 30 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
python tools/sync_identity_contracts.py --check
python -m unittest tools.tests.test_identity_contracts
python -m unittest tools.tests.test_localization_contracts
python -m unittest tools.tests.test_build_total_review_package

- name: Test mobile, offline custody and tracked-secret guards
run: |
Expand All @@ -63,6 +64,17 @@ jobs:
python -m unittest tools.tests.test_offline_age_custody
python -m unittest tools.tests.test_tracked_secret_patterns

- name: Test local synthetic participation simulators
run: |
python -m unittest tools.tests.test_participation_simulator
python -m unittest tools.tests.test_participation_compute_simulator
python -m unittest tools.tests.test_participation_ui_adapter
python -m unittest tools.tests.test_participation_growth_simulator
python -m unittest tools.tests.test_participation_reliability_simulator
python -m unittest tools.tests.test_participation_data_release_simulator
python -m unittest tools.tests.test_participation_resource_policy
python -m unittest tools.tests.test_gameverse_character_identity

wordpress-plugin-release-check:
name: WordPress plugin release check
runs-on: ubuntu-latest
Expand All @@ -76,7 +88,10 @@ jobs:
run: find wordpress-plugins -type f -name '*.php' -print0 | xargs -0 -n1 php -l

- name: Validate standalone Site Style package
run: node --test tools/tests/wordpress_site_style_package.test.mjs tools/tests/wordpress_app_origin.test.mjs
run: node --test tools/tests/wordpress_site_style_package.test.mjs tools/tests/wordpress_app_origin.test.mjs tools/tests/wordpress_cookie_controls.test.mjs

- name: Test read-only Site Style review inventory
run: php tools/tests/wordpress_site_style_review.test.php

- name: Test legal footer compatibility
shell: bash
Expand Down Expand Up @@ -134,6 +149,11 @@ jobs:
- name: Build and inspect release archive
run: python tools/build_wordpress_plugin_release.py

- name: Build and verify Site Style release
run: |
python -m unittest tools.tests.test_build_site_style_release
python tools/build_site_style_release.py

backend-tests:
name: Backend tests (Python 3.11)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -304,34 +324,21 @@ jobs:
working-directory: frontend
run: npm ci

- name: Audit frontend production dependencies
- name: Audit frontend runtime and development dependencies
working-directory: frontend
run: npm audit --omit=dev --audit-level=critical
run: npm audit --audit-level=high

- name: Lint frontend
working-directory: frontend
run: npm run lint

- name: Test embedded login and private account controls
run: >-
node --test
tools/tests/auth_callback_return.test.mjs
tools/tests/account_data_import_ui.test.mjs
tools/tests/account_data_export_validation.test.mjs
tools/tests/account_erasure_ui.test.mjs
tools/tests/account_privacy_locales.test.mjs
tools/tests/account_privacy_display.test.mjs
tools/tests/display_language_protocol.test.mjs
tools/tests/display_language_ui.test.mjs
tools/tests/testnet_entry.test.mjs
tools/tests/backend_proxy_logout_fallback.test.mjs
tools/tests/backend_warmup_rate_limit.test.mjs
tools/tests/calorieapp_embed_readiness.test.mjs
tools/tests/food_logging_ui.test.mjs
tools/tests/food_search_deadline.test.mjs
tools/tests/identity_locales.test.mjs
tools/tests/xaman_logout_request.test.mjs
tools/tests/xaman_login_start_retry.test.mjs
- name: Test all frontend and WordPress user flows
# Discover new test files automatically so follow-up checks cannot be
# forgotten in a manually maintained list.
run: node --test tools/tests/*.test.mjs

- name: Test participation control state machine
run: node --test tools/tests/participation_lab_state.test.mjs

- name: Build frontend
working-directory: frontend
Expand Down
124 changes: 124 additions & 0 deletions .github/workflows/food-ux-isolated-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Food UX isolated check

on:
push:
branches: [repair/food-ux-integration-20260915]
pull_request:
branches: [herstel/vervolg-20260915]
paths:
- 'frontend/**'
- 'backend/app/**'
- 'backend/tests/**'
- 'wordpress-plugins/calorieapp-account-profile/**'
- 'backend/app/schemas.py'
- 'backend/app/services/open_food_facts.py'
- 'backend/tests/test_food_log_view.py'
- 'backend/tests/test_open_food_facts_normalization.py'
- 'tools/tests/**'
- 'tools/build_heading_repair_release.py'
- 'wordpress-plugins/calorietoken-heading-repair/**'
- '.github/workflows/food-ux-isolated-check.yml'

permissions:
contents: read

concurrency:
group: food-ux-isolated-${{ github.ref }}
cancel-in-progress: true

jobs:
verify:
runs-on: ubuntu-latest
timeout-minutes: 12
env:
NEXT_TELEMETRY_DISABLED: '1'
CI: 'true'
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: '22'
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Record the source under test
run: |
mkdir -p ux-check-evidence
git rev-parse HEAD > ux-check-evidence/verified-commit.txt
git rev-parse 'HEAD^{tree}' > ux-check-evidence/verified-tree.txt
git archive --format=tar.gz -o ux-check-evidence/verified-source.tar.gz HEAD
- name: Install locked dependencies and test tools
run: |
npm ci --prefix frontend --no-audit --no-fund
python -m pip install -r backend/requirements.txt 'playwright==1.57.0'
python -m playwright install --with-deps chromium
- name: Full regression suite and production build
shell: bash
run: |
set -euo pipefail
node --test tools/tests/*.test.mjs 2>&1 | tee ux-check-evidence/regressions.log
PYTHONPATH=backend python -m pytest -q \
backend/tests/test_account_profile.py \
backend/tests/test_account_data_export.py \
backend/tests/test_account_data_import.py \
backend/tests/test_account_erasure.py \
backend/tests/test_database.py \
backend/tests/test_identity_endpoints.py \
backend/tests/test_inactive_account_erasure_execution.py \
backend/tests/test_food_log_view.py \
backend/tests/test_open_food_facts_normalization.py \
2>&1 | tee ux-check-evidence/backend-food-tests.log
python -m unittest tools.tests.test_build_heading_repair_release 2>&1 | tee ux-check-evidence/heading-release-tests.log
find wordpress-plugins/calorietoken-heading-repair -type f -name '*.php' -print0 \
| xargs -0 -n1 php -l 2>&1 | tee ux-check-evidence/heading-php-lint.log
php -l wordpress-plugins/calorieapp-account-profile/calorieapp-account-profile.php
php wordpress-plugins/calorieapp-account-profile/tests/profile-test.php
python tools/build_heading_repair_release.py \
--output-dir ux-check-evidence/heading-release \
2>&1 | tee ux-check-evidence/heading-release.log
cd frontend
./node_modules/.bin/tsc --noEmit 2>&1 | tee ../ux-check-evidence/typecheck.log
npm run build 2>&1 | tee ../ux-check-evidence/build.log
- name: Production-browser check with synthetic backend only
shell: bash
run: |
set -euo pipefail
npm run start --prefix frontend -- --hostname 127.0.0.1 --port 3100 > ux-check-evidence/server.log 2>&1 &
server_pid=$!
trap 'kill "$server_pid" 2>/dev/null || true' EXIT
for i in $(seq 1 30); do curl --silent --fail http://127.0.0.1:3100/ > /dev/null && break; sleep 1; done
curl --silent --fail http://127.0.0.1:3100/ > /dev/null
# Collect every independent browser result even if one flow fails.
browser_failed=0
python tools/tests/browser_food_ux.py 2>&1 | tee ux-check-evidence/browser.log || browser_failed=1
python tools/tests/browser_account_profile.py 2>&1 | tee ux-check-evidence/account-profile-browser.log || browser_failed=1
python tools/tests/browser_account_guides.py 2>&1 | tee ux-check-evidence/account-guides-browser.log || browser_failed=1
HEADING_NUTRITION_EVIDENCE_DIR=ux-check-evidence/heading-nutrition-browser \
python tools/tests/browser_heading_nutrition.py \
2>&1 | tee ux-check-evidence/heading-nutrition-browser.log || browser_failed=1
test "$browser_failed" -eq 0
python - <<'PY'
import json
from pathlib import Path
profile=json.loads(Path('ux-check-evidence/account-profile-browser/report.json').read_text())
assert profile['status']=='passed' and not profile['errors'] and len(profile['checks'])>=40, profile
r=json.loads(Path('ux-check-evidence/browser/report.json').read_text())
assert r['status']=='passed' and not r['errors'], r
assert len(r['checks']) >= 55 and len(r['writes']) == 1, r
h=json.loads(Path('ux-check-evidence/heading-nutrition-browser/report.json').read_text())
assert h['status']=='passed' and not h['errors'], h
assert len(h['checks']) >= 57, h
a=json.loads(Path('ux-check-evidence/account-guides-browser/report.json').read_text())
assert a['status']=='passed' and not a['errors'] and not a['unexpected_requests'], a
assert len(a['checks']) >= 40 and a['faucet_requests']==1, a
PY
- name: Retain test evidence (no publication or deployment)
if: always()
uses: actions/upload-artifact@v4
with:
name: food-ux-browser-evidence
path: ux-check-evidence/
retention-days: 3
if-no-files-found: error
52 changes: 52 additions & 0 deletions .github/workflows/wordpress-content-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: WordPress content styling check
on:
push:
branches: [repair/food-ux-integration-20260915]
paths:
- 'wordpress-plugins/calorietoken-heading-repair/**'
- 'tools/tests/browser_wordpress_content.py'
- 'tools/tests/fixtures/wordpress-content/**'
- '.github/workflows/wordpress-content-check.yml'
pull_request:
branches: [herstel/vervolg-20260915]
paths:
- 'wordpress-plugins/calorietoken-heading-repair/**'
- 'tools/tests/browser_wordpress_content.py'
- 'tools/tests/fixtures/wordpress-content/**'
- '.github/workflows/wordpress-content-check.yml'
permissions:
contents: read
concurrency:
group: wordpress-content-${{ github.ref }}
cancel-in-progress: true
jobs:
verify:
runs-on: ubuntu-latest
timeout-minutes: 8
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install isolated browser tools
run: |
python -m pip install 'playwright==1.57.0'
python -m playwright install --with-deps chromium
- name: Verify package and render public-content fixtures
run: |
mkdir -p ux-check-evidence
git rev-parse HEAD > ux-check-evidence/verified-commit.txt
git rev-parse 'HEAD^{tree}' > ux-check-evidence/verified-tree.txt
php -l wordpress-plugins/calorietoken-heading-repair/calorietoken-heading-repair.php
python -m unittest tools.tests.test_build_heading_repair_release
python tools/build_heading_repair_release.py --output-dir ux-check-evidence/heading-release
python tools/tests/browser_wordpress_content.py
- name: Retain preview and verification evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: wordpress-content-style-evidence
path: ux-check-evidence/
retention-days: 5
16 changes: 16 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,22 @@ Do not submit code, documentation, designs, data, or other material unless you
have the right to do so and the project owner has agreed in writing to review
the contribution.

## Independent ecosystem projects

Building an independent compatible project is different from contributing code
to the official repository.

An independent project does not need prior operator approval merely to create
its own lawful implementation against public ecosystem interfaces, provided it
uses its own namespace/branding, respects applicable licences and third-party
rights, and does not claim official status or access private production state.

The official repository still has its own inbound contribution requirements
below. Open compatibility does not silently relicense official source code.

See `docs/ECOSYSTEM_OPEN_STEWARDSHIP_AND_FUNDING.md` and
`contracts/ecosystem/v2/open-stewardship-and-funding.json`.

## No implied acceptance or transfer

- Opening an issue or pull request does not mean a contribution is accepted.
Expand Down
26 changes: 26 additions & 0 deletions DATA_LICENSING.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,32 @@ The current frontend bundles three dated reference-food records from USDA FoodDa

The interface does not silently combine alternative energy methods, treat missing data as measured zero, or import these examples into a private diary. USDA reference provenance remains separate from Open Food Facts licensing and private user records. External names and marks retain their own rights.

## USDA search catalogue — live since 15 September 2026

The food-discovery continuation adds a separate, dated snapshot in
`frontend/public/data/usda-search-foods.json`: 363 Foundation records from April
2026 and 7,793 SR Legacy records from April 2018. It does not claim to cover all
FoodData Central collections. The original three-food reference remains intact.

The catalogue preserves FDC identifiers, English source descriptions, collection,
edition, nutrient units and original numeric precision. Its source manifest records
the original download URLs and archive SHA-256 values. The builder is
`tools/build_usda_search_catalog.py`; the catalogue is kept separate from OFF data.
FoodData Central's official [download page](https://fdc.nal.usda.gov/download-datasets/)
and [documentation](https://fdc.nal.usda.gov/data-documentation/) describe these
collections and reuse conditions.

The browser requests one fixed first-party catalogue file only after a USDA
search is submitted. Search matching then runs locally; no search phrase or
account identifier is sent to USDA. Opening a source link visits USDA separately.
Saving requires the existing explicit portion confirmation and authenticated
backend route. The diary entry retains the USDA source, FDC identifier and chosen
gram basis; it has no fabricated barcode or Nutri-Score.

Name-based alternatives help visitors inspect other records. They are not
personalised nutrition recommendations, allergen checks or claims of healthier
equivalence. The visitor must check the actual label, preparation and portion.

## User and identity data

Authentication identifiers and food logs are application data, not assets
Expand Down
20 changes: 20 additions & 0 deletions IP_CLEARANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,23 @@ This repository publishes reviewed application expression; it does not claim own
Contributions require documented provenance and compatible rights. Dependencies, datasets, images, names and marks retain their own licences and restrictions. Open Food Facts reuse must preserve the attribution and database-licence requirements described in `DATA_LICENSING.md`.

A fresh legal and technical review is required before adding financial execution, wallet custody, regulated claims, bulk datasets, biometric or health profiling, new branding, restrictive SDKs or copied third-party material. This document is an engineering boundary, not legal advice or a freedom-to-operate opinion.


## CalorieVerse / open ecosystem clearance gates

The proposed CalorieVerse name has not been declared cleared merely because no
obvious conflict appeared in a general web search. Before a commercial public
launch or filing, perform an exact trade-mark clearance search across the
relevant EUIPO/TMview/BOIP records, classes and similar names, and retain the
search evidence.

The long-term intention to let third parties build on ecosystem protocols does
not automatically change this repository's current licence. Existing code,
assets and documentation require a rights/provenance audit before they can be
placed into an open-licence manifest. Newly created protocol/SDK components may
use a recognised open-source licence only after the relevant rights holder has
approved that licence and the component is explicitly identified.

Creator-uploaded content needs its own production terms, rights warranty,
licence scope, notice/takedown process and moderation rules before public
hosting is enabled.
Loading
Loading