- Formal NOTICE & Attribution: Added root
NOTICEfile documenting copyright, unprivileged execution (RunAsInvoker), air-gapped zero network egress (INV-LOCAL-01), § 521 BGB statutory liability limitation, and PSF-2.0 / Tcl-Tk license attributions. - CI Matrix & Workflow Hardening:
- Extended
.github/workflows/source-platform-smoke.ymlto trigger on bothmainandmasterbranches, addedwindows-latestto runner matrix alongsideubuntu-latestandmacos-latest, enforced job-leveltimeout-minutes: 10, concurrency cancellation, and added metadata contract test execution in CI. - Hardened
.github/workflows/stale.ymlwithtimeout-minutes: 10and concurrency cancellation guards. - Hardened
.github/workflows/welcome.ymlwithtimeout-minutes: 5and scoped concurrency cancellation guards.
- Extended
- PEP 621 Standardisierung: Declared
license-filesinpyproject.toml(LICENSE,NOTICE,THIRD_PARTY_LICENSES.md,THIRD_PARTY_LICENSES.txt), addedNoticeURL in[project.urls]. - Pytest Configuration & Windows Defense: Configured
minversion = "7.0",addopts = "-ra -v --basetemp=.pytest_tmp"to eliminate Windows junction permission errors, and explicitnorecursedirsexclusion rules. - Multi-Host & Cloud Sync Defense: Hardened
.gitignoreagainst synchronization artifacts (*-WORKSTATION-LG*,*-ASUS*,*-LAPTOP*,*-Mac Studio*, etc.) and system-wide lock patterns (LOCK.user.*,LOCK.until.*,LOCK.condition.*, etc.). - Automated Contract Tests: Expanded
tests/test_metadata.pywith 4 new contract tests verifyingNOTICEpresence,.gitignoredefense patterns, workflow hardening (timeout, concurrency, permissions), and PEP 621 license-files declarations (60/60 tests passing, 100% green).
- Configured
[tool.ruff]linter inpyproject.tomland fixed unused imports/variables inSQLiteViewer.pyand test modules (zero ruff lint warnings). - Updated test badge in
README.mdandREADME_de.mdto reflect 60 passing tests and linkedNOTICE. - Updated
llms.txtcontext index (Stand: 2026-09-22) with NOTICE architecture mapping.
- Web-Companion Internationalization (SV-I18N-05):
- Zweisprachige Lokalisierungsschicht (
web_companion/i18n.js) fuer Deutsch (DE) und Englisch (EN) mit Fallback-Kette (locale -> en -> de -> key). - Dynamischer Sprachwechsler (DE / EN) im Hero-Header mit automatischer Browser-Spracherkennung und lokaler Persistenz via
localStorage. - Vollstaendige
data-i18n-Deklaration aller Texte, Placeholders, Tooltips und ARIA-Labels im Web-Companion (web_companion/index.html). - Mehrsprachige Metadaten- und Zeilenzusammenfassung (
formatSourceSummary) inweb_companion/library.js. - Offline-Shell-Cache-Aktualisierung (
web_companion/sw.js, Cache-Versionsqliteviewer-companion-v4). - Umfassende Node.js Test-Suite (
web_companion/tests/i18n.test.mjs) fuer Dictionary-Paritaet, Fallbacks, Parameter-Interpolation und DOM-Uebersetzung.
- Zweisprachige Lokalisierungsschicht (
- 16-Punkte wechselseitige zweisprachige Schnellnavigation: Vollstaendige Paritaet zwischen
README.md(EN) undREADME_de.md(DE) mit identischer Ankerstruktur. - Visuelle Systemarchitektur & Export-Lebenszyklus: Mermaid-Flussdiagramm (
flowchart TD) und Sequenzdiagramm (sequenceDiagrammitautonumber) unter strikter Einhaltung vonHOOK-BANNER-ASSET-01(vollstaendig quotierte Kantenbeschriftungen und Knotentexte). - Zielgruppen-Personas & SEO-Entdeckbarkeit: Konkrete Profile
[PERSONA-01]bis[PERSONA-04]mit High-Intent-Suchphrasen fuer Entwickler, Analysten, Admins und Windows Store Anwender. - 10-Dimensionen-Vergleichsmatrix: Gegenueberstellung zu DB Browser for SQLite, DBeaver, SQLiteStudio und Cloud-SaaS-Tools entlang der Systeminvarianten
INV-LOCAL-01bisINV-LOCAL-10. - Drittanbieter-Lizenzaudit:
THIRD_PARTY_LICENSES.mdmit detailliertem SPDX-Audit fuer Python Standardbibliothek (sqlite3), Tkinter (Tcl/Tk License), Bestaetigung von null externen Runtime-Abhaengigkeiten und Zero-Copyleft-Garantie auf Nutzerdaten. - Lokales Marketing-Register:
MARKETING-LOG.txtim Projekt-Root zur Dokumentation von Positionierung, Zielgruppen, Store-Readiness und Release-Pruefungen. - PEP 621 Projekt-URLs:
pyproject.tomlum[project.urls]fuer Dokumentation, LLM-Kontext, Lizenzaudit, Store und Issues sowieaddopts = "-ra -v"erweitert. - Automatisierte Vertragstests: Neue Testsuite
tests/test_metadata.pyzur Validierung von Banner-Schutz, Mermaid-Syntax, Sprachparitaet und Manifest-Konsistenz.
- Shields.io Badges in
README.mdundREADME_de.mdmodernisiert (Python 3.10+, MIT, Microsoft Store ID9P6H501XB8JT, Zero Egress, RunAsInvoker, 48h SLA, Oekosystemfile-bricks/open-bricks). llms.txtaktualisiert (Stand 2026-09-14, Testanzahl, Verknuepfung mit Personas, Invarianten und Lizenzaudit).- Paket- und Modulversionen auf 2.1.0 harmonisiert.
- Store-Paket registrierte keinen Datenbank-Handler. Das
AppxManifest.xmldeklarierte keineuap:FileTypeAssociation; eine aus dem Store installierte App erschien deshalb nicht unter „Öffnen mit" und ein Doppelklick auf eine.dbstartete sie nicht. Ergänzt:.db,.sqlite,.sqlite3sowie der Ausführungsaliassqliteviewer.exe. Die Auswertung vonsys.argv[1]war bereits vorhanden und wird jetzt durch Tests festgehalten. - Falsche Paket-Identität im Repository.
store_package.jsonführteGeiger.SQLiteViewer, im Partner Center ist die App aber alsGeiger.SQLiteViewerProregistriert (Produkt9P6H501XB8JT). Ein aus diesem Stand gebautes Paket hätte nicht zur veröffentlichten App gepasst. Korrigiert,store_idergänzt. - Versionsdrift behoben:
APP_VERSIONstand auf2.0.0,pyproject.tomlauf2.0.1.
tests/test_cli_db_argument.py— hält die Argument-Auswertung fest und prüft zusätzlich, dass die im Manifest deklarierten Endungen mit denen des Dateidialogs übereinstimmen. Bewusst ohne GUI-Instanziierung:SqlViewer()blockiert ohne Anzeige, statt zu scheitern.- Sprachen
de-DEunden-USim Paket hinterlegt.
- Paketversion
2.0.0.0→2.0.1.0;MaxVersionTested10.0.19041.0→10.0.22621.0. - Manifest und Store-Icons werden aus
store_package.jsonerzeugt (store-packager 2.2.0).
- Eingereicht am 2026-08-23, Submission
1152921505701721645, StatusCertification.
- Standard PEP 621
pyproject.tomlconfiguration with metadata, dependencies, andpytestsettings. - Test suite status badge (30 passing tests) and LLM-Ready badge added to
README.mdandREADME_de.md. - GFM LLM note callouts (
> [!NOTE]) added toREADME.mdandREADME_de.md.
-
Updated
llms.txtLast-checked header to2026-07-27and verified test suite assertions (30/30 passing pytest tests). -
web_companion/library.js:sortRows(rows, columns, options)— clientseitige Spalten-Sortierung als pure-logic-Funktion (DOM-frei). Sortiert numerisch oder perlocaleCompare, null-Werte stets zuletzt, unbekannte Spalte gibt unveränderte Kopie zurück. Sieben neue Tests inweb_companion/tests/library.test.mjs. -
web_companion/app.js: Spaltensortierung per Klick auf Tabellenkopf — Event-Delegation auf<thead>, Sortierrichtung per Wiederholklick umkehren, Sort-Indikator (↑/↓) im aktiven Spaltenkopf,aria-sort-Attribut gesetzt, Tastatur-Bedienbarkeit (Enter/Leertaste) übertabIndex+keydown-Handler. -
web_companion/style.css: Stile für klickbare Spaltenköpfe (cursor: pointer, Hover-Hintergrund, Focus-Ring,.sort-indicatorin Akzentfarbe). -
web_companion/library.js:exportToCsv(columns, rows)— erzeugt RFC-4180-konformes CSV für die aktuell sichtbaren Zeilen (CRLF-Trennung, Blob-Werte als lesbarer Text, Quoting bei Komma/Anführungszeichen/Zeilenumbrüchen, null → leeres Feld). Sechs neue Tests inweb_companion/tests/library.test.mjs. -
web_companion/: neuer Button „CSV exportieren" im Ergebniszeilen-Panel — lädt die gefilterten sichtbaren Zeilen als<datenbankname>.csvherunter; Button bleibt deaktiviert bis ein Export geladen ist. -
German
README_de.mdwith local-first usage, privacy context, comparison table, and SQLiteViewer search phrases. -
web_companion/: static offline-first viewer forsqliteviewer-export-v1.jsonwith local file import, demo mode, row filtering, metadata cards, LocalStorage restore, manifest, service worker, and Node smoke tests. -
Three regression tests in
tests/test_execute_sql.pycovering sort-indicator propagation in search mode, redundant-binding double-sort prevention, and empty-table CSV export. -
tests/source_platform_smoke.py: headless smoke tests for Linux and macOS source installs — covers module import, export serialization,_build_export_payload, SQL execution, and identifier escaping via fake infrastructure (no display required). -
.github/workflows/source-platform-smoke.yml: CI matrix forubuntu-latestandmacos-latestrunning the smoke tests on every push/PR tomain. -
llms.txtwith canonical repository, use cases, key files, discovery phrases, and boundaries for LLM/search crawlers. -
Local release bundle workflow documented for the ignored
releases/workspace; public source files stay lightweight. -
Application icon support in the Tk window.
-
Optional startup argument for opening a database file directly.
-
RELEASES.mddocuments the local release bundle layout. -
SQLiteViewer.specis tracked for reproducible PyInstaller builds. -
Optional JSON companion export
sqliteviewer-export-v1.jsonwith source metadata, row limits, visible columns, and serialized result rows. -
EXPORTFORMAT.mddocuments the JSON export contract for desktop-to-web/mobile companion workflows. -
Reproducible Windows Store screenshot generation under
_WARTUNG/generate_store_screenshots.py; generated screenshots stay in the ignored localreleases/windowsstore/screenshots/workspace whileREADME/screenshots/main.pngis refreshed for GitHub. -
Local WACK notes remain in the ignored
releases/windowsstore/workspace; public root docs now describe only the source-controlled workflow.
translator.py:TranslationSystem.t()lieferte bei leeren Übersetzungs-Strings intranslations.json("") den leeren String statt des deutschen Fallback-Texts.
- Updated
llms.txtLast-checked timestamp to 2026-07-22 and verified marketing, SEO, and discoverability context. - Internal platform plan now separates desktop database inspection from read-only Web/PWA review and keeps Android/iOS as export-first companion targets instead of native SQLiteViewer clones.
- README now links the German guide and expands discovery phrases for
file-bricks/SQLiteViewer, Python/Tkinter SQLite browser searches, and SQLite Viewer Pro. llms.txtnow records the 2026-06-12 marketing/discovery check and broader search/disambiguation notes.- Public docs now describe the export-first PWA path as the implemented mobile/browser companion strategy; raw
.sqliteparsing stays a later optional evaluation step. - README is now English-first with a Start Here table, clearer local-first positioning, search/disambiguation context, and repaired German umlauts.
- README now embeds the existing GUI screenshot from
README/screenshots/main.png. - Repository URLs and community health files now point to
file-bricks/SQLiteViewer. START.batnow forwards command-line arguments and reports missing Python cleanly.- Store listings and Store metadata now reflect the current CSV/JSON export feature set and the active
file-bricks/SQLiteViewerprivacy/support links. - Store listing and screenshot workflow notes now avoid requiring ignored release artifacts in the public repo.
- Community workflows now use
actions/stale@v10andactions/first-interaction@v3with current input names.
tests/source_platform_smoke.pybootstraps the project root intosys.pathbefore the first import, so the documented direct smoke commandpython tests/source_platform_smoke.pynow works outsidepytestinstead of failing withModuleNotFoundError: SQLiteViewer.- Web Companion zeigt den vollständigen lokalen
database_pathnicht mehr in der sichtbaren Shell-Zusammenfassung; dort stehen jetzt Datenbankname und ein Hinweis, dass der volle Pfad im Export ausgeblendet wird. - Exportaktionen zeigen jetzt klarer ihren aktiven Kontext an: Tabellenansicht und SQL-Ergebnis bekommen eigene CSV-/JSON-Beschriftungen, und leere Exportzustände sind direkt deaktiviert statt erst in einen Warn-Dialog zu laufen. Regressionen ergänzt in
tests/test_execute_sql.py. - SQL-Editor und Daten-Tab halten ihren Export-/View-State jetzt getrennt:
execute_sql()schreibt Query-Ergebnisse nicht mehr in den Data-Tab-State, sondern in eigenesql_result_*-Felder; Exporte wählen abhängig vom aktiven Kontext den passenden Snapshot. Regressionen ergänzt intests/test_execute_sql.pyundtests/source_platform_smoke.py. _search_datanow fetches column names viaPRAGMA table_info()instead of relying onself.current_columns. After running a SQL query in the SQL Editor,current_columnsreflected the query result columns rather than the actual table columns, causing a silentSuchfehler: no such column: ...whenever the search box was used afterwards. Three regression tests added (tests/test_bugsweep_20260627.py).- Web companion metadata cards now render imported export metadata as inert text instead of interpolating it into
innerHTML. - Sorting an active table search now keeps the filtered result set and export context intact instead of jumping back to the full unfiltered table.
- Toolbar now uses a visible
Suche:label instead of an icon-only search hint, and the refresh action is labeled consistently asAktualisierenin the German UI. - SQL Editor now detects result-returning statements via
cursor.description, so queries with leading comments are rendered correctly instead of being treated as DML. - SQL Editor now refreshes the currently selected table after data-changing statements instead of jumping back to the first table in the database.
- Search now escapes
%,_, and\correctly so literal LIKE searches do not fail on wildcard-containing terms. - Opening a database now only closes the current session after the new read-only connection succeeds, so failed open attempts keep the existing database in place.
- Sort indicator (↑/↓) was absent from column headings when viewing a search result —
_search_datanow adds the indicator to column headings when a sort column is active. - Double sort triggered by a redundant
<Button-1>binding combined with the Treeviewheading command— removed the explicit binding;heading commandalone handles sorting. export_csvblocked empty-table exports with a "no data" warning — now exports a header-only file consistently withexport_json.
- SQL Editor with syntax highlighting and query execution
- Schema view with CREATE TABLE inspection
- Full-text search across all columns
- CSV export functionality
- Column sorting (click headers)
- Keyboard shortcuts (Ctrl+O, Ctrl+F, Ctrl+E, F5, F9)
- Dark theme for code editors
- Table info display (row count, indexes, foreign keys)
- Complete rewrite from basic viewer to full-featured browser
- Upgraded UI with notebook tabs (Data, Schema, SQL)
- Improved identifier escaping for safe SQL operations
- Initial release
- Basic table browser with Treeview
- Database open dialog
- Row limit control
- Refresh functionality