<feed xmlns='http://www.w3.org/2005/Atom'>
<title>searxng/searx/cache.py, branch master</title>
<subtitle>Free internet metasearch engine which aggregates results from various search services and databases</subtitle>
<id>https://git.ikboikov.net/searxng/atom?h=master</id>
<link rel='self' href='https://git.ikboikov.net/searxng/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/'/>
<updated>2026-07-17T10:24:47Z</updated>
<entry>
<title>[fix] cache: maintenance period comment duration 2h instead of 1h</title>
<updated>2026-07-17T10:24:47Z</updated>
<author>
<name>Bnyro</name>
<email>bnyro@tutanota.com</email>
</author>
<published>2026-07-17T10:23:30Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=de8f73f43422588163782c956ae244a41f6bbba0'/>
<id>urn:sha1:de8f73f43422588163782c956ae244a41f6bbba0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[fix] engine cache: return default value when cache entry expired</title>
<updated>2026-07-16T10:37:26Z</updated>
<author>
<name>Bnyro</name>
<email>bnyro@tutanota.com</email>
</author>
<published>2026-07-15T16:05:21Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=f2432e33d6e3778cb0e976d602bb259d60081d64'/>
<id>urn:sha1:f2432e33d6e3778cb0e976d602bb259d60081d64</id>
<content type='text'>
It's possible that it's expired but has not yet been automatically deleted
by the periodic maintenance because that, by default, runs only every 2 hours.

Related:
- see https://github.com/searxng/searxng/pull/6409#discussion_r3584712601
</content>
</entry>
<entry>
<title>[fix] sqlitedb: create DB Schema (DDL) during app initialization (hardening) (#6187)</title>
<updated>2026-06-10T13:48:49Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2026-06-10T13:48:49Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=26801e92af55cfef264fc34f0b84473e5bfc94cd'/>
<id>urn:sha1:26801e92af55cfef264fc34f0b84473e5bfc94cd</id>
<content type='text'>
The initialization of the DB schema ("base schema") has so far been done on
demand, which causes race conditions with competing threads and processes.

The DDL statements for creating the "base schema" are now executed as part of
the initialization of the app.

Further improvements were made to harden the database applications:

- Wikidata &amp; Radio-Browser engine perform their initialization only once (so far
  the initialization was carried out in each thread/process).

- If multiple processes try to set DB's WAL mode when opening the DB at the same
  time, this usually leads to another race condition, which is now also caught.

Related:

- https://github.com/searxng/searxng/issues/6181#issuecomment-4586705

Closes: #6181

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>[fix] engine wikidata - fails to initialize with HTTP 403 (#6081)</title>
<updated>2026-05-15T14:21:47Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2026-05-15T14:21:47Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=afafca93f30939f213c1bc3fa3379e5ed883122d'/>
<id>urn:sha1:afafca93f30939f213c1bc3fa3379e5ed883122d</id>
<content type='text'>
In order not to be further blocked, the WIKIDATA_PROPERTIES are cached, which
drastically reduces the WD-SQL request.

BTW: improve type hints

Closes: https://github.com/searxng/searxng/issues/6051

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>Revert "[fix:py3.14] Struct fields aren't discovered in Python 3.14"</title>
<updated>2025-11-28T12:38:37Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-11-28T11:34:49Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=20de10df4eb02f228512604ed1db092eaa08ec3e'/>
<id>urn:sha1:20de10df4eb02f228512604ed1db092eaa08ec3e</id>
<content type='text'>
This reverts commit 8fdc59a7604cd661638586ff0381530da86eb76c.
</content>
</entry>
<entry>
<title>[fix:py3.14] Struct fields aren't discovered in Python 3.14</title>
<updated>2025-10-08T11:47:22Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-10-07T13:02:26Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=8fdc59a7604cd661638586ff0381530da86eb76c'/>
<id>urn:sha1:8fdc59a7604cd661638586ff0381530da86eb76c</id>
<content type='text'>
This is a temporary workaround for #5284 [1].  However, the problem must be
solved at a different level, in msgspec [2].

[1] https://github.com/searxng/searxng/issues/5284
[2] https://github.com/jcrist/msgspec/issues/847

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[mod] ExpireCacheSQLite - implement .setmany() for bulk loading</title>
<updated>2025-09-28T05:32:41Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-09-24T17:34:03Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=18a58943ccaa324b39232fa503462eb39f407399'/>
<id>urn:sha1:18a58943ccaa324b39232fa503462eb39f407399</id>
<content type='text'>
[1] https://github.com/searxng/searxng/issues/5223#issuecomment-3328597147

Suggested-by: Ivan G &lt;igabaldon@inetol.net&gt; [1]
Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[mod] drop: from __future__ import annotations</title>
<updated>2025-09-03T11:37:36Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-08-24T13:16:46Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=f24d85bc4be732b8edb2157ef4ecf35d380d2b45'/>
<id>urn:sha1:f24d85bc4be732b8edb2157ef4ecf35d380d2b45</id>
<content type='text'>
Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[mod] addition of various type hints / tbc</title>
<updated>2025-09-03T11:37:36Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-08-22T15:17:51Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=57b9673efb1b4fd18a3ac15e26da642201e2cd33'/>
<id>urn:sha1:57b9673efb1b4fd18a3ac15e26da642201e2cd33</id>
<content type='text'>
- pyright configuration [1]_
- stub files: types-lxml [2]_
- addition of various type hints
- enable use of new type system features on older Python versions [3]_
- ``.tool-versions`` - set python to lowest version we support (3.10.18) [4]_:
  Older versions typically lack some typing features found in newer Python
  versions.  Therefore, for local type checking (before commit), it is necessary
  to use the older Python interpreter.

.. [1] https://docs.basedpyright.com/v1.20.0/configuration/config-files/
.. [2] https://pypi.org/project/types-lxml/
.. [3] https://typing-extensions.readthedocs.io/en/latest/#
.. [4] https://mise.jdx.dev/configuration.html#tool-versions

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
Format: reST
</content>
</entry>
<entry>
<title>[mod] data: implement a simple tracker URL (SQL) database</title>
<updated>2025-06-23T20:12:18Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-05-24T15:53:57Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=2dd4f7b9721b201dc51cb2fb06d32cb1cb833458'/>
<id>urn:sha1:2dd4f7b9721b201dc51cb2fb06d32cb1cb833458</id>
<content type='text'>
On demand, the tracker data is loaded directly into the cache, so that the
maintenance of this data via PRs is no longer necessary.

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
</feed>
