This replaces the blocked history in PR #3 with one properly attributed, signed/DCO commit. The owner personally reviewed and approved PR #3 in the release session. **No file changes from the approved candidate:** bothbaee14f492ande605df62c4have exact Git treea85912cbad. Original PR #3 and its commits are preserved for review history. Historical commits were locally signed but GitHub reported no_user; protected merge checks those introduced commits even for squash merging. This commit resolves attribution without bypassing or weakening signature rules. The reader, Settings, themes, source highlighting/split, live reload, file associations, Print/PDF, About credits, toolbar/footer/editor fixes, user-first README/screenshots and developer guides are exactly the approved implementation. Stable/dev separation and protected Azure signing caller are unchanged. Evidence: - Approved treebaee14f/ CI38285775463 passes all checks. Downloaded focused29/29, published111/111, stable110/110 and dev110/110 TRXs have zero failures/skips. Core coverage100% lines/98.86% branches; actual update/restart/coexistence/default-preservation receipts verify. - New single-commit hooks, online workflow security, signing and DCO pass. GitHub must rerun all required checks on this commit; results are not copied across SHAs. - Live repository setup validates18 Actions-bound checks, with only fuzzing added and all prior protections preserved. - OpenSSF project15417 is now owner-reviewed and saved at70% under owner-confirmed CDLA-Permissive2.0. This is an in-progress assessment, not a passing badge. - Production CI OIDC and signed1.0/dev publication remain required; local representative signing is not CI proof. Substantial AI assistance: Codex (GPT-6). Supersedes PR #3. Release work remains tracked in #33. Closes #4, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #32, #34. Refs #1, #5, #30, #31, #33. Signed-off-by: James Maes <james@kof22.com> Co-authored-by: Codex GPT-6 <noreply@openai.com>
148 lines
5.4 KiB
JSON
148 lines
5.4 KiB
JSON
{
|
|
"version": 2,
|
|
"dependencies": {
|
|
"net10.0": {
|
|
"coverlet.collector": {
|
|
"type": "Direct",
|
|
"requested": "[10.1.0, )",
|
|
"resolved": "10.1.0",
|
|
"contentHash": "SlYCIHnBYxINSUpR75SiM5JEmnx11pqT+Ac/C/fUqTTA0dLPl9eYzmFXKKuxmQhL3ZdTQl4PBD3YdAxAauaKLQ=="
|
|
},
|
|
"Meziantou.Analyzer": {
|
|
"type": "Direct",
|
|
"requested": "[3.0.296, )",
|
|
"resolved": "3.0.296",
|
|
"contentHash": "1Yp/6OK/Ev66hE2YLe9UvIgtJrKOX/xvoGDe0UbdtuG2ZxUoDoyONdEn+HWCDuy02Mu8SmglHEd/9SGPrM1qYg=="
|
|
},
|
|
"Microsoft.NET.Test.Sdk": {
|
|
"type": "Direct",
|
|
"requested": "[18.10.1, )",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "SxCFvJE/2ltUQgCgv6+Ixagohw4sZc9hM7Wid2foaNM7paBscktoHLoRDz91fW8wbHG87Rg9Ku59/8PXumqUrA==",
|
|
"dependencies": {
|
|
"Microsoft.CodeCoverage": "18.10.1",
|
|
"Microsoft.TestPlatform.TestHost": "18.10.1"
|
|
}
|
|
},
|
|
"xunit": {
|
|
"type": "Direct",
|
|
"requested": "[2.9.3, )",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
|
|
"dependencies": {
|
|
"xunit.analyzers": "1.18.0",
|
|
"xunit.assert": "2.9.3",
|
|
"xunit.core": "[2.9.3]"
|
|
}
|
|
},
|
|
"xunit.runner.visualstudio": {
|
|
"type": "Direct",
|
|
"requested": "[4.0.0, )",
|
|
"resolved": "4.0.0",
|
|
"contentHash": "kzLFyBYUnoidpGOXvpNOfIo8C92gVgVR6X8ncHwhcrDYugiOut5rrhDkr0L3cWHd7J2pKXf6LgaeXoBBDlx1ag=="
|
|
},
|
|
"AngleSharp": {
|
|
"type": "Transitive",
|
|
"resolved": "1.7.2",
|
|
"contentHash": "r1rb5Qo/0KPzmP0nbSiXPDVfh4Ctu0B+y1RyyUq73g4sgAmEW7q10RDyTq2ZsILwtO9O2LAvMrUles7eD4zz1g=="
|
|
},
|
|
"AngleSharp.Css": {
|
|
"type": "Transitive",
|
|
"resolved": "1.0.2",
|
|
"contentHash": "XeBxh0h/73+MWFsGfeMwiK7xbzAK3YeHFdUIrMH1P90amIrDFD/vUDIrPlF3CixqaMH5MRIUvT6Ux+2zvhJ3SA==",
|
|
"dependencies": {
|
|
"AngleSharp": "[1.5.0, 2.0.0)"
|
|
}
|
|
},
|
|
"Microsoft.CodeCoverage": {
|
|
"type": "Transitive",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "tV7tCyp/t+DuwQugLkCeUN7NBFFB4fEGRPr0gkMQ2nQgAvQQjmGlZZi1dsLzbyoe/A0mbnKybmkIh8qhT9p4Zw=="
|
|
},
|
|
"Microsoft.TestPlatform.ObjectModel": {
|
|
"type": "Transitive",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "o+PuLDRVp1iwiVAPBADZItXgm9Ck23XtPhE4kZtZVi0uYnMiiz1Dx9Cjh75kJ+ijfqnORL3VOTOaQVKi0f/ixg=="
|
|
},
|
|
"Microsoft.TestPlatform.TestHost": {
|
|
"type": "Transitive",
|
|
"resolved": "18.10.1",
|
|
"contentHash": "KYz2omqkoz9E2mWa4fdgT+Ycie1wi5968EmyJlusjlp87RxxtA2FvDm8tcBEYIDzLnkWGnsKjE4d13Z7/rxkQA==",
|
|
"dependencies": {
|
|
"Microsoft.TestPlatform.ObjectModel": "18.10.1"
|
|
}
|
|
},
|
|
"xunit.abstractions": {
|
|
"type": "Transitive",
|
|
"resolved": "2.0.3",
|
|
"contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
|
|
},
|
|
"xunit.analyzers": {
|
|
"type": "Transitive",
|
|
"resolved": "1.18.0",
|
|
"contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
|
|
},
|
|
"xunit.assert": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
|
|
},
|
|
"xunit.core": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
|
|
"dependencies": {
|
|
"xunit.extensibility.core": "[2.9.3]",
|
|
"xunit.extensibility.execution": "[2.9.3]"
|
|
}
|
|
},
|
|
"xunit.extensibility.core": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
|
|
"dependencies": {
|
|
"xunit.abstractions": "2.0.3"
|
|
}
|
|
},
|
|
"xunit.extensibility.execution": {
|
|
"type": "Transitive",
|
|
"resolved": "2.9.3",
|
|
"contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
|
|
"dependencies": {
|
|
"xunit.extensibility.core": "[2.9.3]"
|
|
}
|
|
},
|
|
"markdownviewr.windows.core": {
|
|
"type": "Project",
|
|
"dependencies": {
|
|
"HtmlSanitizer": "[9.2.1039, )",
|
|
"KofTwentyTwo.AppKit": "[0.1.0, )",
|
|
"Markdig": "[1.4.0, )"
|
|
}
|
|
},
|
|
"HtmlSanitizer": {
|
|
"type": "CentralTransitive",
|
|
"requested": "[9.2.1039, )",
|
|
"resolved": "9.2.1039",
|
|
"contentHash": "PKxy1hYknAij8YlHCC2a9GSqzUd4bh3IvY+abJBvOH1FKcZpbyafEHtdFcXQBt12Y7hNPkNEOP6Qa7uKNSs/yA==",
|
|
"dependencies": {
|
|
"AngleSharp": "1.7.2",
|
|
"AngleSharp.Css": "1.0.2"
|
|
}
|
|
},
|
|
"KofTwentyTwo.AppKit": {
|
|
"type": "CentralTransitive",
|
|
"requested": "[0.1.0, )",
|
|
"resolved": "0.1.0",
|
|
"contentHash": "+ymM8DxPel+C527Cp7lrhhdu0xnGHb6fl4/5vAlzsd0iiyW8u+UiOfQl1paNxA26iQZTbxQ8fMLQsUnaOA8GcQ=="
|
|
},
|
|
"Markdig": {
|
|
"type": "CentralTransitive",
|
|
"requested": "[1.4.0, )",
|
|
"resolved": "1.4.0",
|
|
"contentHash": "lLhaiI/mNDTNzgLqnmknhf4LjgTqOAyjx5+GNz0X3AxYMxUhmFppF2WVMdER+SDqwhE5wUF1pzs/cuLwFxs7xA=="
|
|
}
|
|
}
|
|
}
|
|
}
|