Skip to content

feat: add script to download and extract Obsidian mobile APK assets a… - #14

Closed
boldfernando wants to merge 2 commits into
MusiCode1:mainfrom
boldfernando:main
Closed

feat: add script to download and extract Obsidian mobile APK assets a…#14
boldfernando wants to merge 2 commits into
MusiCode1:mainfrom
boldfernando:main

Conversation

@boldfernando

Copy link
Copy Markdown

…nd implement Capacitor compatibility shim

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

boldfernando pushed a commit to boldfernando/obsidian-web that referenced this pull request Aug 6, 2026
…n against the clean bundle

Manual verification per brief §5 (DoD#3-MusiCode1#8, MusiCode1#10-MusiCode1#14), against the clean
bundle produced by Commit 2 (this is the first honest point to verify — the
previous, still-patched bundle would false-green even a broken bridge, per
§4's warning). No source changes were needed — the bridge worked correctly
on the first real-browser pass. Adds one artifact:

  src/client-mobile/test/platform-bridge-queue.selftest.html — same-turn
  candidate-queue ordering (DoD#12's "המקרה שבגללו התור קיים") and the
  §3.0/DoD#13 missing-__owPlatformOverrides fallback. Both are impossible to
  reproduce against the real app.js from outside (its own module-level code
  fires the real defineProperty('Platform', ...) call, so nothing can be
  injected ahead of it in the same turn) — matches the opfs-store.selftest.html
  pattern already used in this repo for DOM-only checks. 7/7 pass, run via
  Playwright/Chrome against the Node server.

Environment: Node server + Chrome (Playwright) both run inside the linux-gui
container against http://127.0.0.1:4000 — a real secure context (OPFS-safe,
brief §6 top testing risk), server vault at user-data/demo-vault opened via
POST /api/vaults/open.

Verified live (Chrome, real app.js, real webpack Platform export):
  DoD#3  window.app, vault.getName(), workspaceUp, getFiles().length: 4
  DoD#4  desktop layout: no is-mobile on body. mobile layout: is-mobile +
         is-phone present (screenshots: commit3-desktop-layout.png,
         commit3-mobile-layout.png)
  DoD#5  canSplit/canStackTabs/canDisplayRibbon/canPinSidebar consistent
         with isMobile in both layouts
  DoD#6  resizing across 600/900px dynamically updates isPhone/isTablet
         and their derived getters — confirms §3.2's "never lock these"
  DoD#7  Object.defineProperty and Element.prototype.addClass both native
         after full load, in every scenario below
  DoD#8  layout-mode desktop/mobile/auto all correct across reload, vault
         stays functional (4 files) through every switch
  DoD#11 EmulateMobile overrides an explicit layout-mode=desktop (§3.5
         precedence); is-mobile present, isMobileApp stays true, NO
         "emulate-mobile" body class (guard stays closed exactly as brief
         §3.5 predicts), no half-state; emulateMobile(false) reverts
         cleanly (screenshot: commit3-emulate-mobile.png)
  DoD#12 re-arm case (brief §5 DoD#12 first bullet) verified against the
         live app: a fake Platform candidate injected immediately after
         the bridge installs (before the real webpack export runs) is
         rejected, and the real Platform is still captured correctly —
         app loads fully afterward. Same-turn case → see the new selftest.
  DoD#13 exercised in the new selftest (missing overrides in a live app
         can't be produced — boot.js always sets them)
  DoD#14 window.__owPlatform exposed; obsidian-web-layout (main.js:65)
         correctly detects it and its ribbon/menu work end-to-end
         (screenshot: commit3-layout-switcher-menu.png)

DoD#9 (regression, src/client-mobile): 71/71 green, unchanged by this
commit (no source touched).

DoD#15 (visual disable of the layout switcher during emulation) is
deliberately NOT covered here — that code doesn't exist yet; it's the next
commit.

Aside (out of scope, noted for awareness, not fixed here): the Node
server's fast-boot cache (api/bootstrap.js) doesn't apply system-plugins.js'
community-plugins.json merge the way api/fs.js's /read route does, so a
freshly-opened server vault needs one manual enablePluginAndSave() call
before obsidian-web-layout auto-loads on a cold reload. Unrelated to
Platform capture; a pre-existing gap in the bootstrap cache, not introduced
by this slice.
boldfernando pushed a commit to boldfernando/obsidian-web that referenced this pull request Aug 6, 2026
DoD#0/MusiCode1#1/MusiCode1#3/MusiCode1#4/MusiCode1#7/MusiCode1#8/MusiCode1#9/MusiCode1#11/MusiCode1#12/MusiCode1#13/MusiCode1#14 אומתו לייב (Chromium, Node
runtime-server, secure context). DoD#5 נדחה במכוון לאחרי Commit 7 (חטיפת-קליק
עדיין קיימת). fileCount=0 ב-DoD#2 — מקומי בלבד (example-vault.json רק ב-CF
build), לא רגרסיה. "A network error occurred"×8 — נמדד גם במובייל, רעש
קיים-מראש של סביבת-הבדיקה, לא קשור לסלייס. אין שינויי קוד — אימות בלבד.

docs/plans/desktop-layout-now.md §6 Commit 6

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
boldfernando pushed a commit to boldfernando/obsidian-web that referenced this pull request Aug 6, 2026
scripts/guard-deploy-target.sh <main|demo> [artifact-dir]: בודק index.html
מול העוגן "demoVault":{"enabled":true (עם שם המפתח — אביגיל ממצא 4, בלעדיו
"enabled":true לבדו false-positive על הארטיפקט הראשי דרך plugins.
obsidian-web-layout). mismatch = exit 1 + הודעה מפורשת.

package.json: build:demo (הסניפט מהבריף) + predeploy/predeploy:demo
(build+guard, npm pre-hook אוטומטי) + deploy/deploy:demo מצומצמים ל-
wrangler deploy בלבד — כדי שהשומר תמיד יבדוק ארטיפקט טרי, לא שאריות.

5 טסטים חדשים לשומר (bun test 39/39). README: טבלת שני הפרופילים + תיעוד
השומר + הבהרה שטופולוגיית היעד (wrangler.toml) לא נקבעה כאן.

בדיקות: npm run predeploy + predeploy:demo רצו בפועל (build+guard בלבד,
לא wrangler deploy האמיתי — לפי הבריף). npm test 96/96. DoD#2/MusiCode1#9/MusiCode1#12/MusiCode1#14
אומתו ידנית.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant