Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions apps/macos/CodeVetter.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@
preferredProjectObjectVersion = 77;
productRefGroup = 8BC2655D2DEDD3F400F279A4 /* Products */;
packageReferences = (
8B90D1492DEDD44A00FBD189 /* XCLocalSwiftPackageReference "CodeVetterPackage" */,
8C6A50152DF0000100A11CE5 /* XCRemoteSwiftPackageReference "Sparkle" */,
);
projectDirPath = "";
Expand Down Expand Up @@ -347,6 +348,7 @@
/* Begin XCSwiftPackageProductDependency section */
8B90D1472DEDD44A00FBD189 /* CodeVetterFeature */ = {
isa = XCSwiftPackageProductDependency;
package = 8B90D1492DEDD44A00FBD189 /* XCLocalSwiftPackageReference "CodeVetterPackage" */;
productName = CodeVetterFeature;
};
8C6A50162DF0000100A11CE5 /* Sparkle */ = {
Expand All @@ -356,6 +358,13 @@
};
/* End XCSwiftPackageProductDependency section */

/* Begin XCLocalSwiftPackageReference section */
8B90D1492DEDD44A00FBD189 /* XCLocalSwiftPackageReference "CodeVetterPackage" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = CodeVetterPackage;
};
/* End XCLocalSwiftPackageReference section */

/* Begin XCRemoteSwiftPackageReference section */
8C6A50152DF0000100A11CE5 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
isa = XCRemoteSwiftPackageReference;
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 5 additions & 15 deletions apps/macos/CodeVetter/CodeVetterApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,11 @@ import SwiftUI
@MainActor
final class CodeVetterAppDelegate: NSObject, NSApplicationDelegate {
private static let retainedDelegate = CodeVetterAppDelegate()
private lazy var model = WorkbenchModel(
repositoryAccessStore: RepositoryAccessStore.standard,
usageSnapshotStore: usageSnapshotStore
)
private lazy var model = WorkbenchModel(repositoryAccessStore: RepositoryAccessStore.standard)
private let updater = NativeUpdaterController()
private let appHealth = CodeVetterAppHealth()
private var windowController: NSWindowController?

private var usageSnapshotStore: UsageSnapshotStore {
guard let path = launchValue(after: "--ui-test-usage-cache") else {
return UsageSnapshotStore()
}
return UsageSnapshotStore(directory: URL(fileURLWithPath: path, isDirectory: true))
}

static func main() {
let application = NSApplication.shared
application.setActivationPolicy(.regular)
Expand Down Expand Up @@ -70,7 +60,7 @@ final class CodeVetterAppDelegate: NSObject, NSApplicationDelegate {
if let sectionName = launchValue(after: "--ui-test-section"),
let section = WorkbenchSection.allCases.first(where: { $0.rawValue == sectionName })
{
model.section = section
model.section = section == .usage ? .repository : section
}
}

Expand Down Expand Up @@ -188,7 +178,7 @@ final class CodeVetterAppDelegate: NSObject, NSApplicationDelegate {
viewMenu.addItem(
makeMenuItem("Command Palette…", action: #selector(showCommandPalette), key: "k"))
viewMenu.addItem(.separator())
for (index, section) in WorkbenchSection.allCases.enumerated() {
for (index, section) in WorkbenchSection.navigationSections.enumerated() {
let item = makeMenuItem(
section.rawValue, action: #selector(showSection(_:)), key: String(index + 1))
item.tag = index
Expand Down Expand Up @@ -229,7 +219,7 @@ final class CodeVetterAppDelegate: NSObject, NSApplicationDelegate {
}

@objc private func showSection(_ sender: NSMenuItem) {
guard WorkbenchSection.allCases.indices.contains(sender.tag) else { return }
model.section = WorkbenchSection.allCases[sender.tag]
guard WorkbenchSection.navigationSections.indices.contains(sender.tag) else { return }
model.section = WorkbenchSection.navigationSections[sender.tag]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public struct EvidenceSidebarView: View {
.padding(.top, 14)
.padding(.bottom, 18)

navigationGroup("Workspace", sections: [.usage, .repository])
navigationGroup("Workspace", sections: [.repository])
navigationGroup("Verification", sections: [.review, .testing, .performance])
.padding(.top, 12)
navigationGroup("Evidence", sections: [.runs])
Expand Down Expand Up @@ -115,10 +115,9 @@ public struct EvidenceWorkbenchView: View {
VerifyView(model: model)
case .usage:
EmptyWorkbenchView(
title: "Usage",
message:
"Local agent usage, cost, quota, model, and activity views will transfer here without changing their provider boundaries.",
icon: "chart.bar.xaxis"
title: "Agent usage moved to ContextDaddy",
message: "CodeVetter keeps token and cost evidence for verification runs. ContextDaddy owns the general agent usage dashboard.",
icon: "arrow.up.right.square"
)
case .runs:
EmptyWorkbenchView(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ struct PremiumCommandPaletteView: View {

private var matches: [WorkbenchSection] {
let needle = query.trimmingCharacters(in: .whitespacesAndNewlines)
guard !needle.isEmpty else { return WorkbenchSection.allCases }
return WorkbenchSection.allCases.filter {
let sections = WorkbenchSection.navigationSections
guard !needle.isEmpty else { return sections }
return sections.filter {
$0.rawValue.localizedCaseInsensitiveContains(needle)
}
}
Expand Down Expand Up @@ -55,7 +56,7 @@ struct PremiumCommandPaletteView: View {
ContentUnavailableView(
"No matching workspace",
systemImage: "magnifyingglass",
description: Text("Try Usage, Review, Testing, Performance, Runs, or Settings.")
description: Text("Try Explore, Review, Testing, Performance, Runs, or Settings.")
)
.frame(minHeight: 220)
} else {
Expand Down Expand Up @@ -144,7 +145,7 @@ struct PremiumCommandPaletteView: View {

private func sectionPurpose(_ section: WorkbenchSection) -> String {
switch section {
case .usage: "Inspect local provider usage without inventing quota truth"
case .usage: "Agent usage is now in ContextDaddy"
case .repository: "Browse exact source, search code, and unpack repository structure"
case .review: "Plan and inspect execution-backed change verification"
case .testing: "Exercise changed behavior and preserve runtime evidence"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@ struct PremiumSettingsView: View {
PremiumFieldLabel("CODEX HISTORY RECOVERY")
Text("Additional Codex homes").font(.system(size: 15, weight: .semibold))
Text(
"Restore sessions outside the active CODEX_HOME. Rust normalizes, bounds, and deduplicates roots before Usage or reconciliation can consume them."
"Restore sessions outside the active CODEX_HOME. Rust normalizes, bounds, and deduplicates roots for local evidence recovery."
)
.font(.system(size: 10))
.foregroundStyle(.secondary)
Expand Down Expand Up @@ -973,7 +973,7 @@ struct PremiumSettingsView: View {
}

Label(
"Adding or removing a root never reads or deletes transcript content. Reconcile from Usage when ready.",
"Adding or removing a root never reads or deletes transcript content. Reconcile the local evidence archive separately when ready.",
systemImage: "lock.shield.fill"
)
.font(.system(size: 10))
Expand Down
Loading
Loading