MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled

核心功能:
-  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:
Warren
2026-06-12 12:59:54 +08:00
parent 4cb7e80568
commit 1300a4e223
4559 changed files with 195840 additions and 4244 deletions

93
tools/MarkBaseInstaller.m Normal file
View File

@@ -0,0 +1,93 @@
#import <Cocoa/Cocoa.h>
#import <SystemExtensions/SystemExtensions.h>
@interface AppDelegate : NSObject <NSApplicationDelegate, OSSystemExtensionRequestDelegate>
@property NSButton *installButton;
@property NSTextField *statusLabel;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 200)
styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable
backing:NSBackingStoreBuffered defer:NO];
[window setTitle:@"MarkBaseFS Installer"];
[window center];
// Status label
self.statusLabel = [[NSTextField alloc] initWithFrame:NSMakeRect(20, 140, 360, 24)];
[self.statusLabel setStringValue:@"Ready to install MarkBaseFS System Extension"];
[self.statusLabel setBezeled:NO];
[self.statusLabel setDrawsBackground:NO];
[self.statusLabel setEditable:NO];
[[window contentView] addSubview:self.statusLabel];
// Install button
self.installButton = [[NSButton alloc] initWithFrame:NSMakeRect(150, 80, 100, 32)];
[self.installButton setTitle:@"Install"];
[self.installButton setBezelStyle:NSBezelStyleRounded];
[self.installButton setTarget:self];
[self.installButton setAction:@selector(installExtension:)];
[[window contentView] addSubview:self.installButton];
[window makeKeyAndOrderFront:nil];
}
- (void)installExtension:(id)sender {
[self.statusLabel setStringValue:@"Submitting installation request..."];
[self.installButton setEnabled:NO];
NSString *bundleID = @"com.momentry.markbase.fskit";
OSSystemExtensionRequest *request = [OSSystemExtensionRequest
activationRequestForExtensionWithIdentifier:bundleID
queue:[NSOperationQueue mainQueue]];
request.delegate = self;
[[OSSystemExtensionManager sharedManager] submitRequest:request];
NSLog(@"Installation request submitted for %@", bundleID);
}
- (void)request:(OSSystemExtensionRequest *)request didFinishWithResult:(OSSystemExtensionRequestResult)result {
[self.statusLabel setStringValue:@"✅ Installation succeeded!"];
NSLog(@"Installation succeeded: %ld", (long)result);
// Check installed extensions
[[OSSystemExtensionManager sharedManager] getSystemExtensionsWithCompletionHandler:
^(NSArray<OSSystemExtensionProperties *> *extensions) {
NSLog(@"Installed extensions: %@", extensions);
}];
}
- (void)request:(OSSystemExtensionRequest *)request didFailWithError:(NSError *)error {
[self.statusLabel setStringValue:@"❌ Installation failed"];
NSLog(@"Installation failed: %@ (Code: %ld)", error.localizedDescription, (long)error.code);
NSLog(@"Domain: %@", error.domain);
[self.installButton setEnabled:YES];
}
- (void)requestNeedsUserApproval:(OSSystemExtensionRequest *)request {
[self.statusLabel setStringValue:@"⚠️ Please approve in System Settings → Privacy & Security"];
NSLog(@"User approval required");
}
- (OSSystemExtensionReplacementAction)request:(OSSystemExtensionRequest *)request
actionForReplacingExtension:(OSSystemExtensionProperties *)existing
withExtension:(OSSystemExtensionProperties *)newExt {
NSLog(@"Replacing existing extension...");
return OSSystemExtensionReplacementActionReplace;
}
@end
int main(int argc, const char *argv[]) {
NSApplication *app = [NSApplication sharedApplication];
AppDelegate *delegate = [[AppDelegate alloc] init];
[app setDelegate:delegate];
[app run];
return 0;
}