Getting started
- Download and extract the current release.
- Start
SightAdapt.exe. - Open configuration from the notification-area icon.
- Choose an application and profile, or use a temporary shortcut.
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bcec3896..11cdc1e0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,6 +45,10 @@ jobs: shell: pwsh run: .\tools\test-public-materials-negative.ps1 + - name: Verify static product site + shell: pwsh + run: .\tools\test-site.ps1 + - name: Restore application run: dotnet restore src/SightAdapt/SightAdapt.csproj diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 00000000..ef00e204 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,53 @@ +name: Deploy SightAdapt Pages + +on: + workflow_dispatch: + workflow_run: + workflows: ["Build and test SightAdapt"] + types: [completed] + +concurrency: + group: sightadapt-pages + cancel-in-progress: false + +permissions: + contents: read + pages: write + id-token: write + +jobs: + package: + if: >- + github.event_name == 'workflow_dispatch' || + (github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event == 'push' && + github.event.workflow_run.head_branch == 'main') + runs-on: ubuntu-latest + steps: + - name: Check out exact validated source + uses: actions/checkout@v4 + with: + ref: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_sha || github.sha }} + + - name: Validate static site + shell: pwsh + run: ./tools/test-site.ps1 + + - name: Configure GitHub Pages + uses: actions/configure-pages@v5 + + - name: Upload static site + uses: actions/upload-pages-artifact@v4 + with: + path: ./site + + deploy: + needs: package + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy exact validated site + id: deployment + uses: actions/deploy-pages@v4 diff --git a/site/.nojekyll b/site/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/site/README.md b/site/README.md new file mode 100644 index 00000000..dd3c7771 --- /dev/null +++ b/site/README.md @@ -0,0 +1,81 @@ +# SightAdapt™ static product site + +This directory contains the dependency-free static implementation of the SightAdapt product site defined by issue #124 and implemented under #99. + +## Hosting model + +- canonical public product root: `https://aiteracja.pl/sightadapt/` +- GitHub Pages origin/fallback: `https://keyffms.github.io/SightAdapt/` +- optional convenience address: `https://sightadapt.aiteracja.pl/` (permanent redirect only; not a second canonical site) +- official binary authority: GitHub Releases + +The site intentionally uses relative asset and navigation paths so the same tree can be served below both `/SightAdapt/` and `/sightadapt/`. + +## Architecture + +The site is plain HTML and CSS: + +- no JavaScript framework; +- no build-time package manager; +- no cookies; +- no analytics; +- no tracking pixels; +- no remote font requests; +- no unsolicited third-party embeds. + +Canonical repository SVG assets are copied into `site/assets/` so the public pages do not depend on runtime requests to GitHub raw content. + +## Pages + +- `/` — product overview +- `/features/` +- `/download/` +- `/docs/` +- `/how-it-works/` +- `/faq/` +- `/releases/` +- `/privacy/` +- `/legal/` +- `/security/` +- `/support/` + +## Visual provenance + +- Brand SVG files are byte-for-byte copies of the canonical repository assets in `assets/brand/`. +- The architecture diagram on `/how-it-works/` is project-owned HTML/CSS derived from `docs/ARCHITECTURE.md`; it contains no third-party imagery and exposes a full text alternative. +- No third-party product logos, screenshots or private user content are included. +- An authentic product screenshot for the home-page hero remains a content-production follow-up; a fabricated or generated screenshot must not be substituted for it. + +## Local preview + +From the repository root, run any local static HTTP server. With Python 3: + +```powershell +python -m http.server 8000 --directory .\site +``` + +Then open: + +```text +http://localhost:8000/ +``` + +The site does not require Python to build or deploy; Python is only one convenient local preview server. + +## Validation + +Run: + +```powershell +.\tools\test-site.ps1 +``` + +The validator checks the required page inventory, document structure, canonical URLs, accessibility basics, local link/assets, required trademark/footer wording and the absence of remote active content. + +## Deployment + +`.github/workflows/pages.yml` deploys the exact `site/` tree only after a successful `Build and test SightAdapt` run for a push to `main`. Manual dispatch is also available for maintainers. + +Repository Settings → Pages must use GitHub Actions as the Pages source. The repository `main` branch must also be protected according to issue #87 before the protected-default-branch acceptance criterion can be considered complete. + +SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl. diff --git a/site/assets/sightadapt-lockup-dark.svg b/site/assets/sightadapt-lockup-dark.svg new file mode 100644 index 00000000..2b210230 --- /dev/null +++ b/site/assets/sightadapt-lockup-dark.svg @@ -0,0 +1,34 @@ + + diff --git a/site/assets/sightadapt-lockup-light.svg b/site/assets/sightadapt-lockup-light.svg new file mode 100644 index 00000000..23156a2b --- /dev/null +++ b/site/assets/sightadapt-lockup-light.svg @@ -0,0 +1,34 @@ + + diff --git a/site/assets/sightadapt-mark.svg b/site/assets/sightadapt-mark.svg new file mode 100644 index 00000000..55269ec9 --- /dev/null +++ b/site/assets/sightadapt-mark.svg @@ -0,0 +1,38 @@ + + diff --git a/site/assets/site.css b/site/assets/site.css new file mode 100644 index 00000000..9b318759 --- /dev/null +++ b/site/assets/site.css @@ -0,0 +1,438 @@ +:root { + color-scheme: light; + --ink: #0f172a; + --muted: #475569; + --paper: #ffffff; + --surface: #f8fafc; + --surface-strong: #eef2ff; + --line: #cbd5e1; + --brand: #243b83; + --brand-strong: #172554; + --accent: #075985; + --focus: #f59e0b; + --success: #166534; + --warning-bg: #fff7ed; + --warning-line: #c2410c; + --max: 74rem; + font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif; +} + +* { box-sizing: border-box; } + +html { scroll-behavior: smooth; } + +body { + margin: 0; + color: var(--ink); + background: var(--paper); + font-size: 1rem; + line-height: 1.65; +} + +img { max-width: 100%; height: auto; } + +a { + color: var(--accent); + text-underline-offset: .18em; +} + +a:hover { text-decoration-thickness: .16em; } + +a:focus-visible, +button:focus-visible, +summary:focus-visible { + outline: .2rem solid var(--focus); + outline-offset: .2rem; + border-radius: .2rem; +} + +.skip-link { + position: absolute; + left: .75rem; + top: -5rem; + z-index: 100; + background: var(--ink); + color: #fff; + padding: .75rem 1rem; + border-radius: .35rem; +} + +.skip-link:focus { top: .75rem; } + +.container { + width: min(calc(100% - 2rem), var(--max)); + margin-inline: auto; +} + +.site-header { + border-bottom: 1px solid var(--line); + background: rgba(255,255,255,.98); +} + +.header-inner { + min-height: 4.75rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 1.25rem; +} + +.brand img { width: 13rem; display: block; } + +.desktop-nav { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: .85rem; +} + +.desktop-nav a, +.mobile-nav a { + color: var(--ink); + font-weight: 600; + text-decoration: none; +} + +.desktop-nav a[aria-current="page"], +.mobile-nav a[aria-current="page"] { + text-decoration: underline; + text-decoration-thickness: .16em; +} + +.mobile-menu { display: none; } +.mobile-menu summary { font-weight: 700; cursor: pointer; } +.mobile-nav { display: grid; gap: .65rem; padding: .75rem 0 1rem; } + +.button { + display: inline-block; + padding: .72rem 1rem; + border: 2px solid var(--brand); + border-radius: .5rem; + background: var(--brand); + color: #fff !important; + font-weight: 700; + text-decoration: none; +} + +.button.secondary { + background: transparent; + color: var(--brand) !important; +} + +.button.light { + border-color: #fff; + background: #fff; + color: var(--brand-strong) !important; +} + +.button.light.secondary { + background: transparent; + color: #fff !important; +} + +.alpha-banner { + border-bottom: 1px solid #fed7aa; + background: var(--warning-bg); + padding: .7rem 0; +} + +.alpha-banner p { margin: 0; } + +.hero { + background: linear-gradient(145deg, #111a36, #27366d 70%, #3b3b78); + color: #fff; + padding: clamp(3rem, 7vw, 6rem) 0; +} + +.hero a { color: #fff; } + +.hero-grid { + display: grid; + grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr); + gap: clamp(2rem, 5vw, 5rem); + align-items: center; +} + +.eyebrow { + font-weight: 700; + letter-spacing: .04em; + text-transform: uppercase; + font-size: .85rem; +} + +.hero h1, +.page-hero h1 { + font-size: clamp(2.4rem, 6vw, 4.8rem); + line-height: 1.05; + letter-spacing: -.035em; + max-width: 16ch; + margin: .45rem 0 1.25rem; +} + +.lead { + font-size: clamp(1.1rem, 2vw, 1.35rem); + max-width: 44rem; +} + +.actions { + display: flex; + flex-wrap: wrap; + gap: .75rem; + margin-top: 1.5rem; +} + +.release-card, +.card, +.callout, +.diagram, +.table-wrap { + border: 1px solid var(--line); + border-radius: .75rem; + background: var(--paper); +} + +.release-card { + color: var(--ink); + padding: 1.35rem; + box-shadow: 0 1rem 2.5rem rgba(3, 7, 18, .22); +} + +.release-card h2 { margin-top: 0; font-size: 1.25rem; } + +.meta-list { + list-style: none; + padding: 0; + margin: 1rem 0; +} + +.meta-list li { margin: .35rem 0; } + +.trust-strip { + background: var(--surface-strong); + border-bottom: 1px solid #c7d2fe; +} + +.trust-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 1px; +} + +.trust-grid a { + display: block; + padding: 1rem; + color: var(--ink); + font-weight: 700; + text-align: center; +} + +main section, +.page-hero { + padding: clamp(2.5rem, 5vw, 4.5rem) 0; +} + +.page-hero { + background: var(--surface); + border-bottom: 1px solid var(--line); +} + +.page-hero h1 { max-width: 22ch; font-size: clamp(2.25rem, 5vw, 4rem); } + +.section-heading { + max-width: 48rem; + margin-bottom: 1.8rem; +} + +.section-heading h2 { + font-size: clamp(1.7rem, 3vw, 2.4rem); + line-height: 1.15; + margin-bottom: .65rem; +} + +.grid-2, +.grid-3 { + display: grid; + gap: 1rem; +} + +.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } +.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } + +.card { padding: 1.3rem; } +.card h2, .card h3 { margin-top: 0; } + +.steps { + counter-reset: steps; + list-style: none; + padding: 0; + display: grid; + gap: 1rem; +} + +.steps li { + counter-increment: steps; + position: relative; + padding: 1.1rem 1.1rem 1.1rem 4rem; + border-left: .3rem solid var(--brand); + background: var(--surface); +} + +.steps li::before { + content: counter(steps); + position: absolute; + left: 1.1rem; + top: 1rem; + width: 2rem; + height: 2rem; + border-radius: 50%; + display: grid; + place-items: center; + background: var(--brand); + color: #fff; + font-weight: 800; +} + +.callout { + padding: 1.2rem 1.35rem; + background: var(--surface); +} + +.callout.warning { + border-color: #fdba74; + background: var(--warning-bg); +} + +.callout strong { color: var(--ink); } + +.diagram { padding: 1rem; background: var(--surface); } + +.diagram-flow { + display: grid; + grid-template-columns: repeat(4, minmax(0,1fr)); + gap: .75rem; + align-items: stretch; +} + +.diagram-node { + position: relative; + padding: 1rem; + border: 2px solid #a5b4fc; + border-radius: .6rem; + background: #fff; + text-align: center; + font-weight: 700; +} + +.diagram-node:not(:last-child)::after { + content: "→"; + position: absolute; + right: -.75rem; + top: 50%; + transform: translate(50%, -50%); + color: var(--brand); + font-size: 1.4rem; + font-weight: 800; + background: var(--surface); + padding: 0 .15rem; +} + +.code { + overflow-x: auto; + border-radius: .55rem; + padding: 1rem; + background: #111827; + color: #f8fafc; + font-family: Consolas, "SFMono-Regular", monospace; + font-size: .92rem; +} + +table { + width: 100%; + border-collapse: collapse; +} + +th, td { + padding: .7rem; + border-bottom: 1px solid var(--line); + text-align: left; + vertical-align: top; +} + +th { background: var(--surface); } + +.table-wrap { overflow-x: auto; } + +.definition-list { + display: grid; + grid-template-columns: minmax(10rem, .35fr) 1fr; + gap: .6rem 1rem; +} +.definition-list dt { font-weight: 700; } +.definition-list dd { margin: 0; } + +.site-footer { + background: #0f172a; + color: #e2e8f0; + padding: 3rem 0 2rem; +} + +.site-footer a { color: #e0f2fe; } + +.footer-grid { + display: grid; + grid-template-columns: 1.4fr repeat(3, 1fr); + gap: 2rem; +} + +.footer-brand img { width: 13rem; } +.footer-links { list-style: none; padding: 0; margin: 0; } +.footer-links li { margin: .45rem 0; } + +.small-print { + margin-top: 2rem; + padding-top: 1.5rem; + border-top: 1px solid #334155; + font-size: .9rem; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + border: 0; +} + +@media (max-width: 56rem) { + .desktop-nav { display: none; } + .mobile-menu { display: block; } + .header-inner { align-items: flex-start; padding-block: .85rem; } + .hero-grid, + .grid-3, + .footer-grid { grid-template-columns: 1fr; } + .trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .diagram-flow { grid-template-columns: 1fr; } + .diagram-node:not(:last-child)::after { + content: "↓"; + right: 50%; + top: auto; + bottom: -.75rem; + transform: translate(50%, 50%); + } +} + +@media (max-width: 40rem) { + .grid-2, + .trust-grid, + .definition-list { grid-template-columns: 1fr; } + .brand img { width: 11.5rem; } + .mobile-nav .button { justify-self: start; } +} + +@media (prefers-reduced-motion: reduce) { + html { scroll-behavior: auto; } +} diff --git a/site/docs/index.html b/site/docs/index.html new file mode 100644 index 00000000..2ee971a6 --- /dev/null +++ b/site/docs/index.html @@ -0,0 +1,80 @@ + + +
+ + +Documentation
This hub covers day-to-day use. Developer and architecture documents remain maintained in the GitHub repository.
SightAdapt.exe.Add an application by activating it and using the persistent-assignment shortcut or configuration UI. Assignments can be enabled, disabled and removed. Executable identity and path information is stored locally for matching.
Automatic mode applies enabled assignments when their application is foreground.
None leaves the application unchanged. Exact invert is fixed. Soft invert is editable. User-defined profiles can be created, duplicated, renamed, edited and deleted.
Preview behavior is intended to help tune a profile but does not guarantee how every application or display driver will render it.
Native Win32 #32768 popup menus can inherit the application profile or use a separate profile. Overlay scope can target client area, full window, current screen or all screens.
WPF, WinUI, Electron, Qt and other custom-rendered menus are not separately detected.
Ctrl+Alt+I toggles correction for the active supported window without changing saved settings.
Ctrl+Alt+Shift+I adds, disables or re-enables the active application's persistent assignment.
Emergency disable all overlays removes active overlays immediately and disables automatic mode.
settings.json.Authoritative technical documentation remains versioned with the source.
Download
GitHub Releases are the authoritative source for official SightAdapt binaries. The website links to those immutable release assets instead of duplicating them.
c6dc5ba5c0356c84b32a74d298015d63158c57886b835e411da0b60f306fd711SightAdapt.exe.Run the following in PowerShell from the directory containing the downloaded ZIP:
Get-FileHash .\SightAdapt-0.5.0.50-alpha-win-x64.zip -Algorithm SHA256
+ The resulting hash must equal:
+c6dc5ba5c0356c84b32a74d298015d63158c57886b835e411da0b60f306fd711
+ Unsigned or newly published open-source binaries may trigger Microsoft Defender SmartScreen. Do not disable system protection to run SightAdapt. Verify the source URL, release page and checksum before deciding whether to run a downloaded file.
Exit SightAdapt, then remove the extracted application files. To remove saved profiles and assignments as well, delete %LOCALAPPDATA%\SightAdapt\settings.json. Deleting that file permanently removes the local SightAdapt configuration.
This is an alpha release. Keep the emergency-disable command available and test the application with non-critical work before relying on it for extended sessions.
FAQ
Yes. SightAdapt is free and open source under the MIT License.
No. It uses a separate Windows overlay and does not modify the target application's installed files.
No. The current alpha does not use DLL injection or write another process's memory.
The current alpha does not save or transmit captured screen content. See privacy and security for the exact boundaries.
Paths are used locally to identify saved application assignments. A path can contain a Windows account or organization name, so redact it from public bug reports when necessary.
No guarantee is made. Framework, privilege level, protected content, remote sessions and graphics drivers can affect behavior.
For supported native Win32 popup menus, an application can use None while an explicit menu profile is assigned. Custom-rendered menus are not separately detected.
The current project is a general-purpose visual-accessibility and display-personalization utility. It does not diagnose or treat medical conditions.
New or unsigned binaries may have limited Microsoft Defender SmartScreen reputation. Download only from project-controlled sources and verify the published checksum.
Use Emergency disable all overlays from the notification-area menu, or exit SightAdapt.
Yes. The repository documents the pinned .NET 8 build and publish process. Read the build instructions.
Use the GitHub issue tracker for reproducible defects. Do not attach private screenshots or unredacted paths. Security-sensitive reports should follow the private reporting guidance.
Features
SightAdapt keeps profile selection, overlay scope and automatic activation attached to the application you choose.
Persistent assignments are matched primarily by executable path. Each assignment stores its enabled state, application profile, optional native-menu profile and overlay scope. With automatic mode enabled, the saved assignment activates when its application becomes the supported foreground window.
Built-in profiles provide fixed or editable starting points. User-defined profiles can be created, duplicated, renamed, edited, assigned and deleted. Deleting a user profile reassigns affected applications to the built-in Soft invert profile.
Editable profiles expose output black, output white, brightness, contrast, saturation and hue shift. These are display-personalization controls; they are not a color-calibration or clinical measurement system.
Supported native Win32 #32768 popup menus can inherit the application profile or use a separate profile. WPF, WinUI, Chromium/Electron, Qt and other custom-rendered menus are outside this separate-menu boundary.
Client area excludes the title bar and frame. Full window covers the visible window. Current screen covers the target monitor. All screens covers the Windows virtual desktop.
Ctrl+Alt+I toggles local correction without changing saved settings. Ctrl+Alt+Shift+I adds, disables or re-enables the persistent assignment for the active application. The tray menu also exposes automatic mode and emergency shutdown.
The overlay geometry follows Windows window and monitor coordinates and the application is per-monitor DPI aware. Unusual display drivers, mixed display arrangements and remote sessions may still require testing.
Configuration is stored locally as schema-versioned JSON at %LOCALAPPDATA%\SightAdapt\settings.json. Supported older settings are normalized and migrated; writes are committed atomically so a failed save does not replace the last committed configuration.
Read how the overlay works or inspect the complete functionality document.
+How it works
SightAdapt observes window metadata, resolves your saved assignment and renders correction through Windows display APIs.
The diagram is built from text and HTML so its meaning remains available when images or styles are unavailable.
SightAdapt does not inject DLLs, write target-process memory or modify target application files. It reads limited window and process metadata required to identify the selected application.
Free and open source · Windows 10 and 11 · Alpha
+SightAdapt™ applies configurable color correction to individual Windows application windows. Keep the rest of the desktop unchanged, assign profiles per application and stop every overlay immediately when needed.
+ +System-wide display filters can affect every monitor, application and notification. SightAdapt targets the active application through a separate overlay, allowing different applications to use different visual profiles while unrelated windows remain unchanged.
Assign a saved color profile to an application and let SightAdapt activate it when that application becomes active.
Use the application profile for native popup menus or assign a different menu profile when menu contrast needs separate treatment.
Choose the client area, full window, current screen or all screens according to the application and display setup.
Adjust output black and white levels, brightness, contrast, saturation and hue, then preview the result before assigning it.
Toggle the active window temporarily or save an automatic application assignment.
Remove active overlays from the notification-area menu through the emergency-disable command.
Leave the application unchanged.
Apply a fixed full inversion.
Use an editable lower-intensity starting profile.
Duplicate and adjust a profile for a particular application or display.
Individual preferences: Visual preferences are individual. SightAdapt does not choose a medically appropriate profile and does not replace professional advice.
+SightAdapt stores its configuration locally. The current alpha does not transmit captured screen content, does not inject code into target applications and does not install a kernel driver. Application assignments may include executable paths and file metadata stored in the local settings file.
+ +SightAdapt is developed in a public GitHub repository and distributed under the MIT License. Source code, architecture documentation, test results, issues and release history are available for inspection.
+ +#32768 popup menus.License and legal notices
SightAdapt is distributed under the MIT License. Release-specific legal and supply-chain files are published beside each official binary.
MIT License
+
+Copyright (c) 2026 KeyffMS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+ The official release publishes third-party notices, exact Microsoft/.NET notices, dependency inventory, license report and SPDX Software Bill of Materials (SBOM).
SightAdapt is not intended to circumvent, disable, avoid or interfere with digital-rights management (DRM), protected-content restrictions, authentication, licensing checks, encryption or other access controls. Protected content may remain unavailable, blank, excluded or unfilterable.
SightAdapt™ is an unregistered product mark used by KeyffMS / aiteracja.pl. The ™ notation identifies product branding and does not represent a registered trademark.
Third-party product names and trademarks are the property of their respective owners and are used only to identify user-selected applications. SightAdapt is not affiliated with or endorsed by those owners.
+Microsoft, Windows and .NET are trademarks of the Microsoft group of companies. Their names identify the operating-system platform, runtime components or technical compatibility only.
+Read the complete third-party names and protected-content notice.
+Privacy
The current SightAdapt alpha stores configuration locally and does not transmit captured screen content or behavioral telemetry.
To identify the active application and render the configured overlay, SightAdapt may read window handles, process and GUI thread identifiers, display names, executable names and paths, file-description metadata, window geometry and foreground state.
Saved settings can include assignments, enabled states, selected profiles, menu-profile references, overlay scopes and user-defined tuning values.
Settings are stored at %LOCALAPPDATA%\SightAdapt\settings.json. The file is human-readable JSON and can contain executable paths. Those paths may contain a Windows account, organization or project name.
To reset local configuration, exit SightAdapt and remove the file. Starting SightAdapt again recreates defaults.
The current application does not intentionally save screenshots, record the screen, build a screen-content history, perform image recognition or transmit captured screen content.
It contains no telemetry, product analytics, advertising, remote crash reporting, automatic diagnostic upload, cloud synchronization or automatic update check.
Information reaches the project owner only when a person voluntarily sends it through GitHub or another support route. Before sharing logs, settings, screenshots or paths, remove usernames, organization names, private directory names, tokens and unrelated content.
KeyffMS / aiteracja.pl. The current public contact route is the GitHub repository owner. For non-public material, request a private communication route before sending it.
+Privately submitted support material is limited to people needed to investigate the report and is normally deleted no later than 90 days after the related support matter closes, except when a longer period is needed for an active security investigation, legal obligation, dispute or agreed follow-up.
+Policy source: PRIVACY.md. Last updated in the repository: 29 July 2026.
+Releases
GitHub Releases are the authoritative binary publication record. This page is a human-readable index and does not host divergent binaries.
| Version | Date | Status | Platform | Official files |
|---|---|---|---|---|
| 0.5.0.50-alpha | 24 September 2026 | Alpha / prerelease | Windows x64 | Windows ZIP · checksums · SBOM |
Tag v0.5.0.50-alpha is immutable and points to the published release source. GitHub-generated source archives are source snapshots; the file named SightAdapt-0.5.0.50-alpha-win-x64.zip is the official Windows binary package.
A compromised or unsafe release is not silently replaced. The immutable release record remains identifiable and receives an explicit withdrawal notice; a corrected version is published under a new version and tag.
Security
The current alpha has explicit process and display boundaries and has not completed a formal security review.
Windows integrity boundaries can affect access to elevated target applications. A target may require SightAdapt to run at a compatible integrity level. Do not weaken operating-system security settings to force compatibility.
The notification-area menu provides Emergency disable all overlays. It removes active overlays immediately and disables automatic mode before settings persistence is attempted.
The current alpha has not completed a formal security review and must not be treated as production-ready assistive software. Compatibility and endurance testing remain incomplete.
Do not disclose security-sensitive issues in a public GitHub issue. Until a dedicated private reporting channel is configured, contact the repository owner through GitHub and request a private communication channel.
Do not post passwords, tokens, private keys, confidential screenshots, unredacted executable paths or sensitive customer information.
Support and contact
Use public issues for non-sensitive defects and feature requests. Ask for a private route before sending sensitive or security-related material.
Start with the documentation and FAQ.
Use the GitHub issue tracker with a minimal, sanitized reproduction.
Use the GitHub issue tracker and describe the user problem and expected behavior.
Follow the private security-reporting guidance. Do not disclose exploitable details publicly.
SightAdapt is published by KeyffMS / aiteracja.pl. The public project record is the GitHub repository.
Privacy: Do not attach screenshots containing private information or publish unredacted paths, usernames, organization names or confidential application content.