Skip to content
CAI
Software that uses CAICheck a score

thebaselab/codeapp

58.4

Adequate · 30 September 2026

23k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.