+445
@@ -0,0 +1,445 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"historyEvidence": [
|
||||
{
|
||||
"commit": "c5120669d2b86f417f6dbd8fc7e01eeafbcea3ab",
|
||||
"proves": "split storage and the generated ProxiFyre config shape"
|
||||
},
|
||||
{
|
||||
"commit": "e745633d91880b2f795fee2496d7fb4c35c54a38",
|
||||
"proves": "the later opportunistic generated-config bootstrap"
|
||||
},
|
||||
{
|
||||
"commit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"proves": "the historical component candidate roots"
|
||||
},
|
||||
{
|
||||
"commit": "dbba3806ccdc8c4792d59add359c7ade7fff1176",
|
||||
"proves": "the current app-adjacent component layout and strong ProxiFyre marker"
|
||||
}
|
||||
],
|
||||
"startup": {
|
||||
"canonicalSplitSourceFiles": [
|
||||
"config/profiles.json",
|
||||
"config/targets.json",
|
||||
"config/components.json",
|
||||
"config/local-singbox.json"
|
||||
],
|
||||
"generatedRecoverySource": "generated/proxifyre-app-config.json",
|
||||
"rules": {
|
||||
"currentMetadata": "no_op",
|
||||
"anySplitSourceExists": "adopt_split_without_generated_import",
|
||||
"allSplitSourcesAbsentAndOneSupportedGeneratedConfig": "import_once",
|
||||
"partialOrCorruptSplit": "recover_or_warn_without_generated_merge"
|
||||
}
|
||||
},
|
||||
"fixtures": [
|
||||
{
|
||||
"id": "proxifyre-generated",
|
||||
"status": "supported",
|
||||
"files": [
|
||||
"proxifyre-generated/app-config.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "proxifyre-unsupported",
|
||||
"status": "unsupported_preserve_original",
|
||||
"files": [
|
||||
"proxifyre-unsupported/app-config.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "proxifyre-real-sanitized",
|
||||
"status": "supported_structure_preserving_sanitized_sample",
|
||||
"files": [
|
||||
"proxifyre-real-sanitized/app-config.json"
|
||||
],
|
||||
"provenance": {
|
||||
"capturedAt": "2026-08-17",
|
||||
"source": "C:\\ProgramData\\ProxyWarden\\generated\\proxifyre-app-config.json on a pre-1.2 local installation",
|
||||
"sourceSha256": "078C3E74B96D26DF155229B2F6FD380F762550B0A3F863CE2E913F5B6493F710",
|
||||
"preserved": "root/proxy key sets, proxy count, app count and app value categories, protocol values, default flags and endpoint shape",
|
||||
"replaced": "all app names, filesystem paths, hostnames and ports"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "marker-formats",
|
||||
"status": "schema_evidence_only",
|
||||
"files": [
|
||||
"markers/install-proxyfier.marker.json",
|
||||
"markers/proxywarden-component.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "pre-1.2-split",
|
||||
"status": "adopt_without_generated_import",
|
||||
"files": [
|
||||
"pre-1.2-split/config/profiles.json",
|
||||
"pre-1.2-split/config/targets.json",
|
||||
"pre-1.2-split/config/components.json",
|
||||
"pre-1.2-split/config/local-singbox.json"
|
||||
]
|
||||
}
|
||||
],
|
||||
"proxifyreFieldMatrix": [
|
||||
{
|
||||
"id": "log-level-info",
|
||||
"jsonPath": "$.logLevel == Info",
|
||||
"outcome": "derived",
|
||||
"destination": "generator default Info",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "log-level-other",
|
||||
"jsonPath": "$.logLevel != Info",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "bypass-lan-true",
|
||||
"jsonPath": "$.bypassLan == true",
|
||||
"outcome": "derived",
|
||||
"destination": "generator default true",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "bypass-lan-other",
|
||||
"jsonPath": "$.bypassLan != true",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "proxies",
|
||||
"jsonPath": "$.proxies[*]",
|
||||
"outcome": "derived",
|
||||
"destination": "one enabled profile and target pair per entry",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "app-names",
|
||||
"jsonPath": "$.proxies[*].appNames[*]",
|
||||
"outcome": "canonical",
|
||||
"destination": "profiles[*].items; folder recursive is derived because the generated format cannot represent it",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "plain-endpoint",
|
||||
"jsonPath": "$.proxies[*].socks5ProxyEndpoint plain host:port",
|
||||
"outcome": "canonical",
|
||||
"destination": "targets[*].host and targets[*].port",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "endpoint-scheme-or-userinfo",
|
||||
"jsonPath": "$.proxies[*].socks5ProxyEndpoint with scheme, userinfo, missing port, or port 0",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "inline-uri-userinfo"
|
||||
},
|
||||
{
|
||||
"id": "protocol-tcp",
|
||||
"jsonPath": "$.proxies[*].supportedProtocols[*] == TCP",
|
||||
"outcome": "canonical",
|
||||
"destination": "profiles[*].protocols TCP",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "protocol-udp",
|
||||
"jsonPath": "$.proxies[*].supportedProtocols[*] == UDP",
|
||||
"outcome": "canonical",
|
||||
"destination": "profiles[*].protocols UDP",
|
||||
"coverage": "proxifyre-generated"
|
||||
},
|
||||
{
|
||||
"id": "protocol-other-or-empty",
|
||||
"jsonPath": "$.proxies[*].supportedProtocols empty or value other than TCP/UDP",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "credentials-userinfo",
|
||||
"jsonPath": "$.proxies[*].username/password/userinfo",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "tls",
|
||||
"jsonPath": "$.proxies[*].tls",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "address-family",
|
||||
"jsonPath": "$.proxies[*].addressFamily",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "unknown-root-key",
|
||||
"jsonPath": "$.* unknown root key",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
},
|
||||
{
|
||||
"id": "unknown-proxy-key",
|
||||
"jsonPath": "$.proxies[*].* unknown proxy key",
|
||||
"outcome": "unsupported",
|
||||
"coverage": "proxifyre-unsupported"
|
||||
}
|
||||
],
|
||||
"components": {
|
||||
"proxifyre": {
|
||||
"managedCurrentRootTemplate": "{controlAppDir}\\components\\ProxiFyre",
|
||||
"confirmedManagedLegacyDefaultRoots": [
|
||||
"C:\\Tools\\ProxiFyre"
|
||||
],
|
||||
"legacyCandidates": [
|
||||
{
|
||||
"path": "C:\\Tools\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/commands.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles%\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles(x86)%\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%LOCALAPPDATA%\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles%\\ProxyWarden\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "dbba3806ccdc8c4792d59add359c7ade7fff1176",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles(x86)%\\ProxyWarden\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "dbba3806ccdc8c4792d59add359c7ade7fff1176",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%LOCALAPPDATA%\\ProxyWarden\\ProxiFyre",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "dbba3806ccdc8c4792d59add359c7ade7fff1176",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
}
|
||||
],
|
||||
"managedLegacyClassificationRequires": [
|
||||
"exact allowlisted root",
|
||||
"ProxiFyre.exe exists at that root",
|
||||
"service PathName points to that exact executable",
|
||||
"binary matches a known bundled package identity"
|
||||
],
|
||||
"service": {
|
||||
"primaryName": "ProxiFyreService",
|
||||
"discoveryOnlyAliases": [
|
||||
"ProxiFyre"
|
||||
],
|
||||
"discoveryOnlyPathNameTemplate": "\"{root}\\ProxiFyre.exe\" --service",
|
||||
"autoCutoverPathNameTemplate": "\"{root}\\ProxiFyre.exe\" -displayname \"ProxiFyre Service\" -servicename \"ProxiFyreService\""
|
||||
},
|
||||
"autoCutover": {
|
||||
"decision": "automatic_proxifyre_2_2_1",
|
||||
"root": "C:\\Tools\\ProxiFyre",
|
||||
"versionValues": [
|
||||
"2.2.1",
|
||||
"2.2.1.0"
|
||||
],
|
||||
"packageManifest": [
|
||||
{
|
||||
"relativePath": "Newtonsoft.Json.dll",
|
||||
"size": 711952,
|
||||
"sha256": "e1e27af7b07eeedf5ce71a9255f0422816a6fc5849a483c6714e1b472044fa9d"
|
||||
},
|
||||
{
|
||||
"relativePath": "Newtonsoft.Json.xml",
|
||||
"size": 713541,
|
||||
"sha256": "79ee87d4ede8783461de05b93379d576f6e8575d4ab49359f15897a854b643c4"
|
||||
},
|
||||
{
|
||||
"relativePath": "NLog.config",
|
||||
"size": 382,
|
||||
"sha256": "06b8e52be9385e4e6a2f042f0d7ca3dd0b043378b455535299846b02fd19250d"
|
||||
},
|
||||
{
|
||||
"relativePath": "NLog.dll",
|
||||
"size": 940032,
|
||||
"sha256": "4b1d3cf9f1f3c4a6ead141243069162172e9ef48ba1a9bf4f7ccd618b8194b5c"
|
||||
},
|
||||
{
|
||||
"relativePath": "NLog.xml",
|
||||
"size": 1608606,
|
||||
"sha256": "6871374d682e75aff17de2a8626a75e9c75409516f5e7527e9d159c1de6831bb"
|
||||
},
|
||||
{
|
||||
"relativePath": "ProxiFyre.exe",
|
||||
"size": 35960,
|
||||
"sha256": "2a60a76480715fca52185163d7ac6d850d4b0abe4079b7d461d7d0fcb3f02d93"
|
||||
},
|
||||
{
|
||||
"relativePath": "ProxiFyre.exe.config",
|
||||
"size": 177,
|
||||
"sha256": "8403846edd2ee98fd53b351dbf8773951c8e30f4b04dd53676a7e7dfbd8930b0"
|
||||
},
|
||||
{
|
||||
"relativePath": "socksify.dll",
|
||||
"size": 1309184,
|
||||
"sha256": "940b22ae8e97ff575317cc4a6c20467ed2ff760d01c7b056d13fcb20e7043cbd"
|
||||
},
|
||||
{
|
||||
"relativePath": "Topshelf.dll",
|
||||
"size": 190464,
|
||||
"sha256": "bd70a5832124e36840452ff46e442efa0a09a4ceba842aea72c79b2d322d7fe8"
|
||||
},
|
||||
{
|
||||
"relativePath": "Topshelf.xml",
|
||||
"size": 80754,
|
||||
"sha256": "3b2228b3333c4fd86e29020bc2d77a5260dbf03e911829d6226498ade53c2790"
|
||||
}
|
||||
],
|
||||
"scmProfile": {
|
||||
"serviceType": "win32_own_process",
|
||||
"startType": "auto_start",
|
||||
"errorControl": "normal",
|
||||
"account": "LocalSystem",
|
||||
"displayName": "ProxiFyre Service",
|
||||
"description": "ProxiFyre - SOCKS5 ProxiFyre Service",
|
||||
"dependencies": [],
|
||||
"loadOrderGroup": null,
|
||||
"failureActions": [],
|
||||
"failureActionsOnNonCrash": false,
|
||||
"delayedAutoStart": false,
|
||||
"sidType": "none",
|
||||
"requiredPrivileges": [],
|
||||
"triggers": [],
|
||||
"untrustedMutationRights": false
|
||||
},
|
||||
"allOtherDiscoveryCandidates": {
|
||||
"decision": "manual_migration_required",
|
||||
"mutationPlan": []
|
||||
}
|
||||
},
|
||||
"markers": {
|
||||
"managedLegacyRoot": "none",
|
||||
"weakStandaloneScriptHint": {
|
||||
"file": "install-proxyfier.marker.json",
|
||||
"fields": [
|
||||
"component",
|
||||
"packagePath",
|
||||
"serviceName",
|
||||
"installedAt"
|
||||
],
|
||||
"ownershipProof": false
|
||||
},
|
||||
"managedCurrent": {
|
||||
"file": "proxywarden-component.json",
|
||||
"requiredValues": {
|
||||
"manager": "ProxyWarden",
|
||||
"component": "proxifyre",
|
||||
"serviceName": "ProxiFyreService"
|
||||
},
|
||||
"rootField": "installRoot",
|
||||
"packetFilterOwnershipField": "packetFilterInstalledByProxyWarden"
|
||||
}
|
||||
}
|
||||
},
|
||||
"singbox": {
|
||||
"managedCurrentRootTemplate": "{controlAppDir}\\components\\sing-box",
|
||||
"confirmedManagedLegacyDefaultRoots": [
|
||||
"C:\\Program Files\\ProxyWarden\\sing-box"
|
||||
],
|
||||
"legacyCandidates": [
|
||||
{
|
||||
"path": "C:\\Tools\\ProxyWarden\\sing-box",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles%\\ProxyWarden\\sing-box",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles(x86)%\\ProxyWarden\\sing-box",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%LOCALAPPDATA%\\ProxyWarden\\sing-box",
|
||||
"classificationBeforeIdentity": "candidate",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
}
|
||||
],
|
||||
"managedLegacyClassificationRequires": [
|
||||
"exact allowlisted root",
|
||||
"sing-box.exe and ProxyWardenSingBox.exe exist at that root",
|
||||
"service PathName points to that exact wrapper",
|
||||
"ProxyWardenSingBox.xml has matching id, executable, and config arguments",
|
||||
"binaries match known bundled package identities"
|
||||
],
|
||||
"foreignByDefaultCandidates": [
|
||||
{
|
||||
"path": "%ProgramFiles%\\sing-box",
|
||||
"classificationBeforeIdentity": "foreign",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%ProgramFiles(x86)%\\sing-box",
|
||||
"classificationBeforeIdentity": "foreign",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
},
|
||||
{
|
||||
"path": "%LOCALAPPDATA%\\sing-box",
|
||||
"classificationBeforeIdentity": "foreign",
|
||||
"evidenceCommit": "9fd0a8c0b9e8472aa8e9a983e6c07780f5236c4a",
|
||||
"evidenceFile": "src-tauri/src/component_detection.rs"
|
||||
}
|
||||
],
|
||||
"service": {
|
||||
"primaryName": "ProxyWardenSingBox",
|
||||
"pathNameTemplate": "\"{root}\\ProxyWardenSingBox.exe\"",
|
||||
"identityFiles": [
|
||||
"ProxyWardenSingBox.exe",
|
||||
"ProxyWardenSingBox.xml",
|
||||
"sing-box.exe"
|
||||
]
|
||||
},
|
||||
"markers": {
|
||||
"managedLegacyRoot": "none"
|
||||
},
|
||||
"autoCutover": {
|
||||
"decision": "manual_migration_required",
|
||||
"reason": "historical installer downloaded moving latest sing-box and WinSW-x64 without a frozen inner identity",
|
||||
"mutationPlan": []
|
||||
}
|
||||
}
|
||||
},
|
||||
"collisionPolicy": {
|
||||
"currentAndLegacy": "current_wins_orphan_untouched_manual",
|
||||
"multipleLegacyCandidates": "block_without_mutation",
|
||||
"sameServiceNameForeignPath": "ownership_mismatch_without_mutation"
|
||||
},
|
||||
"runningStatePolicy": {
|
||||
"running": "restore_running_after_success_or_rollback",
|
||||
"stopped": "keep_stopped_after_success_or_rollback",
|
||||
"pendingOrUnknown": "block_without_mutation"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user