diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0a5cb2a..ce57630 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,15 +20,13 @@ That's it. No complicated build pipeline, no extra tools. ## Rules -1: +1. **AI Integration** + - **a)** No AI integration in native/default Kodo, full stop. + - **b)** Extensions may add or use AI, but only where the effect is minimal and scoped. For example: enhancing an existing feature like CodePredict with AI is allowed; adding a general-purpose AI chat interface is not. Acceptance of AI-related extensions is at the maintainer's discretion during PR review, even if a submission technically fits these guidelines. -A) Absolutely no AI integration into native / default Kodo. - -B) Extensions that add or utilize AI are allowed, but only if the effect is minimal. Ex: AI chat interfaces are not allowed. While adding AI to something like CodePredict is allowed. Whether AI extensions are accepted or declined is up to the discretion of the maintainer reviewing the PR. - -2: - -Code must be of quality and add something meaningful if PRing to the main Kodo app and not extensions. No bloat or useless features will be allowed or accepted. +2. **Code Quality** + - PRs to the main Kodo app (not extensions) must be high-quality and add clear, meaningful value. + - Bloat, redundant functionality, or low-value features will be rejected, regardless of code quality. --- diff --git a/Kodo/Source/Assets/PRIVACY POLICY.txt b/Kodo/Source/Assets/PRIVACY POLICY.txt deleted file mode 100644 index 5443f6a..0000000 --- a/Kodo/Source/Assets/PRIVACY POLICY.txt +++ /dev/null @@ -1,99 +0,0 @@ -PRIVACY POLICY - KODO -Last updated: July 16, 2026 - -Kodo is a free, open-source code editor. This policy explains what data -Kodo collects, when, and why. - -1. OUR APPROACH - -Kodo does not require an account, does not run a server, and does not -collect your source code, file contents, file names, or any content you -edit. The only data Kodo can send off your device is a small, optional -analytics signal described below, and it is off by default. - -2. ANONYMOUS USAGE ANALYTICS (OPT-IN) - -On first launch, Kodo asks whether you'd like to enable anonymous -analytics. You can accept or decline, and you can change your answer at -any time in Settings. If you don't respond, analytics stays off. - -When enabled, Kodo sends two kinds of events to Aptabase -(https://aptabase.com), a privacy-focused analytics provider, hosted in -the US region (us.aptabase.com): - - Event When it fires Data included - ------------ -------------------------------- -------------------------- - app_launched Once per app start None beyond the system - info below - app_crash When Kodo hits an unhandled error The exception's error - message text - -Every event is also tagged with: - - App version - - Operating system name and build (e.g. "Windows 11 Pro 24H2") - - Whether a debugger was attached (development-only signal) - - A randomly generated session ID that resets each time you open Kodo - -This session ID is not a persistent device identifier, is not linked to -your identity, and cannot be used to track you across sessions or app -restarts. Kodo has no user accounts, so there is nothing to tie this data -to a person. - -Crash messages: the app_crash event includes the error message text from -the exception. Before being sent, this text is automatically scrubbed of -common user-identifying substrings - Windows user-profile paths -(C:\Users\\...), UNC paths, Unix/WSL home paths (/home//..., -/Users//...), and email addresses are redacted. Other incidental -details (such as project or file names elsewhere in the message) may -still be present, so if that matters to you, please leave analytics -disabled - a crash log is also always written locally (see below). - -Disabling analytics immediately stops all future events and discards -anything queued but not yet sent. - -3. LOCAL LOGS (NOT TRANSMITTED) - -Kodo writes diagnostic logs to your machine, stored under -%AppData%\Kodo\: - - - kodo.log - general warnings, debug traces, and critical events - - crash.log - a rolling snapshot of recent activity plus full crash - details, generated when a critical error occurs - -These logs stay on your device, unredacted. Kodo does not upload them -automatically. If you report a bug, you may choose to share them yourself -(e.g. attaching to a GitHub issue). - -4. UPDATE CHECKS - -Kodo periodically checks GitHub for new releases and marketplace -extension updates. These are standard HTTPS requests to GitHub's -API/CDN endpoints and jsDelivr; no personal data is attached beyond what's -inherent in any web request (e.g. your IP address, visible to -GitHub/jsDelivr as it would be to any site you visit). - -5. THIRD PARTIES - - - Aptabase - analytics processor, only contacted if you opt in. - See: https://aptabase.com/privacy - - GitHub - source of update/release/marketplace data. - See: https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement - - jsDelivr - CDN fallback for marketplace assets. - -6. YOUR CHOICES - - - Decline or later disable analytics in Settings at any time. - - Delete local logs directly from %AppData%\Kodo\. - - Since Kodo is open source, you can review exactly what's collected in - AptabaseClient.cs and the consent-handling code in MainWindow.axaml.cs - at https://github.com/KerbalMissile/Kodo - -7. CHANGES TO THIS POLICY - -If Kodo's data practices change (e.g. new analytics events are added), -this document will be updated and the changelog will note it. - -8. CONTACT - -Open an issue at https://github.com/KerbalMissile/Kodo for privacy -questions. \ No newline at end of file diff --git a/Kodo/Source/Assets/PRIVACY_POLICY.txt b/Kodo/Source/Assets/PRIVACY_POLICY.txt deleted file mode 100644 index 6875d3c..0000000 --- a/Kodo/Source/Assets/PRIVACY_POLICY.txt +++ /dev/null @@ -1,99 +0,0 @@ -PRIVACY POLICY - KODO -Last updated: July 16, 2026 - -Kodo is a free, open-source code editor. This policy explains what data -Kodo collects, when, and why. - -1. OUR APPROACH - -Kodo does not require an account, does not run a server, and does not -collect your source code, file contents, file names, or any content you -edit. The only data Kodo can send off your device is a small, optional -analytics signal described below, and it is off by default. - -2. ANONYMOUS USAGE ANALYTICS (OPT-IN) - -On first launch, Kodo asks whether you'd like to enable anonymous -analytics. You can accept or decline, and you can change your answer at -any time in Settings. If you don't respond, analytics stays off. - -When enabled, Kodo sends two kinds of events to Aptabase -(https://aptabase.com), a privacy-focused analytics provider, hosted in -the US region (us.aptabase.com): - - Event When it fires Data included - ------------ -------------------------------- -------------------------- - app_launched Once per app start None beyond the system - info below - app_crash When Kodo hits an unhandled error The exception's error - message text - -Every event is also tagged with: - - App version - - Operating system name and build (e.g. "Windows 11 Pro 24H2") - - Whether a debugger was attached (development-only signal) - - A randomly generated session ID that resets each time you open Kodo - -This session ID is not a persistent device identifier, is not linked to -your identity, and cannot be used to track you across sessions or app -restarts. Kodo has no user accounts, so there is nothing to tie this data -to a person. - -Crash messages: the app_crash event includes the error message text from -the exception. Before being sent, this text is automatically scrubbed of -common user-identifying substrings - Windows user-profile paths -(C:\Users\\...), UNC paths, Unix/WSL home paths (/home//..., -/Users//...), and email addresses are redacted. Other incidental -details (such as project or file names elsewhere in the message) may -still be present, so if that matters to you, please leave analytics -disabled - a crash log is also always written locally (see below). - -Disabling analytics immediately stops all future events and discards -anything queued but not yet sent. - -3. LOCAL LOGS (NOT TRANSMITTED) - -Kodo writes diagnostic logs to your machine, stored under -%AppData%\Kodo\: - - - kodo.log - general warnings, debug traces, and critical events - - crash.log - a rolling snapshot of recent activity plus full crash - details, generated when a critical error occurs - -These logs stay on your device, unredacted. Kodo does not upload them -automatically. If you report a bug, you may choose to share them yourself -(e.g. attaching to a GitHub issue). - -4. UPDATE CHECKS - -Kodo periodically checks GitHub for new releases and marketplace -extension updates. These are standard HTTPS requests to GitHub's -API/CDN endpoints and jsDelivr; no personal data is attached beyond what's -inherent in any web request (e.g. your IP address, visible to -GitHub/jsDelivr as it would be to any site you visit). - -5. THIRD PARTIES - - - Aptabase - analytics processor, only contacted if you opt in. - See: https://aptabase.com/privacy - - GitHub - source of update/release/marketplace data. - See: https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement - - jsDelivr - CDN fallback for marketplace assets. - -6. YOUR CHOICES - - - Decline or later disable analytics in Settings at any time. - - Delete local logs directly from %AppData%\Kodo\. - - Since Kodo is open source, you can review exactly what's collected in - AptabaseClient.cs and the consent-handling code in MainWindow.axaml.cs - at https://github.com/KerbalMissile/Kodo - -7. CHANGES TO THIS POLICY - -If Kodo's data practices change (e.g. new analytics events are added), -this document will be updated and the changelog will note it. - -8. CONTACT - -Open an issue at https://github.com/KerbalMissile/Kodo for privacy -questions. \ No newline at end of file diff --git a/Kodo/Source/Kodo.csproj b/Kodo/Source/Kodo.csproj index 4243af6..2167c15 100644 --- a/Kodo/Source/Kodo.csproj +++ b/Kodo/Source/Kodo.csproj @@ -4,7 +4,7 @@ WinExe net10.0 enable - app.manifest + app.manifest true ..\Assets\kodo_logo.ico 1.3.2 diff --git a/Kodo/Source/Program.cs b/Kodo/Source/Program.cs index ed208d6..69ba9b1 100644 --- a/Kodo/Source/Program.cs +++ b/Kodo/Source/Program.cs @@ -14,7 +14,10 @@ class Program [STAThread] public static void Main(string[] args) { - AttachConsole(0xFFFFFFFF); + if (OperatingSystem.IsWindows()) + { + AttachConsole(0xFFFFFFFF); + } System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); AptabaseClient.Initialize(); diff --git a/README.md b/README.md index 6af5954..fcbd2ea 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Kodo is built by [KerbalMissile](https://github.com/KerbalMissile) and [SS-YYC](https://github.com/SS-YYC) around a few simple ideas: your editor should stay out of your way. Quick setup, syntax highlighting via extensions, and zero friction from launch to coding. We want to make coding human again - no bloat, but still a rewarding user experience. -Kodo is around ~74% lighter than VSCode with no extensions installed. +Kodo is around **~74% lighter** than VSCode with no extensions installed. Released under the [GPL-v3.0 license](LICENSE.md).