Skip to content

Latest commit

 

History

History
86 lines (64 loc) · 6.95 KB

graphify-drift.md

File metadata and controls

86 lines (64 loc) · 6.95 KB

Graphify drift log

Last Graphify refresh: 2026-08-22 (evening) — bun run graphify:refresh:code from the AstraX workspace root.

Graph snapshot: 1896 nodes, 3362 edges, 169 communities (graphify-out/graph.json). New test files intMath.test.ts and mathModes.test.ts are indexed under the sessionSlice.ts community with edges to intMath.ts, calcController.ts (foldWord, applyEvaluate), and bitwiseController.ts.

Graphify indexes this app under radixel/ and links boot → settings → history → math/session flows correctly. The items below were documentation drifts (docs stale vs code). Fixed in the docs pass of the same date; this file is the audit trail.

Testing / math coverage (2026-08-22 evening)

Topic Old docs / state Current code + docs
Test count 95 tests in testing.md / verify gate 212 tests — intMath.test.ts (+44), mathModes.test.ts (+61), prior suite (+107)
Calc bases Only DEC + HEX scenarios in calcSession.test.ts; gaps listed as “acceptable” DEC / BIN / OCT / HEX covered in mathModes.test.ts
Word sizes Mostly 8-bit; 16-bit only in a few bitwise tests 8 / 16 / 32 / 64 signed overflow, unsigned wrap, bitwise ops per size
intMath.ts Implicit via controllers; no direct tests intMath.test.ts — mask, range, parse, display, copy format
Mixed-base / unary / Ans Listed as uncovered gaps Covered in mathModes.test.ts
Copy format “Not tested” formatCopyValue in intMath.test.ts; UI clipboard press still not mocked
folder-structure.md tests/ — “see testing.md” only Lists all 14 test files by name
architecture.md No testing section Testing + math correctness table added

Intentionally outside the math gate (not drift — documented in testing.md)

  • Clipboard button press in BaseRows.tsx (formatting logic is tested)
  • Corrupt AsyncStorage / save-failure toasts
  • Full CalculatorScreen / BitwiseScreen render smoke
  • Unmocked navigation stack integration

Boot and OTA

Topic Old docs Current code
Splash timing “1000ms” custom splash SPLASH_MIN_MS = 2500 in src/App.tsx
Cold start work syncOtaUpdate() only in App.tsx bootstrapApp() → syncOtaUpdate() then loadSettings() (src/shared/boot/bootstrapApp.ts)
Settings on launch “later” / not described loadSettings() applies defaultWordSize / defaultSigned to live session

Navigation and UI

Topic Old docs Current code
Settings “drawer (UI later)” Root native-stack → SettingsStackNavigator (Settings home + History child)
Calc / Bitwise “UI later” MainShellScreen + PagerView + full keypad / bit grid screens
History “FlashList (history later)” HistoryScreen with FlashList, AsyncStorage-backed entries

Persistence

Topic Old docs Current code
Settings storage “later” @radixel/settings/v1 via settingsStorage.ts + settingsSlice
History storage “later” @radixel/history/v1 via historyStorage.ts + historySlice

Store / manifest (2026-08-22 hardening)

Topic Old docs Current app.json
Android backup not stated android.allowBackup: false
Unused permissions not stated blockedPermissions for legacy storage + overlay
iOS export not stated ITSAppUsesNonExemptEncryption: false

OTA CDN

Topic Old docs Current state
Android 1.0.0 manifest “publish before launch” Exported locally; push to radixel-ota main for GitHub Pages
Publish default path Relative radixel-ota folder in script Use --out with a clone of github.com/Ax108/radixel-ota (see ota-self-host.md)

Graphify queries (orientation)

# Boot / settings
python -m graphify query "bootstrapApp loadSettings settingsStorage HistoryScreen"
python -m graphify path "bootstrapApp" "HistoryScreen"
python -m graphify explain "settingsSlice"

# Math / tests (post mode-matrix)
python -m graphify query "mathModes intMath foldWord applyEvaluate maskVal"
python -m graphify path "mathModes.test.ts" "foldWord"
python -m graphify path "intMath.test.ts" "foldWord"
python -m graphify explain "intMath"

Still manual (not code drift)

  • Play Console / App Store Connect listings, screenshots, Data safety forms
  • eas init / extra.eas.projectId if using EAS cloud builds
  • iOS archive requires macOS + Xcode