8000 Releases · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

Releases

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 12:02
  • Import videos and podcasts by their address. Turn on Settings › Documents › Import videos and podcasts by their
    address (off by default), then Import › Web page › It's a video or a podcast. Lens downloads its media with yt-dlp,
    fetched on first use, through the same public-addresses-only proxy as web pages, and transcribes it
    (Videos and podcasts).

  • Zip and tar archives. Upload a .zip, .tar or .tgz and Lens lists what's in it, keeps its files, and reads the
    ones it can as resources of their own (a WhatsApp export with media becomes the chat and its photos). Encrypted
    entries, links and nested archives aren't opened, and unpacking stops at 100 files or 512 MB
    (Archives).

  • Camera RAW and HEIC photos. DNG, CR2, CR3, NEF, ARW, ORF, RAF, RW2, HEIC and HEIF can be uploaded and scanned
    when anytopdf is here or a conversion node is set: anytopdf reads them, and RAW photos get the new Camera RAW photo
    content type. Without anytopdf, Lens says what reading them needs (anytopdf).

  • Capture many web pages at once. Import › Web page › Many pages at once takes pasted links, a browser's
    bookmark export or Chrome's Bookmarks file. Each link is captured like a single page, and its bookmark folders
    become its tags. Links already captured in the namespace are left as they are
    (Web pages).

  • JSON and JSON Lines as records. A JSON file that isn't a transcript (orders, contacts, sensor logs, an API
    dump) is read one record at a time, every field searchable, each line pointing back at its record; it gets the new
    Records content type. JSON files can now be uploaded with the other files (Records).

  • Export an evidence PDF. A resource's Export menu, and a collection's page, download it as one PDF made by
    anytopdf: each file's pages (audio and video with their transcript), searchable, then a provenance page with every
    file's SHA-256, so it can be handed on and checked (Evidence PDFs).

  • anytopdf can find faces. Settings › Video, OCR, faces and objects › Face engine › anytopdf: its plugins find
    the faces in frames and pages and describe them with the same SFace model, so a server needs no OpenCV, and the
    people a namespace already knows still match (Video). Who someone is stays in Lens.

  • Search photos by what they show. Turn on Settings › Search › Search photos by what they show (off by default)
    and Lens downloads anytopdf's CLIP model (about 600 MB). Search then also shows the photos most like what you typed,
    such as "a bus on a city street", whatever words are on them (anytopdf).

  • anytopdf can find objects. Settings › Video › Object detector › anytopdf runs Lens's YOLOX model with
    anytopdf's objects plugin (sandboxed, no network), so a lean server or a Raspberry Pi finds objects without ONNX
    Runtime. Lens fetches anytopdf and the model on first use. YOLOX on ONNX Runtime stays the default
    (Objects).

  • Places and dates from anytopdf. Turn on Settings › Analysis › Find places and dates with anytopdf (off by
    default) and analysis also asks anytopdf, offline, for the places a text names, the dates it gives (with their ISO
    value) and where a photo was taken (from its GPS fix, with exiftool installed). They become places and dates in the
    graph, and the resource's Details tab lists them for the namespace's members
    (anytopdf).

  • WhatsApp, Telegram, Slack and iMessage chats. Import an exported chat (or upload a WhatsApp .txt) and Lens
    reads it message by message, with who sent each one as its speaker and when it was sent, so the assistant can
    answer from your real conversations. It gets the new Chat export content type
    (Chat exports).

  • anytopdf can make Lens's PDFs. Settings › Documents › Make PDFs with anytopdf. On auto (the default) nothing
    changes unless anytopdf is here: then it reads the emails, web pages and text a server without Chromium couldn't.
    Choose "For every document and image" and Lens downloads anytopdf 0.4.0 (checked against its release checksum);
    it then also reads images, flattening a photographed page before OCR. Or set a conversion node, another machine
    running anytopdf queue serve, and a small server reads Word, PowerPoint and spreadsheet files too
    (anytopdf).

  • Where anytopdf made a document's PDF, Lens uses the words it read. anytopdf 0.4.0 lists every word it found on
    a picture page with where it is, so a photographed or scanned page's text comes from anytopdf's OCR, block by block
    with its place on the page, without Lens reading the page again. Pages without those words are read as before.

  • A conversion node gets the token and nothing more. Lens refuses a node that redirects (so its token never
    goes on to another server), caps what the node answers and refuses a PDF that isn't one. Settings › Documents ›
    Check it says whether the node answers and takes the token (anytopdf).

  • Web pages and emails keep their look when anytopdf makes the PDF. Where Chromium and pdftoppm are installed,
    anytopdf draws the page as page images, offline, with its text as the search layer. Without them it reads the text,
    as before.

  • Connect Slack, WhatsApp, Telegram, Discord and Matrix from the web app. Start the optional matterbridge
    service, then turn on Settings › 553D Chat rooms › Run Matterbridge here and add a bot token and rooms. To link
    WhatsApp, scan the QR code the page shows. Lens writes Matterbridge's config, a gateway per room, and restarts it
    when the settings change.

  • Visitors can no longer choose the address IP groups and sign-in throttles see. The web app drops an
    X-Forwarded-For a browser sends and tells the API the address it was reached from. Behind a reverse proxy, set
    TRUST_PROXY_HEADERS=true on the web app, or every visitor counts as the proxy's address
    (Trusted proxies). The Cloudflare tunnel keeps working as before.

  • The sensor hub's ports follow the web app's. The production compose file publishes MQTT (1883) and syslog
    (5514) where the web app is: on this machine only unless LENS_BIND=0.0.0.0 (which install.sh sets on a server).
    If devices on your network send to a Lens whose web app is local only, set LENS_SENSOR_BIND=0.0.0.0
    (Sensors).

  • Approve the assistant's reversible changes from the chat room. When Lens proposes merging entities or a new
    namespace in Slack, WhatsApp or another bridged room, the people listed in Settings › Chat rooms can reply "yes" or
    "no" there instead of opening the web app. Settings, imports, runs and extensions still wait for the web app.

  • Chat rooms route each question to its namespace. In a room no namespace is given to, Lens picks the namespace
    each question is about (or the one whose assistant it names), says where it looked, and names the likeliest when
    it isn't sure. "use pods" keeps the conversation in one namespace until "use everything".

  • Long conversations are summarised. The assistant reads the latest messages word for word and a running summary
    of the older ones, so long chats and chat-room conversations keep what was said instead of forgetting all but the
    last six messages. Settings › AI assistant › Summarise long conversations turns it off.

  • Encryption at rest has its own page in Settings. Settings › Encryption turns encrypting files on disk on or
    off, and the files already kept follow in the background, with how far it has got on the page. Turning it off
    leaves vaults' files encrypted (also for lens encrypt --off). It also sets how long working copies and unlocked
    vaults last.

  • A moved recording's files move to the new namespace's key. Moving a recording re-encrypts its files with the
    key of the namespace it goes to, so they open only with that namespace's key, and a vault it leaves no longer holds
    them. Moving out of or into a locked vault waits until it's unlocked (423).

  • The copies Lens keeps of files on storage sources are encrypted too. With encryption at rest on (or in a
    vault), the cached copy of a recording that lives on S3, Drive, a mailbox or another connection is stored with its
    namespace's key, and still plays, seeks and is processed as before. lens encrypt converts the ones already there.

  • Frames, page images and face crops are encrypted too. With encryption at rest on (or in a vault), the stills
    Lens draws from videos, documents and images are stored encrypted and still show as before; visitors still get faces
    pixelated where the namespace asks. lens encrypt converts the ones already there.

  • Word search no longer weighs down the database. Searching words in transcripts, text on screen, files, objects
    and descriptions now uses a small SQLite index next to the database instead of SurrealDB's own full-text index. On
    10,000 transcript lines the database used 64 MB of memory instead of 380 MB, and writing them took half the time.
    Nothing changes in how search, the assistant or IIIF search behave. Existing installs build the new index on their
    first start and give back the old one's memory. Settings › Search › Word search switches back to SurrealDB's
    index, or to an OpenSearch cluster on another machine for a big archive (then Reindex now); the opensearch
    compose profile runs one next to Lens.

  • A much smaller web app image. The production image runs Next.js's standalone server with only the packages it
    uses: 465 MB instead of 2.56 GB. Cloudron and pnpm build keep `next star...

Read more
0