MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能: - ✅ Categories/Series双视图管理(category_view.rs + import_markdown.rs) - ✅ FUSE Multi-Volume支持(tree_type参数) - ✅ SSH/SFTP/SCP/rsync协议完整实现(4042行) - ✅ NFS/SMB Module Phase 1-3完成 - ✅ Archive Module Phase 1-4完成(2916行) - ✅ Download Center API完整实现 - ✅ S3兼容API实现(560行) Git配置修正: - ✅ 删除错误origin(gitea.momentry.ddns.net) - ✅ 删除m5max128(指向机器名) - ✅ 设置origin = m5max128gitea.momentry.ddns.net/admin/markbase - ✅ 设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase 数据清理: - ✅ 删除38个临时SQLite(保留accusys.sqlite、demo.sqlite) - ✅ 删除.bak、test_*.bin、调试脚本等临时文件 - ✅ 删除临时目录(build/、download files/、raid_test/等) - ✅ 更新.gitignore排除临时文件 架构优化: - 52个文件修改,2434行新增,4739行删除 - Workspace成员整合(16个crate) - 数据库状态:accusys.sqlite保留(主demo测试) 远程同步: - ✅ 准备推送到m5max128gitea(远程Gitea) - ✅ 准备推送到m4minigitea(本地Gitea)
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>25F71</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>MarkBaseFS</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>com.accusys.markbase.fskitmodule</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.accusys.markbase.fskitmodule</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>MarkBaseFS FSKit Module</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>MacOSX</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0.0</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>25F70</string>
|
||||
<key>DTPlatformName</key>
|
||||
<string>macosx</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>26.5</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>25F70</string>
|
||||
<key>DTSDKName</key>
|
||||
<string>macosx26.5</string>
|
||||
<key>DTXcode</key>
|
||||
<string>2650</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>17F42</string>
|
||||
<key>EXAppExtensionAttributes</key>
|
||||
<dict>
|
||||
<key>EXExtensionPointIdentifier</key>
|
||||
<string>com.apple.fskit.fsmodule</string>
|
||||
<key>EXExtensionPrincipalClass</key>
|
||||
<string>MarkBaseFSModule</string>
|
||||
<key>FSMediaTypes</key>
|
||||
<dict/>
|
||||
<key>FSPersonalities</key>
|
||||
<dict/>
|
||||
<key>FSRequiresSecurityScopedPathURLResources</key>
|
||||
<false/>
|
||||
<key>FSShortName</key>
|
||||
<string>markbasefs</string>
|
||||
<key>FSSupportedSchemes</key>
|
||||
<array>
|
||||
<string>markbasefs</string>
|
||||
</array>
|
||||
<key>FSSupportsBlockResources</key>
|
||||
<false/>
|
||||
<key>FSSupportsGenericURLResources</key>
|
||||
<true/>
|
||||
<key>FSSupportsPathURLs</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>15.4</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.accusys.markbase.fskitmodule</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>MarkBaseFS FSKit Module</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>MarkBaseFS</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0.0</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>com.accusys.markbase.fskitmodule</string>
|
||||
<key>EXAppExtensionAttributes</key>
|
||||
<dict>
|
||||
<key>EXExtensionPointIdentifier</key>
|
||||
<string>com.apple.fskit.fsmodule</string>
|
||||
<key>EXExtensionPrincipalClass</key>
|
||||
<string>MarkBaseFSModule</string>
|
||||
<key>FSShortName</key>
|
||||
<string>markbasefs</string>
|
||||
<key>FSMediaTypes</key>
|
||||
<dict/>
|
||||
<key>FSPersonalities</key>
|
||||
<dict/>
|
||||
<key>FSSupportedSchemes</key>
|
||||
<array>
|
||||
<string>markbasefs</string>
|
||||
</array>
|
||||
<key>FSSupportsBlockResources</key>
|
||||
<false/>
|
||||
<key>FSSupportsGenericURLResources</key>
|
||||
<true/>
|
||||
<key>FSSupportsPathURLs</key>
|
||||
<false/>
|
||||
<key>FSRequiresSecurityScopedPathURLResources</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>15.4</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,61 @@
|
||||
import Foundation
|
||||
import FSKit
|
||||
|
||||
@available(macOS 15.4, *)
|
||||
public class MarkBaseFSModule: NSObject, FSUnaryFileSystemOperations, @unchecked Sendable {
|
||||
|
||||
// MarkBaseFS FSKit Module Entry Point
|
||||
// Implements FSUnaryFileSystemOperations protocol
|
||||
|
||||
public required override init() {
|
||||
super.init()
|
||||
print("MarkBaseFSModule initializing...")
|
||||
}
|
||||
|
||||
// MARK: - FSUnaryFileSystemOperations
|
||||
|
||||
public func probeResource(_ resource: FSResource, replyHandler: @escaping (FSProbeResult?, Error?) -> Void) {
|
||||
print("MarkBaseFSModule probeResource() called")
|
||||
|
||||
// Create probe result
|
||||
let result = FSProbeResult()
|
||||
result.matchResult = .usable
|
||||
|
||||
print(" - Resource probe complete: usable")
|
||||
|
||||
replyHandler(result, nil)
|
||||
}
|
||||
|
||||
public func loadResource(_ resource: FSResource, options: FSTaskOptions, replyHandler: @escaping (FSVolume?, Error?) -> Void) {
|
||||
print("MarkBaseFSModule loadResource() called")
|
||||
|
||||
// Create Volume.Identifier
|
||||
let volumeID = FSVolume.Identifier()
|
||||
|
||||
// Create Volume Name
|
||||
let volumeName = FSFileName(string: "MarkBaseFS")
|
||||
|
||||
// Create Volume (using MarkBaseFSVolumeFSKit)
|
||||
let volume = MarkBaseFSVolumeFSKit(volumeID: volumeID, volumeName: volumeName)
|
||||
|
||||
print(" - Volume created: \(volumeID.uuid)")
|
||||
|
||||
replyHandler(volume, nil)
|
||||
}
|
||||
|
||||
public func unloadResource(_ resource: FSResource, options: FSTaskOptions, replyHandler: @escaping (Error?) -> Void) {
|
||||
print("MarkBaseFSModule unloadResource() called")
|
||||
|
||||
print(" - Resource unloaded successfully")
|
||||
|
||||
replyHandler(nil)
|
||||
}
|
||||
|
||||
// MARK: - Optional Methods
|
||||
|
||||
public func didFinishLoading() {
|
||||
print("MarkBaseFSModule didFinishLoading() called")
|
||||
print(" - Module loaded by FSKit daemon")
|
||||
print(" - Ready to receive FSKit requests")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
import Foundation
|
||||
import FSKit
|
||||
|
||||
@available(macOS 15.4, *)
|
||||
public class MarkBaseFSVolumeFSKit: FSVolume, @unchecked Sendable {
|
||||
|
||||
// MarkBaseFS Volume (Simplified)
|
||||
// Implements FSVolume for FSKit Module
|
||||
|
||||
private var supportedCapabilities: FSVolume.SupportedCapabilities
|
||||
|
||||
public init(volumeID: FSVolume.Identifier, volumeName: FSFileName) {
|
||||
// Initialize supported capabilities
|
||||
self.supportedCapabilities = FSVolume.SupportedCapabilities()
|
||||
|
||||
// Configure supported capabilities
|
||||
supportedCapabilities.supportsPersistentObjectIDs = true
|
||||
supportedCapabilities.supportsSymbolicLinks = true
|
||||
supportedCapabilities.supportsHardLinks = true
|
||||
supportedCapabilities.supportsSparseFiles = true
|
||||
supportedCapabilities.supports2TBFiles = true
|
||||
|
||||
// Initialize FSVolume
|
||||
super.init(volumeID: volumeID, volumeName: volumeName)
|
||||
|
||||
print("MarkBaseFSVolumeFSKit initializing...")
|
||||
print(" - Volume ID: \(volumeID.uuid)")
|
||||
print(" - Volume Name: MarkBaseFS")
|
||||
}
|
||||
|
||||
// MARK: - FSVolume Properties
|
||||
|
||||
public var supportedVolumeCapabilities: FSVolume.SupportedCapabilities {
|
||||
return supportedCapabilities
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/Info.plist</key>
|
||||
<data>
|
||||
MorQJuzEpGXT4HttAfBQFrxfraI=
|
||||
</data>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/MarkBaseFSModule.swift</key>
|
||||
<data>
|
||||
onzcikiMin40bPuGuthdCG1gIRo=
|
||||
</data>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/MarkBaseFSVolume.swift</key>
|
||||
<data>
|
||||
P57gRn48tyPs0DNo7QK5rlWo2gs=
|
||||
</data>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/entitlements.plist</key>
|
||||
<data>
|
||||
hJx2QVQzL1bI9Owakvl5ZC+GL+g=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/Info.plist</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
zr1hYvu5iVcFOrO/QgM+Uj3vLezPInwjSEuAXv0c8eI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/MarkBaseFSModule.swift</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
RhpjkCcbRNJEWeXGIOOcQYOXhrYbCQ8pQZuHRZiZBVM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/MarkBaseFSVolume.swift</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
QMmCTjehwcvYUWvee26RFj3v5V0UnPXkQx240bfsKYY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/MarkBaseFS.xfskitmodule/entitlements.plist</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
welSYeJ3oySjKDmpg1McoShAUg2LlViq/bs5EgHQJ3Y=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^Resources/</key>
|
||||
<true/>
|
||||
<key>^Resources/.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Resources/Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||
<dict>
|
||||
<key>nested</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^Resources/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^Resources/.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Resources/Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^[^/]+$</key>
|
||||
<dict>
|
||||
<key>nested</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user