SHIRE MOBILE 0.7.5 SENTINEL TRANSPLANT MAP ============================================================== Recovered installer: /SHiREVault/Backup/OSBackups/SHIRE-MOBILE-SENTINEL-HISTORY-RECOVERY-20260805T120410Z/actual-corrected-pixel-deployment.sh Recovered installer lines: 1028 Recovered installer bytes: 42135 Recovered installer versions: 0.7.3, 0.7.3-sentinel-mobile-alerts A. RECOVERED PAYLOAD CLASSIFICATION -------------------------------------------------------------- Payload 001: heredoc-001-line-00062-KOTLIN.txt Lines: 735 Bytes: 18890 Symbols: class SentinelMobileAlert, object SentinelMobileAlerts, fun initialise, fun ensureChannels, fun startLink, fun scheduleFallback, fun linkNotification, fun poll, fun fetchAlerts, fun approvedTailnetHost, fun isImportant, fun notifyAlert, fun trimSeen, fun pollDelay, fun linkNotificationId, class SentinelAlertLinkService, class SentinelAlertPollJobService, class SentinelAlertBootReceiver Target/path mentions: - none detected Feature indicators: - Android notification channel: yes - Runtime notification permission: yes - Persistent alert storage: yes - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: yes - Alert acknowledgement: no - Tailscale gateway address: no - MainActivity integration: no - Version downgrade reference: no First non-empty lines: package com.shire.mobile import android.Manifest import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.PendingIntent import android.app.Service import android.app.job.JobInfo import android.app.job.JobParameters import android.app.job.JobScheduler Payload 002: heredoc-002-line-00799-PY.txt Lines: 173 Bytes: 4144 Symbols: none detected Target/path mentions: - none detected Feature indicators: - Android notification channel: no - Runtime notification permission: yes - Persistent alert storage: no - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: no - Alert acknowledgement: no - Tailscale gateway address: no - MainActivity integration: yes - Version downgrade reference: yes First non-empty lines: from __future__ import annotations import pathlib import re import sys main_path = pathlib.Path(sys.argv[1]) manifest_path = pathlib.Path(sys.argv[2]) build_path = pathlib.Path(sys.argv[3]) main_text = main_path.read_text( encoding="utf-8", ) Payload 003: heredoc-003-line-00974-PY.txt Lines: 26 Bytes: 418 Symbols: none detected Target/path mentions: - none detected Feature indicators: - Android notification channel: no - Runtime notification permission: no - Persistent alert storage: no - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: no - Alert acknowledgement: no - Tailscale gateway address: no - MainActivity integration: no - Version downgrade reference: no First non-empty lines: from __future__ import annotations import pathlib import sys source = pathlib.Path(sys.argv[1]) target = pathlib.Path(sys.argv[2]) lines = source.read_text( encoding="utf-8", ).splitlines() output = [ line B. CURRENT 0.7.5 FILE STATE -------------------------------------------------------------- MainActivity.kt: /home/ray/ARMOR/apps/shire-mobile/app/src/main/java/com/shire/mobile/MainActivity.kt State: PRESENT Lines: 2159 Bytes: 67797 Symbols: class Skill, class ApprovalItem, class MainActivity, fun ShireMobileApp, fun recommendedApproval, fun FoldedCompanion, fun FoldCommandCentre, fun ModeSelector, fun ModeWorkspace, fun AppHeader, fun RealShireFace, fun CompactStatus, fun StatusChip, fun MainActionPanel, fun CurrentMissionCard, fun CurrentLearningCard, fun PersonalityAnimationControl, fun CommandCentreOverview, fun OverviewMetricRow, fun MetricCard, fun AcademySummaryCard, fun ApprovalSummaryCard, fun MiniAcademy, fun AcademyHero, fun SkillList, fun SkillDetail, fun LearningQueueCard, fun QueueLine, fun RecommendationCard, fun SystemGuardrailsCard, fun GuardrailLine, fun DetailLine, fun SectionLabel, fun LearnAndPrintDialog, fun ApprovalCentreDialog, fun ApprovalDetail Feature indicators: - Android notification channel: no - Runtime notification permission: no - Persistent alert storage: no - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: yes - Alert acknowledgement: no - Tailscale gateway address: no - MainActivity integration: yes - Version downgrade reference: no SentinelMobileAlerts.kt: /home/ray/ARMOR/apps/shire-mobile/app/src/main/java/com/shire/mobile/SentinelMobileAlerts.kt State: ABSENT AndroidManifest.xml: /home/ray/ARMOR/apps/shire-mobile/app/src/main/AndroidManifest.xml State: PRESENT Lines: 97 Bytes: 3357 Symbols: none detected Feature indicators: - Android notification channel: no - Runtime notification permission: yes - Persistent alert storage: no - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: yes - Alert acknowledgement: no - Tailscale gateway address: no - MainActivity integration: yes - Version downgrade reference: no build.gradle.kts: /home/ray/ARMOR/apps/shire-mobile/app/build.gradle.kts State: PRESENT Lines: 108 Bytes: 2856 Symbols: none detected Feature indicators: - Android notification channel: no - Runtime notification permission: no - Persistent alert storage: no - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: no - Alert acknowledgement: no - Tailscale gateway address: no - MainActivity integration: no - Version downgrade reference: no gradle.properties: /home/ray/ARMOR/apps/shire-mobile/gradle.properties State: PRESENT Lines: 7 Bytes: 306 Symbols: none detected Feature indicators: - Android notification channel: no - Runtime notification permission: no - Persistent alert storage: no - Gateway polling: no - Blocked-event state: no - Child/device identity: no - Attempt count: no - Category field: no - Alert acknowledgement: no - Tailscale gateway address: yes - MainActivity integration: no - Version downgrade reference: no C. TRANSPLANT DECISION MATRIX -------------------------------------------------------------- Android notification channel: old_073=true current_075=false action=TRANSPLANT_CANDIDATE Runtime notification permission: old_073=true current_075=true action=REVIEW_AND_PRESERVE_CURRENT Persistent alert storage: old_073=true current_075=false action=TRANSPLANT_CANDIDATE Gateway polling: old_073=false current_075=false action=NOT_PRESENT Blocked-event state: old_073=false current_075=false action=NOT_PRESENT Child/device identity: old_073=false current_075=false action=NOT_PRESENT Attempt count: old_073=false current_075=false action=NOT_PRESENT Category field: old_073=true current_075=true action=REVIEW_AND_PRESERVE_CURRENT Alert acknowledgement: old_073=false current_075=false action=NOT_PRESENT Tailscale gateway address: old_073=false current_075=true action=CURRENT_075_ONLY_PRESERVE MainActivity integration: old_073=true current_075=true action=REVIEW_AND_PRESERVE_CURRENT Version downgrade reference: old_073=true current_075=false action=TRANSPLANT_CANDIDATE D. REQUIRED SAFETY BEHAVIOUR CHECK -------------------------------------------------------------- child/profile identification: old_payload_hits=none current_075_hits=none device identification: old_payload_hits=none current_075_hits=none category: old_payload_hits=category current_075_hits=category event time: old_payload_hits=timestamp,time current_075_hits=time attempt count: old_payload_hits=none current_075_hits=none blocked status: old_payload_hits=none current_075_hits=none private-message exclusion: old_payload_hits=private message current_075_hits=none password exclusion: old_payload_hits=password,credential current_075_hits=none E. STATIC CONCLUSION -------------------------------------------------------------- Current SentinelMobileAlerts.kt is absent. A new isolated component may be introduced, but MainActivity must be patched minimally. The recovered 0.7.3 Gradle version changes must not be transplanted. The current 0.7.5 MainActivity must not be replaced wholesale. Gateway and Sentinel runtime changes require separate schema and compatibility validation before installation. No recovered payload was executed during this analysis.