Skip to content

[INBOX][Practical OSS] SwiftSoup 2.9.6 · 离线 HTML 资料阅读器 - #88

Draft
Righteous1776 wants to merge 12 commits into
mainfrom
agent-drop/practical-swiftsoup-html-20261025
Draft

Righteous1776 wants to merge 12 commits into
mainfrom
agent-drop/practical-swiftsoup-html-20261025

Conversation

@Righteous1776

Copy link
Copy Markdown
Owner

Practical OSS R2: one useful offline file workflow

Base main: 501ef814a0a9bea41419fe2d9f48315371b30320. Inbox: AGENT_INBOX/submissions/practical-html-agent/20261025-swiftsoup-html-reader/. This PR modifies only its own Inbox folder.

Full source staged under FILES/

  • VeilHTMLImportPolicy.swift: 512 KiB HTML source cap, UTF-8 / BOM UTF-16, 100k text-character cap, 400 sections, 40 inert links and 100 live search results; blocks unsafe schemes/credentials and auto-opening.
  • VeilOfflineHTMLImporter.swift: parses explicitly selected, security-scoped local Files HTML through SwiftSoup; removes active content and non-article DOM; extracts only plain text, article title and vetted URL strings; no WKWebView and no database writes.
  • VeilOfflineHTMLReaderView.swift: SwiftUI file importer, background parsing, local search, manual copy via existing VeilToolClipboard; task invalidation on dismissal; no network action.
  • Two XCTest source suites (7 policy tests run, 4 parser tests authored but not run). All three source blobs independently match corresponding local build sources byte-for-byte.
  • PATCH.diff: XcodeGen SPM pin SwiftSoup exactVersion: 2.9.6 for app, plus one ToolCenter navigation card. Two existing files/three hunks; original contexts and counts verified against exact base main. Project code untouched.

Verified third-party provenance

Upstream SwiftSoup 2.9.6 official Package.swift: Swift tools 5.9, iOS 13+, zero external package dependencies, MIT. Latest 2.14.3 requires Swift 6.0, not an appropriate direct pin for current Build61 Swift5.9. Preserve upstream copyright/license in final distribution; no upstream source or binary vendored into this PR.

Validation

Independent Linux Swift 6.2.1 SwiftPM check in Swift package version 5.9: 7/7 policy XCTest passed. The SwiftSoup importer and UI Swift sources passed Swift parser syntax only. No remote package resolution, actual third-party parsing tests, Apple SDK typecheck, full iOS XCTest or physical iPhone 7 testing claimed.

Integration blockers

The prior CodeScanner PR #84 and various feature Agent lanes also propose project.yml and/or ToolCenterView.swift; Governor must consolidate manually. P0 iPhone7 touch/identity recovery #64–#66 must be stabilized first. No IPA Actions, main mutation, SQLite/Keychain/Wire v4 changes, merge or release.

Copy link
Copy Markdown
Owner Author

[AGENT-VALIDATION][R2-ZIP-DELIVERY][2026-10-25]

Companion complete candidate archive: VeilLink_Practical_SwiftSoup_HTML_R2_20261025.zip, SHA-256 2d5905d1e1910c959452cbeb0223cefb27ef52c3d3422917079c22ac7467a6d0, 9,392 bytes, seven members (3 Swift product sources, 2 XCTest files, source patch, README). All 3 original production-source ZIP blobs exactly equal the 3 staged GitHub FILES/ blobs:

  • VeilHTMLImportPolicy.swift: 814059da87e42e8e27cc8260237c156492beb701
  • VeilOfflineHTMLImporter.swift: 04af285a072b65c8ad8fa51e6f804167f7ed6f8f
  • VeilOfflineHTMLReaderView.swift: 2478cdf2415b62fbc89021d5adea78cf768ea7de

7 Linux SwiftPM policy XCTest PASS, 4 actual SwiftSoup parsing XCTest authored but not executed. Original main unchanged, no IPA Action. Governor must run full iOS 15 XcodeGen compilation/SwiftSoup resolve and iPhone7 testing before integration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant