thebaselab/codeapp
58.4
Adequate · 30 September 2026
23k
lines of production code
Swift
primary language
2
measurements over time
What this system is
This system is a mobile code editor application for iOS that provides a comprehensive environment for writing, editing, and executing code across multiple languages. It features a modular architecture supporting local and remote file management via SFTP and FTP, integrated Git version control, and a multi-terminal interface. The application enables code execution through embedded runtimes for Node.js, Python, Java, and C/C++, as well as remote cloud execution, while offering a rich editing experience with Monaco and native editors, syntax highlighting, and support for viewing various media files.
How it got here
2021 — UI overhaul and dependency migration
36 changes.
The project underwent a significant structural refactor, replacing legacy SwiftUI components for the editor, terminal, and settings with a new interface architecture. This period also involved migrating dependency management from CocoaPods to Swift Package Manager, removing obsolete runtime integrations like Node.js and WASI, and updating the Xcode build configuration to support modern iOS features.
2022 — extensive feature expansion and infrastructure
33 changes.
The project underwent significant architectural refactoring, introducing a modular extension system, robust remote file system support via SFTP/FTP, and a comprehensive local execution environment for multiple languages. This period also saw the addition of diverse media viewing capabilities, enhanced UI navigation, and the integration of essential language resources like Clang, Python, and Node.js to support a wider range of development workflows.
2023–2026 — Unified editor architecture and extension ecosystem
11 changes.
The project established a unified editor architecture supporting both Monaco and Runestone backends, while introducing a new SwiftWS WebSocket library and inter-process communication helpers to enhance extension capabilities. This period also focused on expanding the extension ecosystem with remote port forwarding, source control status indicators, and comprehensive UI testing, alongside adding Japanese, Russian, and Turkish localizations.
Features
Add FTP/FTPS file system provider
Users can now access files over FTP and FTPS protocols via the new FTPFileSystemProvider. This implementation supports core file operations including reading and writing contents, listing directory contents, checking for file existence, creating directories, copying and moving items, removing files, and retrieving file attributes such as size, modification date, and creation date.
CodeApp/Managers/FileSystem/FTP · high confidence
Add Fastlane automation for iOS beta distribution and testing
This change introduces Fastlane configuration files (Appfile, Fastfile, Matchfile) to automate the iOS build and release process. The new 'beta' lane handles code signing via Match, builds the 'Code App' scheme, and distributes the build to TestFlight, with support for external distribution groups. A separate 'tests' lane is provided to run unit tests for the 'Code UI' scheme. The configuration relies on environment variables for sensitive data such as Apple ID, API keys, and keychain credentials.
fastlane · high confidence
Add Image Editor extension for viewing and saving images
Users can now open supported image files (PNG, TIFF, JPEG, GIF, BMP, HEIC, WebP, ICO, CUR, XBM) directly within the application. The new Image Editor extension displays the image with a context menu that allows saving the image to the Photos library or copying it to the clipboard.
Extensions/ImageEditor · high confidence
Add Problems panel to Monaco editor integration
The Monaco language service now includes a dedicated Problems panel that displays diagnostic markers (errors, warnings, and info) for open files. This new SwiftUI view registers itself as a panel in the application, listing problems by file URL and allowing users to expand individual files to see specific marker details, including severity icons, messages, and line/column positions.
Extensions/MonacoLanguageService · high confidence
Add Simple Web Preview extension for HTML files
A new extension has been added that allows users to preview HTML files directly in Safari. When an HTML file is open, a toolbar item appears that starts a local web server (on ports 8000-8009) serving the current workspace directory and opens the file in the system browser. The server automatically stops and restarts on a new port if the workspace directory changes.
Extensions/SimpleWebPreview · high confidence
Add branch/tag checkout menu and ahead/behind status indicator
The Source Control extension now displays a new status indicator in the UI showing the number of commits the local branch is ahead of and behind the remote. Additionally, a new checkout menu allows users to switch between available branches and tags; this menu includes safety checks that warn users if uncommitted changes would be lost during the switch.
Extensions/SourceControlAuxiliary/Views · high confidence
Add image viewing extension with save/copy actions and file watching
Users can now view supported image files (png, tiff, jpeg, jpg, gif, bmp, heic, webp, etc.) directly within the app. The new ImageViewer extension displays images with a context menu allowing users to save them to the Photos library or copy them to the clipboard. It also monitors the underlying file for changes, automatically reloading the image if the file is updated externally.
Extensions/ImageViewer · high confidence
Add remote port forwarding management UI
The RemoteAuxiliary extension now includes a dedicated Port Forward view in the activity bar, accessible when connected to an SFTP remote. This view allows users to create, view, and remove local-to-remote port forwarding rules via a list and input fields, with a status indicator in the status bar showing the remote host connection.
Extensions/RemoteAuxiliary · high confidence
Add video file viewing support
The VideoViewer extension now allows users to open and play local video files directly within the editor. It supports common formats including MP4, MOV, MKV, and WebM by leveraging AVKit. External or non-local video resources are currently unsupported and will display a placeholder message instead.
Extensions/VideoViewer · high confidence
Added Clang 14.0.0 CUDA standard library headers
The distribution now includes the Clang 14.0.0 CUDA standard library headers (such as \\_\_clang\_cuda\_builtin\vars.h\, \\\_clang\_cuda\cmath.h\, and \\\_clang\_cuda\_intrinsics.h\) in the \LanguageResources/ClangLib/usr/lib/clang/14.0.0/include/\ directory. These files provide the device-side implementations and declarations required for compiling CUDA code, including math functions, intrinsics, and built-in variables.
(repo-wide) · high confidence
Added Japanese localization for app strings and permissions
This update introduces the Japanese language pack for Code App, adding a new \ja.lproj\ directory containing \InfoPlist.strings\ and \Localizable.strings\. The \InfoPlist.strings\ file provides the Japanese translation for the photo library access permission description, while \Localizable.strings\ includes the Japanese welcome message and a comprehensive changelog covering versions from 1.2.13 through 1.12.3, ensuring Japanese-speaking users see localized UI prompts and release notes.
CodeApp/Localization/ja.lproj · high confidence
Added Korean localization for app interface and changelog
Introduced Korean language support for the application, including new localization files (InfoPlist.strings and Localizable.strings) that translate system permission prompts and the in-app welcome message. The welcome message now displays the full Korean changelog, covering updates from version 1.2.13 through 1.12.3, ensuring Korean-speaking users can read release notes and support links in their native language.
CodeApp/Localization/ko.lproj · high confidence
Added Python 3.9 standard library and build configuration files
The LanguageResources/Library now includes the Python 3.9 standard library source files (such as \\_\future\\_.py\, \\_collections\_abc.py\, and platform-specific support modules like \\_osx\_support.py\ and \\_aix\_support.py\) along with pkg-config definitions (\python-3.9.pc\) and the Python Software Foundation license. This enables applications to embed Python 3.9 and build C extensions against this specific version.
LanguageResources/Library · high confidence
Added Russian localization for app permissions and changelog
The app now includes Russian language support for system permission prompts and in-app documentation. Users will see the Russian translation for the photo library access request ("Необходим доступ к медиатеке для сохранения изображений") and can view the full version history and welcome message in Russian within the app's help section.
CodeApp/Localization/ru.lproj · high confidence
Added WASI libc headers and Node.js polyfills to ClangLib
The ClangLib language resource bundle now includes a set of new C standard library headers (such as Endian.h, errno, fcntl, socket, and string functions) and Node.js browser polyfills (including isarray, path-browserify, process, randombytes, randomfill, and safe-buffer). These additions provide the necessary system interfaces and runtime utilities to support compiling and running C/C++ code as WebAssembly (WASM) binaries in browser environments.
LanguageResources · high confidence
Git source control toolbar and status bar integration
The SourceControlAuxiliary extension now registers specific UI controls for Git operations. The toolbar adds a 'Compare with Previous' button for text files, and 'Previous/Next Change' navigation buttons for diff viewers. The status bar displays an ahead/behind indicator and a branch checkout menu, providing quick access to Git status and branch management directly from the editor interface.
Extensions/SourceControlAuxiliary · high confidence
Initial release of SwiftWS WebSocket server library
Introduces the SwiftWS package, a WebSocket server built on SwiftNIO and NIOTS. The library provides a \SwiftWS\ class to launch a server on a specified port, with callbacks for handling new connections (\onConnection\), incoming messages (\onMessage\), and close events (\onClose\). It includes a \WebSocket\ client object with a thread-safe message queue (\messageStack\) protected by an \NSLock\, allowing messages to be queued and flushed asynchronously. The server supports configurable frame sizes (up to \UInt32.max\) and allows custom upgrade logic via a \shouldUpgrade\ block.
SwiftWS · high confidence
Introduce default UI state, encoding support, and resource paths
This change introduces new constants files that define the application's default UI state (including sidebar width, panel visibility, and focused panel ID), a comprehensive list of supported text encodings for file saving and loading, and static paths for bundled resources such as ClangLib, WASM worker HTML, themes, Python libraries, and certificates.
CodeApp/Constants · high confidence
Introduce local file system and Git service providers with credential management
This change introduces the local implementations for file system operations and Git version control, along with a new helper for managing Git credentials. The LocalFileSystemProvider now handles standard file operations (read, write, copy, move, delete) and specifically supports iCloud files via NSFileCoordinator to ensure graceful handling of remote storage. The LocalGitServiceProvider provides the core Git functionality (status, clone, create repository, ahead/behind checks) and enforces serial execution of Git commands via a dedicated dispatch queue to prevent race conditions. Additionally, the LocalGitCredentialsHelper allows users to store and retrieve HTTPS and SSH credentials securely using the system Keychain, keyed by hostname.
CodeApp/Managers/FileSystem/Local · high confidence
Introduce remote code execution via Judge0
Adds a new Remote Execution extension that allows users to compile and run code in the cloud using the Judge0 API. This feature adds a toolbar button to execute the current file, automatically saving it first, and displays the output (stdout, stderr, compilation messages, and resource usage) in a panel that supports input, output, or split display modes. It supports a wide range of languages including Swift, C, C++, Java, Python, and others, with specific handling for multi-file Java projects.
Extensions/RemoteExecution · high confidence
Introduces ActivityBar and CompactSidebar navigation views
Adds the ActivityBar, ActivityBarItemView, and CompactSidebar views to the application. The ActivityBar provides a vertical toolbar for switching between sidebar sections (such as Explorer, Search, and Source Control) and includes buttons to toggle the panel visibility and open settings. The CompactSidebar offers an alternative horizontal navigation mode with a section picker menu, allowing users to switch between sidebar views and manage open editors in a more compact layout.
CodeApp/Views · high confidence
Introduces core type definitions for extensions, editor instances, notifications, remote connections, and themes
This change adds foundational data models and type definitions to the application's architecture. It introduces \CodeAppExtension\ to manage UI contributions (panels, toolbars, status bars) and \AsyncNotification\ structures to handle user-facing alerts with actions and progress. Editor functionality is supported by \EditorInstance\ and \TextEditorInstance\, which track file states and content, while \Remote\ types define connection protocols (SFTP, FTP) and authentication modes, including support for in-memory SSH keys. Additionally, \Theme\ models allow for dynamic loading of color schemes, and \Notification\ structs define the structure for system notifications.
CodeApp/Types · high confidence
Introduces extension-based architecture for UI components and remote execution
The application now uses a modular extension system to manage the Activity Bar, Status Bar, Panels, and Editor Providers, allowing features to register themselves dynamically. A new AppExtensionService enables communication with VS Code extensions via a local WebSocket server on port 50002, supporting remote execution and language services. Additionally, the file tree has been rewritten in UIKit with a new FileTreeViewController for improved performance and scrolling behavior.
CodeApp/Managers · high confidence
Local code execution for supported languages
A new LocalExecutionExtension adds a toolbar button (shortcut Cmd+R) that allows users to run code directly in the active terminal. The extension supports Python, JavaScript, C, C++, PHP, and Java by executing language-specific commands (e.g., python3, node, clang, javac) against the currently open file. It includes safety checks to ensure a terminal is active and idle before execution, and it handles file path sanitization for spaces in filenames.
Extensions/LocalExecution · high confidence
Markdown preview moved to a dedicated extension with live file watching
The Markdown preview capability has been extracted into a standalone extension (Extensions/MarkdownViewer). When the toolbar button is clicked on a .md or .markdown file, it opens a new tab showing the rendered preview. The preview now automatically reloads when the underlying file changes on disk, providing live updates without manual refresh.
Extensions/MarkdownViewer · high confidence
Monaco Editor extension adds status bar indicators for encoding, cursor position, and Vim mode
The Monaco Editor extension now registers several new status bar items to provide real-time feedback while editing. Users will see an encoding menu to reopen files with different encodings, a line/column indicator that also opens the 'Go to Line' widget on tap, a 'READ-ONLY' label for read-only files, and Vim-specific labels showing the current Vim mode and key buffer when Vim is enabled. These UI components are registered via the MonacoEditorExtension to appear in the status bar based on the active editor state.
Extensions/MonacoEditor · high confidence
New Node.js and Java execution support in the CodeUI extension
The NodeExtension now enables running Node.js and Java commands directly from the CodeUI interface. This change introduces a new extension target that handles binary execution via WebSocket communication, allowing the app to launch Node.js processes (with JIT-less mode and exception reporting) and Java/Javac commands (bundling OpenJDK 8 and required frameworks). It also adds support for Python LSP integration and system command execution, providing a unified backend for language services within the extension.
NodeExtension · high confidence
New PDF viewer extension with loading states and error handling
A new PDF viewer extension has been added to the application, enabling users to open and view PDF files directly within the editor. The implementation uses PDFKit wrapped in SwiftUI, featuring a loading state (ProgressView) while the document is being fetched and displayed, as well as error notifications if the file fails to load. It also supports automatic reloading when the underlying file changes on disk.
Extensions/PDFViewer · high confidence
New SwiftUI view modifiers for deferred rendering and overlay management
Three new SwiftUI ViewModifier extensions have been added to the CodeApp/Modifiers module. The \deferredRendering(for:)\ modifier delays the visibility of a view until a specified time threshold has elapsed, which can help optimize initial load performance. The \hiddenScrollableContentBackground()\ modifier hides the default background of scrollable content on iOS 16 and later. The \hiddenSystemOverlays()\ modifier hides persistent system overlays (such as the status bar and home indicator) on iOS 16 and later, providing more immersive full-screen experiences.
CodeApp/Modifiers · high confidence
New file utility utilities for directory monitoring and archiving
Added new file utility components including DirectoryFolderMonitor for tracking directory changes via file descriptors, ArchiveDir for converting directories to base64-encoded ZIP archives, getRootDirectory for resolving the app's document directory path (with simulator-specific handling), and openFilesApp for launching the shared files interface.
CodeApp/Utilities/file · high confidence
New helper for inter-process communication via shared file system
A new \ExtensionCommunicationHelper\ class has been added to facilitate communication between the app and its extensions (such as Node.js or Java processes) by writing data to shared \stdin\ and \stdout\ files within the app group container and posting Darwin notifications to signal completion.
CodeApp/Utilities/Shared · high confidence
New multi-terminal panel with toolbar controls and focus management
A new Terminal panel has been added to the application, allowing users to manage multiple terminal instances within a single view. The panel includes a toolbar with buttons to create new terminals and reset the active terminal (triggered via Command+K), with visibility controlled by the availability of terminals and the ability to create new ones. The interface supports switching between multiple terminals, displaying a tab bar when more than one is open, and handles focus synchronization between the editor and terminal views. Additionally, the terminal view integrates a custom keyboard toolbar and applies a configurable font size for the console output.
Extensions/TerminalService · high confidence
New unified editor architecture with Monaco and Runestone implementations
The codebase introduces a new \EditorImplementation\ module that provides a unified protocol for editor backends, allowing the app to switch between or support multiple editing engines. This location specifically defines the \EditorImplementation\ protocol, the \EditorOptions\ configuration model (covering font, theme, and UI settings), and the concrete implementations for the web-based Monaco editor (via \WKWebView\ and a local \GCDWebServer\) and the native Runestone editor (with dynamic theme support and extensive TreeSitter language grammars). Users benefit from a consistent editor interface regardless of the underlying engine, with support for features like custom fonts, syntax highlighting, and language server integration exposed through this new abstraction.
CodeApp/Managers/EditorImplementation · high confidence
New utility infrastructure for code execution and secure storage
This change introduces a new set of utility components in CodeApp/Utilities to support the app's code execution and security features. It adds a KeychainAccessor and KeychainWrapper to securely store and retrieve credentials (such as git usernames and passwords) and other sensitive data using the iOS Keychain. It also introduces a KBWebViewBase class that extends WKWebView to fix text input behavior (disabling autocorrection and smart quotes) in web views, and includes UIFont+YYAdd for font data serialization. Additionally, it adds node.swift to expose C-compatible entry points for java, javac, node, and npm commands, routing them to the app extension for execution, and wasm.swift to execute WebAssembly binaries in a Web Worker via a WKWebView. Finally, it provides shortcutsMapping.swift to map physical game controller keys to editor shortcuts, and Utilities.swift with helpers for byte counting, Codable serialization, and refreshing node commands.
CodeApp/Utilities · high confidence
SFTP remote file system and terminal support
The application now supports connecting to remote servers via the SFTP protocol. This change introduces the SFTPFileSystemProvider, enabling users to browse and manage files on remote hosts, including support for SSH jump hosts (proxy connections) and in-memory SSH private key authentication. Additionally, it adds a terminal service provider that allows users to open interactive remote shells over SFTP, handling keyboard-interactive authentication and terminal window resizing.
CodeApp/Managers/FileSystem/SFTP · high confidence
Turkish language support added
Added Turkish localization for the app, including UI strings in Localizable.strings and system permission descriptions in InfoPlist.strings.
CodeApp/Localization/tr.lproj · high confidence
Removals
Removal of GCDWebServer pod from version control
The GCDWebServer library source files have been deleted from the Pods directory, indicating the project is no longer bundling this dependency directly in the repository. This change removes the local copy of the web server framework, likely shifting to a different dependency management strategy or removing the feature that relied on it.
Pods · high confidence
Removal of Markdown and Safari view components
The \markdown.swift\ file containing the \changeLogWrapper\, \simpleMarkDownView\, and \markDownView\ components has been deleted, removing the in-app markdown rendering and release notes display capability. Additionally, the \SafariView.swift\ file providing the \SFSafariViewController\ wrapper for web browsing has been removed. These changes eliminate the specific UI components used for displaying formatted text and embedded web views within the application.
CodeApp/UI/markdown, CodeApp/UI/web · high confidence
Removal of Node.js runtime integration files
The NodeRunner implementation and its associated header files have been removed from the CodeApp/Node directory. This eliminates the Objective-C bridge that previously launched the Node.js engine (via node\_start) with custom argument handling, effectively removing the capability to execute Node.js scripts from this part of the application.
CodeApp/Node · high confidence
Removal of SwiftGit2 framework headers and module map
The public headers (SwiftGit2.h and SwiftGit2-Swift.h) and the module.modulemap for the SwiftGit2 framework have been removed. This eliminates the framework's public interface and module definition, likely as part of a build system migration or internal restructuring where the framework is no longer exposed as a standalone public module.
SwiftGit2.framework · high confidence
Removal of bundled npm and Node.js type definitions
The \CodeApp/npm.bundle\ directory has been removed, eliminating the previously bundled npm v7.5.6 runtime and the \@types/node\ TypeScript definitions. This change removes the local HTTP server that exposed npm commands via port 9992 and strips the project of its vendored Node.js type definitions, meaning any code relying on these bundled types or the embedded npm server will no longer function.
CodeApp/npm.bundle · high confidence
Removal of legacy Keychain, Node.js, and WebAssembly helper implementations
The \CodeApp/HelperFunctions\ directory has removed several legacy helper modules: \KeychainWrapper\ and \KeychainItemAccessibility\ (used for secure keychain storage), \node.swift\ and \convertCArguments.swift\ (used to execute Node.js and npm commands via a private extension API), and \wasm.swift\ (used to execute WebAssembly scripts via a WKWebView). Users will no longer be able to access these specific keychain, Node.js, or WebAssembly capabilities through the helper functions located in this directory.
CodeApp/HelperFunctions · high confidence
Removal of legacy SwiftUI editor tab components
The legacy \editorTab\ and \tabs\ SwiftUI views have been removed from the application. This deletion eliminates the previous implementation of the editor tab bar, including its drag-and-drop reordering logic, keyboard shortcuts for tab switching, and the visual indicators for unsaved changes (such as the circle icon for modified files).
CodeApp/UI/tabs · high confidence
Removal of legacy data model and service classes
The \CodeApp/DataModels\ directory has been cleaned up by deleting several legacy Swift files that are no longer part of the application's architecture. Specifically, \CloudCodeExecutionManager.swift\ (remote code execution via Judge0), \EditorInstance.swift\ (editor state management), \GitHubAccountManager.swift\ and \GitHubSearchManager.swift\ (GitHub API integration), \GitServiceProvider.swift\ (Git operations), \MainApp.swift\ (main app state and initialization), \TerminalInstance.swift\ (terminal UI logic), \ViewRepresentable.swift\ (UI bridging), and \WorkSpaceStorage.swift\ (file system abstraction) have been removed. This change eliminates the underlying data models and services for cloud execution, GitHub search, Git version control, and workspace storage from this location.
CodeApp/DataModels · high confidence
Removal of legacy file utility helper functions
The file helper utilities in CodeApp/HelperFunctions/file have been removed. This deletes ArchiveDir.swift (directory archiving), DirectoryFolderMonitor.swift (file system change monitoring), fileName.swift (unique filename generation), getRootDirectory.swift (document directory path retrieval), openFilesApp.swift (opening the Files app), and urlToDisplayName.swift (editor display name formatting). Users relying on these specific internal helper capabilities for file operations and UI naming will no longer have access to them in this module.
CodeApp/HelperFunctions/file · high confidence
Removal of legacy notification banner system
The legacy notification banner implementation, including the \NotificationManager\ class and associated SwiftUI views (\Banner\, \BannerWithProgress\, \BannerWithButton\, and \BannerCentreView\), has been removed from the application. This change eliminates the previous mechanism for displaying progress, action, and basic informational banners, indicating that this functionality is no longer supported or has been replaced by a different system elsewhere in the codebase.
CodeApp/UI/notification · high confidence
Removal of legacy terminal and panel UI components
The \executor.swift\, \langSelector.swift\, \panel.swift\, and \problems.swift\ files in the terminal UI module have been deleted. This removes the previous implementation of the command-line executor, language selection menu, panel view (including input/output tabs and problem display), and associated UI logic from the application.
CodeApp/UI/terminal · high confidence
Removal of the macOS Share Extension
The macOS Share Extension has been removed from the application. This eliminates the ability to send files directly to the editor via the system share sheet, as the underlying \ActionRequestHandler\ and associated configuration files are no longer present.
extension · high confidence
Removed Clang 12.0.0 CUDA device-side headers
The Clang 12.0.0 distribution no longer includes device-side CUDA support headers (such as \_\_clang\_cuda\_builtin\vars.h, \\_clang\_cuda\cmath.h, and \\_clang\_cuda\_intrinsics.h). Users compiling CUDA code targeting device execution with this specific Clang version will no longer have access to these built-in wrappers for math functions, intrinsics, and CUDA variables.
ClangLib/usr · high confidence
Removed WASI libc compatibility headers and Node.js shim dependencies
This change removes a large set of C header files from \ClangLib/usr/include\ that provided WASI libc compatibility (including definitions for errno, file descriptors, sockets, networking, and time) and deletes several Node.js shim modules from \ClangLib/node\_modules\ (such as \isarray\, \path-browserify\, \process\, \randombytes\, \randomfill\, and \safe-buffer\). For users, this means the bundled environment no longer includes these specific compatibility layers and polyfills, which may affect code relying on these specific WASI or Node.js browser-shim implementations.
(repo-wide) · high confidence
Removed legacy file management UI components
The app no longer includes the legacy SwiftUI wrappers for system file pickers, directory selection, and file icon rendering. Specifically, the \activityViewController\, \dirPicker\, \fileIcon\, \filePicker\, and \newFile\ views have been removed from the \CodeApp/UI/file\ directory. This eliminates the previous implementation for sharing files, selecting directories, mapping file extensions to icons, opening documents via the system picker, and creating new files with language-specific templates.
CodeApp/UI/file · high confidence
Behavioural changes
App configuration, build automation, and entitlement updates
This change updates the app's configuration and build infrastructure: it adds a \.swift-format\ configuration file for code formatting, introduces a \CodeUI.plist\ target with custom font support (Fira Code) and multiple window support, and adds a \PrivacyInfo.xcprivacy\ manifest declaring API usage types. It also updates \Code App.entitlements\ to include increased memory limits and user font access, modifies \.gitignore\ to exclude new build artifacts and user data, and significantly updates \downloadFrameworks.sh\ to fetch newer versions of LLVM, ios\_system, Node.js, PHP, and other dependencies, while adding support for Java and Python LSP tools.
(repo-wide) · high confidence
Bundled npm 8.5.2 with TTY override for embedded execution
The \Dependencies/npm.bundle\ directory now contains a self-contained copy of npm version 8.5.2, including its full dependency tree and documentation. This bundle introduces a custom entry point (\index.js\) that exposes npm functionality via a local HTTP server on port 9992, allowing commands to be executed programmatically through URL parameters. To ensure correct output handling within this embedded environment, the bundled \npm-cli.js\ explicitly overrides \process.stdout.isTTY\ and \process.stderr.isTTY\ to \true\, addressing terminal detection issues (issue \#709) that previously caused output failures.
Dependencies/npm.bundle · high confidence
Enable iPadOS multi-window support and add custom font configuration
The app now supports multiple open windows on iPadOS, allowing users to work with several files or projects simultaneously. Additionally, the application is configured to use the Fira Code font, and the Info.plist has been updated to declare that the app does not use exempt encryption and to request Face ID authentication permissions.
CodeApp · high confidence
Explorer UI refactored and cleaned up
The file explorer interface has been refactored to improve code maintainability and visual consistency. Several internal components, including HierarchyList, editorCell, and focusableTextField, have been removed as part of this restructuring. The changes also address visual issues by removing system background colors from folder cells and explorer buttons, hiding list row separators, and ensuring consistent sidebar header coloring, resulting in a cleaner and more polished user experience.
CodeApp/UI/explorer · high confidence
Introduces service provider protocols and refactors workspace storage for remote file system access
This change introduces new protocol definitions for Git, Search, Terminal, and Port Forwarding services within the FileSystem manager, establishing a structured interface for these capabilities. It also refactors the WorkSpaceStorage class to support SFTP connections with optional jump hosts, adding specific error handling for scenarios like already connecting to a host or unsupported authentication methods, and initializes the local file system provider with Git service integration.
CodeApp/Managers/FileSystem · high confidence
Introduction of AppExtensionError types and ExecutionRequestFrame model
A new AppExtensionError enum and ExecutionRequestFrame struct have been added to the shared types module. The AppExtensionError enum defines specific error states for the app extension, such as missing server configuration or a server already being started, and conforms to LocalizedError for user-friendly descriptions. The ExecutionRequestFrame struct models the data payload for execution requests, including arguments, stderr redirection settings, working directory bookmarks, and a new isLanguageService flag, which likely supports the underlying Python LSP implementation and websocket communication changes.
CodeApp/Types/Shared · high confidence
Introduction of structured error types for app, Git, remote, and source control operations
The application now uses dedicated error enums (AppError, LibGit2Error, RemoteHostError, SourceControlError) to handle failures in file editing, Git operations, remote connections, and source control workflows. This change enables more specific and localized error messages for users, such as when a file cannot be opened, encoding fails, or Git services are unavailable, rather than relying on generic error handling.
CodeApp/Errors · high confidence
MarkdownView example app migrated from CocoaPods to Swift Package Manager
The MarkdownView example application has switched its dependency management from CocoaPods to Swift Package Manager (SPM). This change removes the legacy Xcode project files, the CocoaPods workspace, and the Travis CI build configuration, replacing them with an SPM-compatible structure. For users, this simplifies the setup process by eliminating the need for CocoaPods and allows the example app to be integrated directly using Swift Package Manager.
CodeApp/Framework, CodeApp/Framework/MarkdownView/webassets · high confidence
Refactor color theme handling and add URL path utilities
The color theme system has been refactored to use dynamic colors that automatically adapt to light and dark modes via a new \ThemeManager\, replacing the previous logic that relied on \UserDefaults\ and global theme variables. Additionally, new URL extension methods \canonicalize\ and \hasChild\ have been added to support robust path comparison and hierarchy checks, while several new utility extensions for \NSError\, \String\ (percent encoding and base64), \UIApplication\ (safe area), and \UserDefaults\ (remote hosts and git credentials) have been introduced to support application features.
CodeApp/Extensions · high confidence
Refactored core UI containers and introduced app state restoration
The application's main UI structure has been reorganized into dedicated container views (Explorer, Remote, Search, Source Control) to improve modularity. A key behavioral addition is state restoration: the app now saves and restores the root directory, open editor tabs, and the active editor's scroll position across sessions, ensuring your workspace is ready exactly as you left it. Additionally, the remote connection flow now supports SSH jump/proxy servers and in-memory private keys, while the source control interface provides clearer progress notifications and error handling for git operations.
CodeApp/Containers · high confidence
Refactored main UI layout and removed legacy sidebar components
The main application view has been restructured by removing the legacy \activityBar\, \mainView\, \statusBar\, and \tabBar\ files. This change eliminates the previous sidebar-based navigation and status display, replacing them with a new UI structure (likely supporting the newly introduced remote/SFTP features and improved compact device layouts). Users will see a different interface for file navigation, source control status, and panel management, with hover effects on sidebar buttons disabled and tab sizes adjusted for a cleaner look.
CodeApp/UI/main · high confidence
Removal of legacy Git source control UI components
The source control interface files \git.swift\, \gitCell.swift\, and \remoteImage.swift\ have been deleted from the \CodeApp/UI/git\ directory. This removes the previous SwiftUI-based implementation for displaying staged and working directory changes, handling commit actions, and rendering remote images, indicating a structural refactor of the source control user experience.
CodeApp/UI/git · high confidence
Removal of legacy Settings UI components
The settings interface has been refactored by removing the previous implementation files for authentication, author identity, theme configuration, and the main settings view. This change eliminates the old SwiftUI views that handled remote credentials, user name/email, and theme selection, indicating a structural shift in how these configuration options are presented or managed within the application.
CodeApp/UI/setting · high confidence
Removal of legacy editor UI components
The \editorView\, \keyboardToolBar\, \monacoEditor\, and \terminalToolBar\ files have been removed from the CodeApp/UI/editor directory. This change eliminates the previous SwiftUI-based editor interface, the custom keyboard toolbar with undo/redo and bracket insertion buttons, the \monacoEditor\ UIViewRepresentable wrapper for the Monaco code editor, and the terminal toolbar, indicating a structural shift in how the editor and its associated UI elements are implemented.
CodeApp/UI/editor · high confidence
Removed CocoaPods workspace and Swift Package Manager lock files
The Code.xcworkspace has been deleted, removing the reference to the CocoaPods Pods project and associated workspace configuration files. Additionally, Swift Package Manager resolved dependency files (Package.resolved) for packages including ios\_system, network\_ios, swift-nio, swift-nio-transport-services, and ZIPFoundation have been removed, along with local user data files, indicating a shift away from the previous dependency management setup.
Code.xcworkspace · high confidence
Removed user-specific Xcode configuration files from version control
Deleted user-specific Xcode settings, including breakpoint lists and scheme management files, from the repository. This change ensures that individual developer preferences, such as custom breakpoints and scheme ordering, are no longer tracked in version control, preventing unnecessary merge conflicts and keeping the project configuration clean for all collaborators.
Code.xcodeproj/xcuserdata · high confidence
Search UI and logic refactored
The search functionality in the sidebar has been refactored, resulting in the removal of the previous custom \HighlightedText\, \SearchBar\, and \TextSearchManager\ components. This change consolidates the search view and its underlying logic, likely to support the broader search improvements and dynamic type support mentioned in the associated commits, while simplifying the codebase by removing the manual grep parsing and custom highlighting logic previously handled in these files.
CodeApp/UI/search · medium confidence
SwiftGit2 framework module interfaces removed
The Swift interface files for the SwiftGit2 framework (specifically for arm64 and arm64-apple-ios targets) have been deleted. This change removes the public API surface definitions for core Git operations such as cloning, checking out branches, managing remotes, and handling commits, which may affect applications relying on these direct module imports or binary compatibility with this specific framework build.
SwiftGit2.framework/Modules/SwiftGit2.swiftmodule · high confidence
SwiftGit2 library initialization and migration to Swift Package Manager
SwiftGit2 now requires explicit initialization via \Repository.initialize\_libgit2()\ before any repository operations are performed, ensuring the underlying libgit2 library is correctly set up. The project has also migrated its dependency management from CocoaPods to Swift Package Manager (SPM), updating the build configuration and scheme to support this change.
SwiftGit2 · high confidence
Terminal bundle refactored to remove standalone HTML and local-echo dependencies
The terminal bundle's standalone HTML entry point and the bundled local-echo JavaScript module have been removed. This change eliminates the self-contained terminal implementation that previously handled local echo, command history, and autocomplete via a webpack-bundled script, indicating a shift in how the terminal interface is integrated or managed within the application.
CodeApp/terminal.bundle · medium confidence
Terminal bundle relocated and upgraded to xterm.js 5.5.0
The terminal frontend assets (index.html, local-echo.js, and related dependencies) have been moved into the /Dependencies/terminal.bundle directory. The underlying terminal library has been updated to xterm.js version 5.5.0, which brings improvements to terminal size synchronization and connection handling. Additionally, the terminal now supports Esc, Del, and Ctrl/Alt modifier keys via the toolbar, manages modifier states for multi-terminal scenarios, and prevents modification of bracketed paste sequences to ensure input integrity.
Dependencies/terminal.bundle · high confidence
Update app version to 1.12.3 and refresh changelog
The English localization file has been updated to reflect the new app version 1.12.3 (September 2026) and includes a comprehensive changelog history from v1.2.12 through v1.12.3. This update also corrects the documentation URL to point to the new website and updates the social media link from Twitter to X.
CodeApp/Localization/en.lproj · high confidence
Updated Chinese (Simplified) localization strings and changelog
The Simplified Chinese localization file has been updated to reflect version 1.12.3, including a comprehensive changelog history from v1.2.12 through 1.12.3, updated support links (e.g., X/Twitter), and corrected terminology such as '支持' and '邮箱'.
CodeApp/Localization/zh-Hans.lproj · high confidence
Updated German localization strings for version 1.12.3
The German localization file has been updated to reflect the new marketing version 1.12.3 and includes a comprehensive changelog covering releases from 1.2.10 through 1.12.3. This update corrects the Turkish language visibility setting, adds support for Turkish language strings, and notes compatibility improvements with iOS 27. It also updates the welcome message links, changing the documentation URL to code.thebaslab.com and the social link to X.
CodeApp/Localization/de.lproj · high confidence
Updated Monaco TextMate bundle with new language support and editor fixes
The Monaco TextMate bundle has been updated to include syntax highlighting for Terraform and Svelte, while also fixing broken Emmet support and addressing various UI and web worker loading issues within the editor.
CodeApp/monaco-textmate.bundle · high confidence
Updated Xcode build schemes and configuration
The project's Xcode schemes have been updated to Xcode 14.10, with the legacy 'Code (Simulator)' scheme removed and replaced by dedicated schemes for the 'CodeUI' app and the 'extension' app extension. The 'Code App' scheme was also upgraded to the latest version, ensuring consistent build and launch configurations across the project.
Code.xcodeproj/xcshareddata · high confidence
Xcode project updated to object version 60 with extensive source and framework additions
The Xcode project file has been upgraded from object version 52 to 60, reflecting a significant restructuring of the build configuration. This change incorporates a large number of new source files into the build, including implementations for spell checking (SpellChecker), search functionality (SearchSection, SearchServiceProvider), remote file systems (FTPFileSystemProvider), and terminal providers (SFTPTerminalServiceProvider). Additionally, the project now embeds and links several new frameworks and xcframeworks, such as NMSSH for secure connections, NodeMobile for Node.js support, and various Java runtime libraries, while also adding privacy manifests and updating resource bundles.
Code.xcodeproj · high confidence
Test coverage
Added UI and Git URL parsing tests
This change adds a new test suite for the CodeUI module. It includes tests verifying the behavior of the \appendAndFocusNewEditor\ method, specifically ensuring that editors are correctly appended and focused, and that the \alwaysInNewTab\ option (both explicit and via user defaults) results in the expected number of open editors. Additionally, it adds tests for \LocalGitCredentialsHelper.parseRemoteURL\ to confirm that SCP-like Git URLs (e.g., \[e-mail redacted]:...\) are correctly parsed into their host, scheme, and path components.
CodeUITests · high confidence
Dependencies
Updated bundled npm dependencies
The npm bundle included in the application has been updated to include newer versions of several internal and transitive dependencies, such as @gar/promisify (1.1.2), @isaacs/string-locale-compare (1.1.0), @npmcli/arborist (5.0.0), and lru-cache (7.3.1).
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 56 → 58 (+2.0)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 87 → 82 (-4.9)
- Architecture 93 → 96 (+3.2)
- Maturity 68 → 68 (+0.0)
- Readiness 49 → 51 (+1.7)
- Security 50 → 73 (+22.7)
- Domain Modelling 100 → 100 (+0.0)
- Accessibility 67 → 52 (-14.4)
- Performance 100 (new)
Resolved (52)
- Change coupling: SourceControlContainer.swift ↔ GitServiceProvider.swift (CodeApp/Containers/SourceControlContainer.swift)
- Critical CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- Critical CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- Critical CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- High CVE: [CVE redacted] (Dependencies/npm.bundle/package-lock.json)
- …and 32 more
New (71)
- CodeApp.swift.createCSDK (cognitive 41) (CodeApp/CodeApp.swift)
- CodeApp.swift.createCSDK (cyclomatic 22) (CodeApp/CodeApp.swift)
- Coverage not measured — Swift suite
- Dependency not covered by the committed resolution: libgit2-on-ios
- Duplicated block (11 lines × 2) (Extensions/MonacoEditor/Views/VimKeyBufferLabel.swift)
- Duplicated block (11–12 lines × 2) (CodeApp/Views/SettingsThemeConfiguration.swift)
- Duplicated block (12 lines × 2) (CodeApp/CodeApp.swift)
- Duplicated block (12 lines × 2) (Extensions/MonacoEditor/Views/VimKeyBufferLabel.swift)
- Duplicated block (12–13 lines × 2) (CodeApp/CodeApp.swift)
- Duplicated block (12–17 lines × 2) (SwiftGit2/SwiftGit2/Repository.swift)
- Duplicated block (13 lines × 2) (CodeApp/Views/EditorKeyboardToolBar.swift)
- Duplicated block (13 lines × 2) (Extensions/ImageEditor/ImageEditorExtension.swift)
- Duplicated block (13 lines × 2) (Extensions/ImageEditor/ImageEditorExtension.swift)
- Duplicated block (5 lines × 2) (CodeApp/Views/ActivityBar.swift)
- Duplicated block (5 lines × 2) (CodeApp/Views/PanelView.swift)
- Duplicated block (6 lines × 3) (CodeApp/Views/CompactSidebar.swift)
- Duplicated block (6 lines × 4) (CodeApp/Utilities/node.swift)
- Duplicated block (7 lines × 2) (CodeApp/Views/CompactSidebar.swift)
- Duplicated block (8 lines × 2) (CodeApp/Views/SettingsView.swift)
- Duplicated block (8 lines × 2) (CodeApp/Views/SourceControlSection.swift)
- …and 51 more
Changes since last survey
- 3 commits — 1 feature/other, 2 fixes
By area
- Code.xcodeproj/project.xcworkspace — 1 commit
- CodeApp/Localization — 1 commit
- CodeApp/Managers — 1 commit
Notable commits
- fix: chore: Bump marketing version to 1.12.3 and update localization strings (fixes #1342 #1334)
- fix: fix: Remove redundant event listener on focus in Monaco editor
- change: feat: Implement iOS 27 focus patch for Monaco editor
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
thebaselab/codeapp was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6b508f35f45b5cd8706708179400078e90f528f4 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.