Reductive pass: remove non-core features - #329
Merged
Merged
Conversation
# Conflicts: # Sources/AppDelegate.swift # Sources/SettingsView.swift
# Conflicts: # Sources/SettingsView.swift
# Conflicts: # GhosttyTabs.xcodeproj/project.pbxproj
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Cuts Programa back to the features the README actually sells. The app no longer links the iroh transport, the release no longer ships remote daemon binaries, and CI no longer needs a Go toolchain. Every removal has a record under
docs/removed/with the commit to restore from and what we learned while the feature was in the app.Features dropped
Each of these was reachable by a user before this PR and is gone after it.
programa ssh user@host, the sidebar Reconnect/Disconnect items, theworkspace.remote.*socket commands, browser panes routing through the remote network, and theprogramad-remoteGo daemon with its six release assets. Workspaces are local only.surface.browser.design_mode.toggle).programa.sdefdictionary and scripting classes;osascriptcan no longer drive the app.code serve-web. The plain "Open Current Directory in VS Code" item still opens the desktop app.Not dropped, despite being on the list: browser developer tools. The inspector docking code is threaded through the browser portal classes, so it needs its own refactor (
docs/removed/browser-developer-tools.md).What stays: the built-in browser
The in-app browser and its automation API are untouched. This is the surface agents use to show work inside Programa, and it is worth stating how to reach it because it has been easy to confuse with the external browser:
programa browser open <url>creates a browser split in the caller's workspace;programa browser open-split <url>is the explicit split form. After that,programa browser snapshot,click,fill,eval,wait,screenshot, and the rest of thebrowser.*socket family (about 85 commands) drive that pane.PROGRAMA_DEFAULT_BROWSER/PROGRAMA_DEFAULT_BROWSER_BUNDLE_IDenvironment variables (plus theapp.browserssocket command) identify the system browser. Nothing in this PR changes that path.Summary for reviewers
scripts/*.test.jsand the threetests/*.shrelease tests pass with the new contract.BrowserAvailability, and prune 94 orphaned localization strings.Review order:
docs/removed/README.mdand the per-feature docs, thenSources/Workspace.swiftandSources/Panels/BrowserPanel.swift(the remote branches), then the release scripts underscripts/and.github/workflows/. The rest is deletion fallout.Test plan
test-e2e.ymlpasses; the removedtest_ssh_remote_*suites are gone, the tmux-compat and browser suites still run.workflow_dispatchonrelease.yml) uploads the four-asset payload.programa browser open https://example.comfrom a terminal inside the app opens a browser split andprograma browser snapshotreturns the page.