Skip to content

Add kensaku - #10929

Merged
probonopd merged 1 commit into
masterfrom
discover/kensaku
Nov 1, 2026
Merged

probonopd merged 1 commit into
masterfrom
discover/kensaku

Conversation

@probonopd

Copy link
Copy Markdown
Member

Repository: https://github.com/yjid/kensaku

Search inside documents, code, and even screenshots - instantly and locally. A free, open-source file launcher with OCR, semantic search, and MCP agent access.

  • Stars: 198
  • Release with the AppImage: v1.0.10 (2026-10-29T13:19:05Z)
  • AppImage asset: kensaku_1.0.10_amd64.AppImage
  • License: MIT

Found by .github/workflows/discover-apps.yml, which looks for GitHub
repositories that publish AppImages but are not in the catalog yet. This
entry was not tested by a human; please review it before merging.

Discovered on GitHub as publishing AppImages on its releases, by
discover-apps.yml. Needs a maintainer's review.
@github-actions

Copy link
Copy Markdown
Contributor

✅ Test passed

@yjid: this pull request adds the AppImage from your GitHub repository to the AppImage catalog; the test reports the following. Could you have a look?

Please check that the screenshot shows the application's main window.

kensaku

kensaku

Tested:

Compatibility: not self-contained: uses the C library of the system; references glibc 2.35

Names:

WARNING: The names of the repository, the AppImage and the README differ: repository 'kensaku', AppImage 'kensaku', README 'Find it the way you remember it'

Notes:

  • File name 'kensaku': all-lowercase names are typically used for command line tools, but the desktop file does not set Terminal=true. If this is a graphical application, please name the file after the application as it is spelled, with capitals where it has them (e.g. 'Krita'); if it is a command line tool, set Terminal=true in its desktop file.

Warnings:

  • The repository, the AppImage and the README (whichever exist) call the application by different names (see the remarks below). Please check that they all belong to the same application, and that the name of the file in data/ is the right one.
  • The window is mostly dark, so the application seems to start in a dark theme although the test system is not set to dark mode. Please use a light mode by default and use the dark theme only when the system is configured for dark mode (e.g. the GTK/Qt or theme setting) or the user chooses it in the settings.
  • The AppImage contains no update information, so users cannot update it with AppImageUpdate or similar tools. Please consider embedding it when building the AppImage (e.g., appimagetool -u) and publishing the .zsync file next to the AppImage; see https://docs.appimage.org/packaging-guide/optional/updates.html

Commit ccbc0e7. Full log

@yjid

yjid commented Nov 1, 2026

Copy link
Copy Markdown

Thanks for the automated test! Confirmed from my side.

One note on the screenshot: it shows Kensaku's first-run setup wizard ("Where do your files live?") rather than the main search window, because the test environment starts with a fresh profile and setup has not been completed yet. That is the expected first screen on a clean launch, and the AppImage itself starts fine.

If the catalog needs a screenshot of the main search window instead, happy to provide one — just let me know.

@probonopd

Copy link
Copy Markdown
Member Author

/appstream

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

How to add AppStream metadata (and your own screenshots)

The catalog page of an application can show a description, a summary, links and, above all, screenshots of your choice. They come from an AppStream metainfo file inside the AppImage.

1. Write the file. Save it as usr/share/metainfo/<id>.metainfo.xml inside the AppDir (the directory the AppImage is made from), where <id> is the <id> of the file, e.g. io.github.yourname.YourApp:

<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
  <id>io.github.yourname.YourApp</id>
  <name>YourApp</name>
  <summary>One line saying what it does</summary>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>MIT</project_license>
  <description>
    <p>A few sentences about the application.</p>
  </description>
  <launchable type="desktop-id">yourapp.desktop</launchable>
  <url type="homepage">https://github.com/yourname/YourApp</url>
  <screenshots>
    <screenshot type="default">
      <caption>The main window</caption>
      <image>https://raw.githubusercontent.com/yourname/YourApp/main/screenshots/main.png</image>
    </screenshot>
  </screenshots>
  <releases>
    <release version="1.0.0" date="2024-01-31"/>
  </releases>
</component>
  • <launchable> names the .desktop file of the AppImage.
  • The screenshot is a web address (https://…) of a PNG image that stays there, e.g. a file in your repository. The file itself does not go into the AppImage.
  • <project_license> is the license of the application, as an SPDX identifier.

2. Check it: appstreamcli validate --no-net usr/share/metainfo/<id>.metainfo.xml (from the appstream package of your distribution).

3. Put it into the AppImage.

  • appimagetool, linuxdeploy, and other tools that build from an AppDir: copy the file to AppDir/usr/share/metainfo/ before building. appimagetool checks it while building.
  • electron-builder: add it to the AppImage with extraFiles, e.g. in package.json: "linux": { "extraFiles": [ { "from": "build/<id>.metainfo.xml", "to": "usr/share/metainfo/<id>.metainfo.xml" } ] }.
  • Other tools: see https://docs.appimage.org/packaging-guide/optional/appstream.html

4. Publish a new release with the new AppImage, then comment /retest on the pull request.

Note about screenshots: the automated test still runs the application and takes a screenshot of its own. The test needs it to check that the application starts and shows a window, so the test has to pass as before. But if the AppStream metadata names a screenshot, the catalog page shows that screenshot (the one marked type="default", else the first) instead of the automated one.

@probonopd probonopd added the screenshot-ok Test passed; the screenshot was checked and looks fine label Nov 1, 2026
@probonopd

Copy link
Copy Markdown
Member Author

Why do we get dark mode?

@yjid

yjid commented Nov 1, 2026

Copy link
Copy Markdown

Thanks for the review! The dark frame is the pre-paint default: index.html ships with data-theme="dark" so the UI is never unstyled before React mounts, and on a fresh install useTheme swaps it to the OS preference (prefers-color-scheme) once get_config resolves. The screenshot was likely captured during that initial paint, before the swap landed.

Existing installs keep their saved theme (config is the durable source); fresh installs already follow the OS via systemTheme() in src/hooks/useTheme.ts. I'll remove the hardcoded dark initial attribute so even the first frame matches the OS, then retest.

@probonopd
probonopd merged commit 7005a1c into master Nov 1, 2026
3 checks passed
@probonopd
probonopd deleted the discover/kensaku branch November 1, 2026 16:11
@yjid

yjid commented Nov 1, 2026

Copy link
Copy Markdown

Update: the pre-paint dark default is fixed — index.html now resolves the theme from prefers-color-scheme before React mounts (commit cd122e1), so the first frame matches the OS on a fresh install. The fix will ship in the next release. Could you re-run the test (/retest) once that release's AppImage is available? AppImage update info is still not embedded, so I noted that limitation in the install docs; in-app updates are tracked separately (PLAN.md 4.3).

@probonopd

Copy link
Copy Markdown
Member Author

/retest

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

This pull request is merged, so its entries are tested again in a new pull request: #11118. Please follow the test there (comment /retest there to test again); this conversation is locked now.

@probonopd probonopd mentioned this pull request Nov 1, 2026
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Nov 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

auto-discovered screenshot-ok Test passed; the screenshot was checked and looks fine

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants