Releases: PATILYASHH/NFCC
v1.5.5 — APK build fix
v1.5.4's Android build failed in CI on a misnamed framework constant. Same feature set as v1.5.4 (YouTube progress, browser URL accuracy, WhatsApp search prefill); just the build fix on top.
v1.5.4 — YouTube progress + WhatsApp search prefill
Three fidelity issues fixed:
YouTube progress now actually carries over
PlaybackState.position only records where playback was at the last state update. YouTube sets state once on play, then again on transitions — so a video playing for 30s with no transitions reports position=0. We were faithfully shipping &t=0s. Now we live-correct by adding (now - lastPositionUpdateTime) × playbackSpeed, so the URL we send the PC always reflects the actual current frame.
The capture path also now tries METADATA_KEY_MEDIA_URI → MEDIA_ID → DISPLAY_DESCRIPTION in order, since ReVanced and YT Music sometimes leave MEDIA_URI empty but populate the others. The URL normalizer accepts bare 11-char video IDs too.
Browser handoff captures the right URL
Chrome's omnibox shows just the host while not focused, but the full URL is in the node's contentDescription for screen readers. Capture now reads both .text and .contentDescription on every browser-bar node and ranks candidates: https:// > http:// > domain+path > host-only. Tree-wide fallback uses the same scoring, so we pick the actual full URL even when several variants are visible on screen.
WhatsApp name-based chats now pre-fill search
Phone-number chats already opened directly via whatsapp://send?phone=N. For chat names like "Mom" or "Office Group" — which WhatsApp has no public deep link for — Smart Switch now opens WhatsApp Desktop, focuses search via Ctrl+F, and pastes the chat name. One Enter press lands you in that conversation. Drafts continue to auto-paste once you're inside.
v1.5.3 — App Scanner accuracy
Audit pass over v1.5.2 caught two paper-cuts:
- App Scanner false positives: payloads with generic last-segment package names (
com.unknown.app) were substring-matching apps like Xbox PC App via the candidate 'app'. The scanner now filters out a deny-list of generic Android-package segments (app,main,client,service,helper,mobile, …) before they reach the lookup, requires ≥4 chars, and still resolves real candidates likeanydeskcleanly. - Unhelpful fallback errors: when no PC app could be resolved for a Smart Switch payload, the error said 'No PC equivalent' with no path forward. The handoff now points users directly at the App Scanner dashboard panel:
No PC app mapped for 'anydesk' (Android pkg: com.anydesk.anydeskandroid). Open the dashboard → App Scanner → search and click Map.
Both phone APK and PC EXE rebuilt by CI.
v1.5.2 — App Scanner + WhatsApp Desktop
Two real production failures fixed, plus the user-requested App Scanner.
PC App Scanner (new)
Open the dashboard (http://localhost:8877) → scroll to the new App Scanner card.
- Scans Start Menu shortcuts, App Paths registry, Scoop, Chocolatey, per-user Programs, Microsoft Store shims. Found ~150 apps on a dev machine in under a second.
- Search as you type. Each row shows the source (StartMenu / Scoop / AppPaths / …).
- Map any app to a phone Android package — pins it to that package via Smart Switch's mapping table, persists to
~/.nfcc/mappings.json. Next tap on a tag while that app is foregrounded → PC launches the right binary directly. - Add manually for portable / unlisted .exes the scanner can't see.
- Smart Switch now consults the scanner automatically when the static alias table doesn't cover a phone app — fixes
No PC equivalent for 'anydesk'-style failures.
WhatsApp → Desktop, not Web
smartSwitch to a WhatsApp tag now opens WhatsApp Desktop via the whatsapp: protocol handler when Windows has it registered. Detection covers HKCR / HKCU / HKLM registry roots and AssocQueryString — handles Microsoft Store / UWP installs that hide the protocol from the legacy paths. If our probes can't see the install, set force_desktop: true in the WhatsApp mapping (Mappings panel) to skip detection. Web is the silent fallback.
Update
Pull the new APK + EXE from the assets below once CI finishes (~8 min APK, ~1 min EXE).
v1.5.1 — Smart Switch + audio fixes
Bug-fix release. Three real failures spotted in the production action log are now fixed:
Fixed
toggleMutecrashed with'AudioDevice' object has no attribute 'Activate'. Replaced with the OS volume-mute keypress so it works on every pycaw version, including the wheels whereAudioUtilities.GetSpeakers()returns a wrapper instead of the raw COM device.setVolumegot a similar cross-version helper plus a key-nudge fallback.- Smart Switch — Browser handoff missing URL. When Chrome's omnibox was scrolled off-screen at tap time, the accessibility cache was being wiped to
null. The cache now preserves the last good URL for the same package, plus a fresh on-demand scrape and a tree-wide URL-shaped-text scan as a last-resort fallback. PC side also degrades gracefully — opens the default browser instead of erroring when no URL was captured. - Smart Switch — No PC equivalent for 'rvx music'. ReVanced YT Music packages (
app.revanced.android.apps.youtube.music,app.rvx.android.apps.youtube.music) now route through the YouTube media pipeline. URLs are kept onmusic.youtube.comso the desktop YT Music PWA picks them up.
Update
Pull the latest APK and Windows EXE from the assets below. CI builds attach in a couple of minutes.
v1.5.0 — Smart Switch
Smart Switch — phone-to-PC handoff
Tap a Smart Switch tag and your PC picks up exactly what your phone was doing.
What gets handed off
| On phone | On PC |
|---|---|
| YouTube / YT Music / ReVanced YouTube at 2:42 | Same video at 2:42, regular youtube.com |
| Spotify track | Same track in Spotify Desktop (or Web), Spotify Connect handles position |
| Browser tab | Same URL in your default browser |
| WhatsApp chat with a typed draft | WhatsApp Web, focused on chat, draft auto-pastes |
| Telegram / Discord / Teams / Slack / Steam | Native desktop app launches |
| Instagram / X / TikTok / Netflix / Twitch / Reddit / LinkedIn / Gmail / Drive / Calendar / Keep | Web counterpart |
| Anything else | Best-effort: URL if available, else launch a PC app with the same name |
Foreground-first: WhatsApp on screen with Spotify playing in the background → WhatsApp wins.
Configurable on the PC
The PC dashboard (http://localhost:8877) gets a new Smart Switch Mappings panel — a JSON editor seeded with the defaults so you can override any phone-app-to-PC-action rule. Saved overrides live at ~/.nfcc/mappings.json.
Permissions (Android, one-time)
Smart Switch needs three: Accessibility, Usage Stats, Notification Listener. The first time you add a Smart Switch tag the app opens the matching system Settings pages; nothing else is gated, and Smart Switch falls back gracefully when a permission is missing.
Also in 1.5.0
- Edit-existing-routine no longer freezes: enabled SQLite foreign keys (sqflite ships them off, so
ON DELETE CASCADEwas a no-op), wrapped automation updates in transactions, stripped child PKs on re-insert so the same row never collides with a stale orphan. Save errors now surface as a SnackBar instead of a silent hang. - New automations start with an empty IF branch instead of an "Otherwise" branch that hid the condition picker.
CI builds the APK and Windows EXE and attaches them to this release in a couple of minutes — refresh the page.
NFCC 1.2.0
Pair once, stay paired. MIT licensed. No analytics, no ads, no tracking.
Highlights
Mobile
- Auto-reconnect to the last paired PC on every launch — no re-pairing after reboot, WiFi hop, or DHCP renewal. Pair once, then just open the app; the tray goes green within a couple of seconds.
PC Companion
- Multi-NIC discovery fix — if your PC has both Ethernet and Wi-Fi up, discovery now replies with the IP of the interface the phone's packet arrived on, not a random guess. No more "found but unreachable" pairings.
- Bulletproof service detach — closing the terminal, the browser tab, or the dashboard no longer kills the service. Windows
CREATE_BREAKAWAY_FROM_JOBmeans the tray survives its spawner. NFCC-PCtyped in any terminal opens the dashboard. If no service is running, one is spawned detached first.NFCC-PC health— tick-box diagnostic that verifies service, WebSocket, and autostart are all up in one command.- Silent Windows autostart via
pythonw.exe— no cmd window flash on login.
Web + F-Droid
- Landing page at https://nfcc-patilyashh.netlify.app refreshed with the v1.2 feature set + a GitHub Sponsors block.
- F-Droid RFP compliance: Fastlane metadata at repo root, Gradle 8.14 SHA-256 pinned, lock files committed, 4 real phone screenshots shipped.
Install
- Android: download `app-release.apk` below (attached by CI once the release build finishes).
- Windows companion: download `NFCC-Companion.exe` below.
- F-Droid: auto-update recipe picks this up automatically — see docs/FDROID.md.
Full changelog: v1.1.0...v1.2.0
NFCC 1.1.0
Feature release. MIT licensed. No analytics, no ads, no tracking.
Highlights
Mobile
- Rich Launch PC App picker — 22 presets (VS Code, Cursor, Chrome, Terminal, Explorer, Office, Discord, Telegram, Tally, …). Apps that accept an argument get a target field — one tap can open a specific folder in VS Code or a URL in Chrome.
- Write NFC tags from Tracker + TODO cards — stamps
NFCC_T:<id>/NFCC_D:<id>as NDEF so a tag re-pairs automatically on a fresh install. - Auto-reconnect survives WiFi hops and DHCP renewals — every third reconnect broadcasts UDP discovery and updates the stored PC IP/port.
- Samsung-Reminder-style time field on daily TODOs.
- New app icon + favicons across every surface; fixes icon rendering on the web preview.
- Branded UPI payment sheet with PhonePe / GPay / Paytm / BHIM / Amazon Pay logos.
PC Companion
NFCC-PCterminal command —serve,status,pair,dashboard,reconnect,forward,unforward,autostart,action.- Background-first lifecycle — tray is the only thing that keeps the process alive. Dashboard is opt-in; closing the browser tab never stops the service.
- Port fallback 9876–9886 if the primary port is busy.
- UPnP port forwarding via
NFCC-PC forwardfor cross-network access. - Windows autostart —
NFCC-PC autostart enableor the Start with Windows tray checkbox. - Reconnect from CLI or tray restarts network services in place.
Install
- Android: download
app-release.apkbelow. - Windows companion: download
NFCC-Companion.exebelow. - F-Droid: auto-update recipe picks this up — see docs/FDROID.md.
Full changelog: v1.0.0...v1.1.0
NFCC 1.0.0
First public release. MIT licensed. No analytics, no ads, no tracking.
Downloads (APK + Windows EXE) are attached below once the release-triggered builds finish — see the Actions tab.
- Android APK: app-release.apk
- Windows companion: NFCC-Companion.exe
- F-Droid submission: see docs/FDROID.md