Files
dokril efda8eb98f
CI / Windows baseline (push) Canceled after 0s
Release v2.0.0
2026-09-10 20:59:52 +03:00

446 lines
15 KiB
JSON

{
"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"
}
}