{
  "_format": "Node change log, newest entry FIRST. Served at /changelog.json, rendered by public/views/landing-changelog.js. Add an entry in the same change that ships the thing. Fields: date (YYYY-MM-DD), version (optional, the node version it shipped in), kind (feature|fix|security|notice), title and body. title/body are either a plain string (shown to everyone) or { en, fi } when the wording deserves both languages. Write what a person gets, not what the code does.",
  "entries": [
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "Install packages: your AIMEAT in use from the first day",
        "fi": "Asennuspaketti: AIMEAT on käytössä ensimmäisestä päivästä alkaen"
      },
      "body": {
        "en": "An install package puts everything your own AIMEAT needs in place at once: the apps and their settings, the organisms and their workspaces, the users, and the AI agents the apps bring with them. Every user needs an email address. A user can get an account at once and sign in with a link sent by email, a Google account or Microsoft Entra ID, or get an invitation by email. Before anything is created, your own AI makes a plan and asks you for the settings that are missing. The code and look of the apps come from the package, and updates come from the package repository, the package maker's service. You choose whether the updates install by themselves, and you decide the settings. If you fork the install, you get a copy of your own to change freely, and it gets no more updates. The package maker can release a new version first to the customers on the beta channel. If the monthly fee for the update service ends, your AIMEAT keeps working and gets no newer versions.",
        "fi": "Asennuspaketti asentaa kerralla kaiken, mitä omaan AIMEATiisi tarvitaan: sovellukset ja niiden asetukset, organismit ja niiden työtilat, käyttäjät sekä sovellusten tekoälyagentit. Jokaisesta käyttäjästä tarvitaan sähköpostiosoite. Käyttäjälle voi luoda tunnuksen heti, ja silloin hän kirjautuu sähköpostiin tulevalla linkillä, Google-tilillä tai Microsoft Entra ID -tunnuksilla. Toinen tapa on lähettää hänelle kutsu sähköpostiin. Ennen kuin mitään luodaan, oma tekoälysi tekee suunnitelman ja kysyy sinulta ne asetukset, jotka puuttuvat. Sovellusten koodi ja ulkoasu tulevat paketista, ja päivitykset tulevat pakettirepositorysta eli paketin tekijän palvelusta. Sinä valitset, asentuvatko päivitykset automaattisesti, ja sinä päätät asetuksista. Jos teet asennuksesta forkin, saat oman kopion, jota voit muuttaa vapaasti. Siihen ei kuitenkaan enää tule päivityksiä. Paketin tekijä voi julkaista uuden version ensin niille asiakkaille, jotka ovat beetakanavalla. Jos päivityspalvelun kuukausimaksu päättyy, AIMEAT toimii edelleen, mutta uusia versioita ei enää tule."
      }
    },
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "The AI page: your providers, which one answers what, and which models are allowed",
        "fi": "Tekoälysivu: tarjoajasi, mikä niistä vastaa mihinkin ja mitkä mallit ovat sallittuja"
      },
      "body": {
        "en": "The AI page in Settings & Controls has three new sections. Providers: add OpenAI, Anthropic, Mistral, xAI, OpenRouter, a model server on your own machine, any OpenAI-compatible address or an extension, give it a key, choose what it does and with which model, and test it with the smallest real call. Routing: for each kind of work, the provider that answers first and two to try next when it does not answer, and the rules for moving on. Model policy: any model, the recommended models, or your own list, and whose calls it covers. Your AI can do all of this for you as well; the page shows what is set.",
        "fi": "Asetukset ja hallinta -osion Tekoäly-sivulla on kolme uutta osaa. Tarjoajat: lisää OpenAI, Anthropic, Mistral, xAI, OpenRouter, mallipalvelin omalla koneellasi, mikä tahansa OpenAI-yhteensopiva osoite tai laajennus, anna sille avain, valitse mitä se tekee ja millä mallilla, ja testaa se pienimmällä oikealla kutsulla. Reititys: jokaiselle työlle tarjoaja, joka vastaa ensin, ja kaksi varalla olevaa tarjoajaa, jos se ei vastaa, sekä säännöt varalle siirtymiseen. Mallirajaus: mikä tahansa malli, suositellut mallit tai oma lista, ja keiden kutsuja rajaus koskee. Tekoälysi voi tehdä kaiken tämän myös puolestasi; sivu näyttää, mitä on asetettu."
      }
    },
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "An extension can be your AI provider, and it never sees your key",
        "fi": "Laajennus voi olla tekoälyn tarjoajasi, eikä se koskaan näe avaintasi"
      },
      "body": {
        "en": "A service this AIMEAT has no built-in support for, such as your company's own model service or a new vendor, can serve your AI calls through an extension you install. The extension states where your data goes and which addresses it calls. Your key is added to its calls outside the extension, only to those addresses and only over https, so the extension's code never reads it.",
        "fi": "Palvelu, jolle tässä AIMEATissa ei ole valmista tukea, esimerkiksi yrityksesi oma mallipalvelu tai uusi valmistaja, voi hoitaa tekoälykutsusi asentamasi laajennuksen kautta. Laajennus kertoo, minne tietosi menevät ja mihin osoitteisiin se lähettää kutsuja. Avaimesi lisätään sen kutsuihin laajennuksen ulkopuolella, vain niihin osoitteisiin ja vain https-yhteydellä, joten laajennuksen koodi ei koskaan näe sitä."
      }
    },
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "Apps and agents ask for a capability, not a model",
        "fi": "Sovellukset ja agentit pyytävät kykyä, eivät mallia"
      },
      "body": {
        "en": "An app, an agent or your own AI first asks what it can do for you: write text, read an image, read a file or a PDF, make a picture, speak, transcribe, or make embeddings. The answer names the model, the provider and the price, and when something is off, what you can do to turn it on. Apps show that instead of a button that silently does nothing. Speech, transcription and embeddings run on your own providers and budget, and background jobs and workflow steps can make pictures and transcribe too. The built-in chat runs on your own providers as well.",
        "fi": "Sovellus, agentti tai oma tekoälysi kysyy ensin, mitä se voi tehdä puolestasi: kirjoittaa tekstiä, lukea kuvan, lukea tiedoston tai PDF:n, tehdä kuvan, puhua, litteroida tai tehdä upotuksia. Vastaus kertoo mallin, tarjoajan ja hinnan, ja jos jokin ei ole käytössä, mitä voit tehdä sen käyttöön ottamiseksi. Sovellukset näyttävät tämän eivätkä jätä näkyviin nappia, joka ei tee mitään. Puhe, litterointi ja upotukset toimivat omilla tarjoajillasi ja budjetillasi, ja taustatyöt ja työnkulkujen vaiheet voivat myös tehdä kuvia ja litteroida. Myös sisäänrakennettu chat toimii omilla tarjoajillasi."
      }
    },
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "A model catalogue: what each model can do and what it costs",
        "fi": "Malliluettelo: mitä kukin malli osaa ja mitä se maksaa"
      },
      "body": {
        "en": "This AIMEAT keeps a list of AI models from public sources: what each one can do, how much text it reads, and what it costs. A call to a direct provider is priced from it, a model that is being retired is marked where you use it, and when a model is not available the same model at another provider can answer instead.",
        "fi": "Tämä AIMEAT pitää julkisista lähteistä koottua luetteloa tekoälymalleista: mitä kukin osaa, kuinka paljon tekstiä se lukee ja mitä se maksaa. Suoran tarjoajan kutsu hinnoitellaan luettelon mukaan, poistuva malli merkitään siellä, missä käytät sitä, ja kun malli ei ole saatavilla, sama malli toisella tarjoajalla voi vastata sen sijaan."
      }
    },
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "Your own AI accounts side by side, with fallback when one does not answer",
        "fi": "Omat tekoälytilisi rinnakkain, ja varalle siirtyminen, kun yksi ei vastaa"
      },
      "body": {
        "en": "Use your own accounts at OpenAI, Anthropic, Mistral, xAI and OpenRouter, or a model server on your own machine, side by side. You choose which one answers each kind of work, and when one times out, is rate limited or refuses its key, the next one answers. By default a call that started on your own machine never moves to a service outside it. Every answer says which provider answered. Your keys are stored encrypted and go only to their own provider's address.",
        "fi": "Käytä omia tilejäsi OpenAI:ssa, Anthropicissa, Mistralissa, xAI:ssa ja OpenRouterissa tai mallipalvelinta omalla koneellasi rinnakkain. Valitset, mikä niistä vastaa kuhunkin työhön, ja kun yksi ei vastaa ajoissa, on käyttörajallaan tai hylkää avaimensa, seuraava vastaa. Oletuksena omalla koneellasi alkanut kutsu ei koskaan siirry koneen ulkopuoliseen palveluun. Jokainen vastaus kertoo, mikä tarjoaja vastasi. Avaimesi tallennetaan salattuina, ja ne menevät vain oman tarjoajansa osoitteeseen."
      }
    },
    {
      "date": "2026-09-28",
      "kind": "feature",
      "title": {
        "en": "Model policy: keep weak models out of your work",
        "fi": "Mallirajaus: pidä heikot mallit poissa työstäsi"
      },
      "body": {
        "en": "Choose the models the people who run this AIMEAT recommend, or a list of your own, and say whose calls it covers: your own, the chat, your agents, your apps. An app can limit itself further. A call for a model the rules leave out is refused and told which models are allowed. Every layer can only tighten, and your AI proposes a change that you confirm.",
        "fi": "Valitse tämän AIMEATin ylläpitäjien suosittelemat mallit tai oma lista, ja kerro, keiden kutsuja rajaus koskee: omasi, chatin, agenttiesi ja sovellustesi. Sovellus voi rajata itseään lisää. Kutsu mallille, jonka säännöt jättävät ulos, hylätään, ja vastaus kertoo sallitut mallit. Jokainen taso voi vain tiukentaa, ja tekoälysi ehdottaa muutosta, jonka sinä vahvistat."
      }
    },
    {
      "date": "2026-09-24",
      "version": "3.19.0",
      "kind": "feature",
      "title": {
        "en": "Decision providers: choose who answers your decisions, and run a decision model on your own machine",
        "fi": "Päätösmallin tarjoajat: valitse, kuka vastaa päätöksiisi, ja aja päätösmallia omalla koneellasi"
      },
      "body": {
        "en": "TypeSafe's Jev is no longer the only model that can answer your decision questions. Any service that answers the same request can be a decision provider: one the server's operator runs, or your own with its own address and key. You choose a default, give an agent its own, or fix the provider in a rule, and every decision records which provider answered. Each provider says what it can carry (how many options, how much text), and a question it cannot carry is refused by name before anything is sent. Three open models now run as local decision models on your own machine: Laya, which also reads Finnish content, von and jeff. A local model needs no key and costs nothing, and your content does not leave the machine; personal data is still removed first. The repository starts all three with one Docker command, on a processor or a graphics card, with the model inside the image. The server's operator lists the exact addresses of these models, and the server may reach those addresses for decisions and nothing else, so a public server can run them safely.",
        "fi": "TypeSafen Jev ei ole enää ainoa malli, joka vastaa päätöskysymyksiisi. Päätösmallin tarjoaja voi olla mikä tahansa palvelu, joka vastaa samaan pyyntöön: palvelimen ylläpitäjän ajama tai oma tarjoajasi omalla osoitteella ja avaimella. Valitset oletuksen, annat agentille oman tarjoajan tai kiinnität tarjoajan sääntöön. Jokaiseen päätökseen tallentuu, mikä tarjoaja vastasi. Jokainen tarjoaja kertoo, mitä se pystyy käsittelemään: montako vaihtoehtoa ja kuinka paljon tekstiä. Jos kysymys ylittää rajan, palvelin hylkää sen nimeltä ennen kuin mitään lähtee. Kolme avointa mallia toimii nyt paikallisena päätösmallina omalla koneellasi: Laya, joka lukee myös suomenkielistä sisältöä, von ja jeff. Paikallinen malli ei tarvitse avainta eikä maksa mitään, eikä sisältösi lähde koneelta. Henkilötiedot poistetaan silti ensin. Repossa on valmis Docker-komento, joka käynnistää kaikki kolme prosessorilla tai näytönohjaimella, ja malli on kuvan sisällä. Palvelimen ylläpitäjä luettelee näiden mallien tarkat osoitteet, ja palvelin saa ottaa yhteyden niihin vain päätöksiä varten. Siksi myös julkinen palvelin voi ajaa niitä turvallisesti."
      }
    },
    {
      "date": "2026-09-24",
      "kind": "fix",
      "title": {
        "en": "Search engines that do not run JavaScript now see what the pages say",
        "fi": "Hakukone, joka ei aja JavaScriptiä, näkee nyt, mitä sivuilla lukee"
      },
      "body": {
        "en": "Bing reads a page mostly as the server sends it, and our public pages drew their content only in the browser. Bing found 100 to 230 words on each of them, judged the site thin and did not list it. The front page, the store, the change log, the members page, the help page and the API documentation now send their content ready in the page: the apps whose owners allowed search engines, every change, the help questions and every API endpoint. A visitor sees the same page as before. The pages name only what their owner allowed: an app appears only when its owner has let search engines find it, and a person only when their portfolio allows it. An app's sitemap now lists the app and its legal pages, and no longer the documents written for AI agents. The screenshots on the front page carry the app's name as their alternative text.",
        "fi": "Bing lukee sivun pääosin sellaisena kuin palvelin sen lähettää, mutta julkiset sivumme piirsivät sisältönsä vasta selaimessa. Bing löysi jokaiselta niistä 100–230 sanaa, piti sivustoa ohuena eikä listannut sitä. Nyt etusivu, kauppa, muutosloki, jäsensivu, ohjesivu ja API-dokumentaatio lähettävät sisältönsä valmiina: sovellukset, joiden omistaja on sallinut hakukoneet, kaikki muutokset, ohjeen kysymykset ja kaikki rajapinnat. Kävijä näkee saman sivun kuin ennenkin. Sivuilla mainitaan vain se, minkä omistaja on sallinut: sovellus näkyy vain, jos sen omistaja on antanut hakukoneiden löytää sen, ja ihminen vain, jos hänen portfolionsa sallii sen. Sovelluksen sivukartassa ovat nyt sovellus ja sen juridiset sivut, eivät enää tekoälyagenteille kirjoitetut dokumentit. Etusivun kuvakaappauksissa on vaihtoehtoisena tekstinä sovelluksen nimi."
      }
    },
    {
      "date": "2026-09-20",
      "version": "3.18.0",
      "kind": "feature",
      "title": {
        "en": "Decision rules: write a judgement once, and let your apps and agents use it",
        "fi": "Päätössäännöt: kirjoita harkinta kerran, ja sovelluksesi ja agenttisi käyttävät sitä"
      },
      "body": {
        "en": "When an AI agent has to judge something (is this a bug or a billing question, is this reply good enough to send, should I act or ask a person), that step was until now a text answer with no probability, no threshold and no record. You can now write the judgement once as a decision rule: the questions, the value each answer must reach, and two bands that turn the answers into act, ask a person, or stop. Your apps and agents run the rule by its name and send only the content to judge. They cannot change the questions or the numbers, and you say whether a rule is for agents, for apps or for both. An agent may propose a rule, and nothing exists until you approve it from your open items. A rule that guards an action that cannot be undone is a gate. With the gate on for an agent, an unsure answer becomes a task on your list and the agent is told not to act. With the gate off the agent acts and the decision is still recorded. The gate is off until you turn it on, so that you can first compare how the agent does without it. Every rule and every agent shows how many decisions were made, how many a gate stopped, how many a person changed and what they cost, which is what you tune the thresholds from. You can also give one agent a key of its own, for the decision model and for the text model, with a daily cap: the agent's key pays first, then yours, then the server's, and every decision records which one paid. A key is never shown again and never sent to the agent. One change to know about: a text completion that your agent asks for is now paid from your account and counts against your daily AI budget, the same as its decisions. Until now it was counted in the agent's own account, where your own key and your budget did not reach it. Set it up in this order: a key, test the key, write a rule and try it, give the rule to an agent in its Crew tab, decide about the gate, then read the decisions and tune. Rules are under Settings, AI, Decision model; an agent's key, cap and gate are on the agent's page. For builders: `rule` on aimeat_decide and POST /v1/ai/decide, aimeat_decide_rules, aimeat_decide_rule_propose, and AIMEAT.decide.rule(id) in aimeat-decide.js.",
        "fi": "Kun tekoälyagentin pitää harkita jotakin (onko tämä vika vai laskutusasia, onko vastaus tarpeeksi hyvä lähetettäväksi, toiminko itse vai kysynkö ihmiseltä), se vaihe on tähän asti ollut tekstivastaus ilman todennäköisyyttä, kynnystä ja kirjausta. Nyt voit kirjoittaa harkinnan kerran päätössäännöksi: kysymykset, arvo, johon kunkin vastauksen pitää yltää, ja kaksi kaistaa, jotka muuttavat vastaukset ratkaisuksi: toimi, kysy ihmiseltä tai pysähdy. Sovelluksesi ja agenttisi ajavat säännön sen nimellä ja lähettävät vain arvioitavan sisällön. Ne eivät voi muuttaa kysymyksiä eivätkä lukuja, ja sinä päätät, onko sääntö agenteille, sovelluksille vai molemmille. Agentti voi ehdottaa sääntöä, mutta mitään ei synny ennen kuin hyväksyt ehdotuksen avoimista asioistasi. Sääntö, joka vartioi tekoa, jota ei voi perua, on portti. Kun portti on agentilla päällä, epävarma vastaus muuttuu tehtäväksi sinun listallesi ja agentille kerrotaan, ettei se saa toimia. Kun portti on pois päältä, agentti toimii ja päätös kirjataan silti. Portti on pois päältä, kunnes kytket sen, jotta voit ensin verrata, miten agentti pärjää ilman sitä. Jokaisesta säännöstä ja jokaisesta agentista näet, montako päätöstä on tehty, monenko kohdalla portti pysäytti, montaa ihminen muutti ja mitä ne maksoivat. Näiden lukujen perusteella säädät kynnyksiä. Voit myös antaa yhdelle agentille oman avaimen sekä päätösmalliin että tekstimalliin ja sille päiväkaton: ensin maksaa agentin avain, sitten sinun avaimesi, sitten palvelimen avain, ja jokainen päätös kirjaa, mikä avain maksoi. Avainta ei näytetä tallennuksen jälkeen enää kenellekään, eikä sitä lähetetä agentille koskaan. Yksi muutos on hyvä tietää: agenttisi pyytämä tekstivastaus maksetaan nyt sinun tililtäsi ja se kuluttaa päivittäistä tekoälybudjettiasi, samoin kuin agentin päätökset. Tähän asti se laskettiin agentin omalle tilille, jonne oma avaimesi ja budjettisi eivät ulottuneet. Ota käyttöön tässä järjestyksessä: avain, avaimen testaus, säännön kirjoittaminen ja kokeilu, säännön antaminen agentille sen Miehistö-välilehdellä, päätös portista, ja lopuksi päätösten lukeminen ja kynnysten säätö. Säännöt ovat kohdassa Asetukset, Tekoäly, Päätösmalli, ja agentin avain, päiväkatto ja portti ovat agentin omalla sivulla. Rakentajille: `rule` työkalussa aimeat_decide ja reitissä POST /v1/ai/decide, työkalut aimeat_decide_rules ja aimeat_decide_rule_propose sekä AIMEAT.decide.rule(id) kirjastossa aimeat-decide.js."
      }
    },
    {
      "date": "2026-09-19",
      "version": "3.17.0",
      "kind": "feature",
      "title": {
        "en": "A decision model beside the text model: sort, screen and route what arrives",
        "fi": "Päätösmalli tekstimallin rinnalle: lajittele, seulo ja ohjaa saapuva tieto"
      },
      "body": {
        "en": "Your apps and AI agents can now ask closed questions about a message or a record (yes or no, pick one option, a scale) and get typed answers with probabilities. The model is TypeSafe's Jev; it writes no text, so it is for deciding which folder a mail goes to, whether a message needs an answer today, or how upset a customer is. Before anything is sent, e-mail addresses, phone numbers, Finnish personal identity codes, bank account numbers, street addresses and the names of your contacts are removed, and put back into the answer. What else an app sends is the app's responsibility, and the publish check tells its builder where it departs from the rules. Every decision is recorded with the model version, the thresholds it was compared with and whether a person reviewed it, so you can later ask what was decided about a record and why. Pay with your own TypeSafe key or from your AI allowance on the server's key, and test the key with one press. Set it up under Settings, AI, Decision model. For builders: the aimeat-decide.js library, the aimeat_decide tools over MCP, and POST /v1/ai/decide.",
        "fi": "Sovelluksesi ja tekoälyagenttisi voivat nyt kysyä viestistä tai tietueesta rajattuja kysymyksiä (kyllä vai ei, yksi vaihtoehto, asteikko) ja saada vastaukset todennäköisyyksineen. Malli on TypeSafen Jev. Se ei kirjoita tekstiä, joten sillä päätetään esimerkiksi, mihin kansioon viesti menee, tarvitseeko viesti vastauksen tänään tai kuinka tyytymätön asiakas on. Ennen lähetystä sähköpostiosoitteet, puhelinnumerot, henkilötunnukset, tilinumerot, katuosoitteet ja yhteystietojesi nimet poistetaan, ja ne palautetaan vastaukseen. Muusta sovelluksen lähettämästä sisällöstä vastaa sovellus itse, ja julkaisutarkistus kertoo sen tekijälle, missä sovellus poikkeaa säännöistä. Jokainen päätös kirjataan: malliversio, kynnykset, joihin vastausta verrattiin, ja se, tarkistiko ihminen päätöksen. Näin voit myöhemmin kysyä, mitä tietueesta päätettiin ja millä perusteella. Maksat omalla TypeSafe-avaimellasi tai tekoälysaldostasi palvelimen avaimella, ja avaimen voi testata yhdellä painalluksella. Ota käyttöön kohdassa Asetukset, Tekoäly, Päätösmalli. Rakentajille: aimeat-decide.js-kirjasto, aimeat_decide-työkalut MCP:n kautta ja POST /v1/ai/decide."
      }
    },
    {
      "date": "2026-09-13",
      "kind": "notice",
      "title": {
        "en": "A message that did not go out is answered as an error",
        "fi": "Viesti, joka ei lähtenyt, palautuu virheenä"
      },
      "body": {
        "en": "When a message could not be sent, because the mail server, the connected mailbox or the recipient's inbox here refused it, or because the server had no way to send mail at all, POST /v1/outbound/send still answered 200 and put the failure in data.status. An integration that checked the status code told its user the message was on its way. It now answers with the error SEND_FAILED: 502 when the message was refused or failed on the way out, 503 when there was nothing to send it through. error.details carries the send-log identifier and the reason, so the attempt can still be found in the send log. A message that went out answers 200 exactly as before. If your integration reads data.status to spot a failure, read the error instead. The AI tools answer the same way, and so does an app writing to a contact picked from the address book.",
        "fi": "Kun viestiä ei saatu lähetettyä, koska postipalvelin, yhdistetty postilaatikko tai vastaanottajan viestit tässä palvelussa hylkäsivät sen tai palvelimella ei ollut mitään reittiä lähettää postia, POST /v1/outbound/send vastasi silti 200 ja kertoi epäonnistumisesta vain kentässä data.status. Tilakoodia tarkistanut integraatio kertoi käyttäjälleen viestin olevan matkalla. Nyt vastaus on virhe SEND_FAILED: 502, kun viesti hylättiin tai lähetys epäonnistui matkalla, ja 503, kun lähettämiseen ei ollut reittiä. Kentässä error.details ovat lähetyslokin tunniste ja syy, joten lähetysyrityksen löytää edelleen lähetyslokista. Lähtenyt viesti saa vastaukseksi 200 täsmälleen kuten ennenkin. Jos integraatiosi tunnistaa epäonnistumisen kentästä data.status, lue sen sijaan virhe. Tekoälytyökalut vastaavat samalla tavalla, samoin sovellus, joka kirjoittaa osoitekirjasta valitulle yhteystiedolle."
      }
    },
    {
      "date": "2026-09-06",
      "version": "3.13.0",
      "kind": "fix",
      "title": {
        "en": "An agent waiting for work is not offline",
        "fi": "Työtä odottava agentti ei ole poissa"
      },
      "body": {
        "en": "An agent that starts only when there is work to do was being reported as offline between jobs, because what was read was when it last worked rather than whether anything could reach it. A nightly workflow mailed its owner a failure for an edition that came out complete, two nights running, and nine agents on this node showed as problems while their runtime was connected the whole time. Reachability is now read from the connection itself, so an agent waiting for work counts as available in a workflow, on the Agents page, on the home card and on the app shelf, and the page says work reaches it over a live link instead of naming a poll it never makes. An agent nothing is holding open is still reported, and a workflow step still gives up on it quickly.",
        "fi": "Agentti, joka käynnistyy vasta kun työtä tulee, näkyi töiden välissä poissaolevana, koska luettiin milloin se viimeksi teki työtä eikä sitä saako siihen yhteyden. Yöllinen työnkulku lähetti omistajalleen kahtena yönä peräkkäin virheilmoituksen lehdestä, joka tuli ulos kokonaisena, ja yhdeksän tämän noden agenttia näkyi ongelmana, vaikka niiden ajoympäristö oli koko ajan kiinni. Tavoitettavuus luetaan nyt itse yhteydestä, joten työtä odottava agentti on käytettävissä työnkulussa, Agentit-sivulla, etusivun kortissa ja sovellushyllyllä, ja sivu kertoo työn kulkevan suoraa yhteyttä pitkin sen sijaan että nimeäisi kyselyn, jota agentti ei tee. Agentti, jonka yhteyttä ei pidä auki kukaan, ilmoitetaan edelleen, ja työnkulun askel luovuttaa sen kohdalla nopeasti."
      }
    },
    {
      "date": "2026-09-05",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "A part that is nearly right is made yours, not copied",
        "fi": "Melkein sopiva osa tehdään omaksi, ei kopioida"
      },
      "body": {
        "en": "Every list, table, card grid, queue, timeline, kanban, hero, KPI row, section, tab strip and dialog in the Atelier kit now has four doors for the case where it is almost what you need: named parts your own styles reach by name, slots that fill a line or a figure the kit leaves empty (a third line on a row, a value on the right, a kicker over a title), variants you pick instead of override (dense, numbered, wide, tall, trend), and per-part sizes and colours you set as one variable. A customised part keeps everything the kit gives it: the entrance, the glide, the pick, the empty state. Your AI asks the kit what a part offers with describe(), and the Design Book shows it on every card under 'make it yours'. Copying a part out of the kit is the last step, and the kit says what it costs.",
        "fi": "Jokaisella Atelier-kitin listalla, taulukolla, korttiruudukolla, jonolla, aikajanalla, kanbanilla, herolla, tunnuslukurivillä, osiolla, välilehtirivillä ja dialogilla on nyt neljä ovea tilanteeseen, jossa se on melkein sitä mitä tarvitset: nimetyt osat, joihin omat tyylisi osuvat nimellä; paikat, jotka täyttävät kitin tyhjäksi jättämän rivin tai luvun (kolmas rivi, luku oikealla, otsikon yläpuolinen iskurivi); variantit, jotka valitset ylikirjoittamisen sijaan (tiivis, numeroitu, leveä, korkea, trendi); ja osakohtaiset koot ja värit, jotka asetat yhtenä muuttujana. Muokattu osa säilyttää kaiken, minkä kitti sille antaa: saapumisen, liu'un, valinnan, tyhjän tilan. Tekoälysi kysyy kitiltä describe()-kutsulla, mitä osa tarjoaa, ja Design Book näyttää sen joka kortissa kohdassa 'make it yours'. Osan kopioiminen kitistä on viimeinen askel, ja kitti kertoo mitä se maksaa."
      }
    },
    {
      "date": "2026-09-05",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "An Atelier app moves on its own",
        "fi": "Atelier-sovellus liikkuu itsestään"
      },
      "body": {
        "en": "A screen built with the Atelier kit now arrives, changes and leaves in front of you without the app asking for it: a row that is new rises in, one that left fades out where it stood, one that moved glides there, a number counts to its new value, a tab or a picked row crosses into the next view, a dialog and a toast leave the way they came. The pace and the distance are the look's own, so a calm look stays calm. The bar's Less-motion switch and your system's reduced-motion setting stop all of it, and now they also stop the stylesheet's own animations, which they never did before.",
        "fi": "Atelier-kitillä rakennettu näyttö saapuu, muuttuu ja poistuu silmiesi edessä ilman että sovellus pyytää sitä: uusi rivi nousee esiin, poistunut häipyy paikaltaan, siirtynyt liukuu paikalleen, luku laskee uuteen arvoonsa, välilehti tai valittu rivi vaihtuu seuraavaan näkymään, dialogi ja ilmoitus poistuvat samaa tietä kuin tulivat. Tahti ja matka ovat lookin omia, joten rauhallinen look pysyy rauhallisena. Palkin Vähemmän liikettä -kytkin ja järjestelmäsi liikkeenvähennys pysäyttävät kaiken, ja nyt ne pysäyttävät myös tyylitiedoston omat animaatiot, mitä ne eivät ennen tehneet."
      }
    },
    {
      "date": "2026-09-05",
      "version": "3.13.0",
      "kind": "fix",
      "title": {
        "en": "The kit and the genres work on a phone and read on a desktop",
        "fi": "Kitti ja genret toimivat puhelimessa ja luettavat työpöydällä"
      },
      "body": {
        "en": "Every Design Book part and every genre was measured at phone, tablet and desktop widths in both themes, and what the numbers found was fixed: eight genres that were cut off at the edge of a phone screen now fold; text under 11 pixels is gone; every control is at least a finger wide; a strip that scrolls sideways fades at the edge that has more; a hero's drift stops under reduced motion; the starting shapes fill a desktop instead of leaving most of it bare; the colours that fell under the contrast line were deepened a shade. The badge in the corner of every app carries a drawn bolt instead of an emoji and reads against any background.",
        "fi": "Jokainen Design Bookin osa ja jokainen genre mitattiin puhelimen, tabletin ja työpöydän leveydellä molemmissa teemoissa, ja se mitä luvut löysivät korjattiin: kahdeksan genreä, jotka katkesivat puhelimen ruudun reunaan, taittuvat nyt; alle 11 pikselin teksti on poissa; jokainen painike on vähintään sormen levyinen; sivuttain vierivä rivi häivyttää reunan, jolla on lisää; heron ajelehdinta pysähtyy liikkeenvähennyksen alla; aloitusmuodot täyttävät työpöydän sen sijaan että jättäisivät sen enimmäkseen tyhjäksi; kontrastirajan alle jääneet värit syvennettiin sävyllä. Jokaisen sovelluksen kulman merkissä on piirretty salama emojin sijaan, ja se erottuu miltä tahansa pohjalta."
      }
    },
    {
      "date": "2026-09-05",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "An Atelier app starts from a genre, and an extension can work in your workspace",
        "fi": "Atelier-sovellus alkaa genrestä, ja laajennus voi työskennellä työtilassasi"
      },
      "body": {
        "en": "An app on the Atelier track now names the register it commits to, a Design Book genre or one of its own, and the node refuses to publish a bare shell in the default look: the refusal says which genre shelf to start from. An existing Atelier app without that line is refused on its next publish, with the one line to add. Separately, an extension that declares it may now read and write in an organism workspace on behalf of whoever called it, under that person's own rights, so a tool your AI calls can keep its rules on the node instead of trusting the caller to follow them.",
        "fi": "Atelier-radan sovellus nimeää nyt rekisterin, johon se sitoutuu, Design Bookin genren tai omansa, eikä node julkaise paljasta kuorta oletusilmeessä: kieltäytyminen kertoo, miltä genrehyllyltä aloittaa. Vanha Atelier-sovellus ilman tuota riviä torjutaan seuraavassa julkaisussa, ja vastaus kertoo lisättävän rivin. Erikseen: laajennus, joka ilmoittaa sen, voi nyt lukea ja kirjoittaa organismin työtilassa kutsujan puolesta tämän omilla oikeuksilla, joten työkalu, jota tekoälysi kutsuu, voi pitää sääntönsä nodella sen sijaan että luottaisi kutsujan noudattavan niitä."
      }
    },
    {
      "date": "2026-09-05",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "Every key to your account on one page, said in words",
        "fi": "Kaikki tilisi avaimet yhdellä sivulla, sanoin"
      },
      "body": {
        "en": "The Access page under Account now holds every way into your account: how you sign in (password, two-step, passkeys, the devices that are signed in right now), the apps and tokens that act in your name, the accounts you have connected at other services, your sharing groups, and the addresses an AI uses to find you. Two-step sign-in and passkeys used to sit on a tab only an operator could open; every member can switch them on here. An app's rights are said in words, one row per family such as your memory or your automations, and you can take a single right away without revoking the whole key; the change bites within a few minutes, when the app's current token runs out. Keys not used in thirty days are marked and can be revoked together, and the list of open sessions shows only the ones that still work, grouped by device and by agent, with one button that signs out every other device. A right you took away no longer comes back at the next restart. Your AI can read the same page through the aimeat_access_list tool.",
        "fi": "Tili-ryhmän Pääsy-sivulla on nyt jokainen tie tilillesi: miten kirjaudut (salasana, kaksivaiheinen kirjautuminen, pääsyavaimet, juuri nyt kirjautuneet laitteet), sovellukset ja tunnisteet jotka toimivat nimissäsi, muihin palveluihin liittämäsi tilit, jakoryhmäsi ja osoitteet joilla tekoäly löytää sinut. Kaksivaiheinen kirjautuminen ja pääsyavaimet olivat välilehdellä, jonka vain operaattori näki; nyt jokainen jäsen kytkee ne päälle täältä. Sovelluksen oikeudet sanotaan sanoin, rivi per perhe kuten muistisi tai automaatiosi, ja yhden oikeuden voi ottaa pois perumatta koko avainta; muutos astuu voimaan muutamassa minuutissa, kun sovelluksen nykyinen tunniste vanhenee. Kolmeenkymmeneen päivään käyttämättömät avaimet merkitään ja ne voi perua yhdellä kertaa, ja avoimien istuntojen lista näyttää vain toimivat, ryhmiteltynä laitteen ja agentin mukaan, yhdellä napilla joka kirjaa ulos kaikki muut laitteet. Pois otettu oikeus ei enää palaa seuraavassa käynnistyksessä. Tekoälysi lukee saman sivun aimeat_access_list-työkalulla."
      }
    },
    {
      "date": "2026-09-04",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "Sign in with your fingerprint, and no password at all",
        "fi": "Kirjaudu sormenjäljellä, ilman salasanaa"
      },
      "body": {
        "en": "There is a passkey button on the sign-in form now. Press it with the name field empty and your device asks for your fingerprint, your face or your screen lock, and you are in — nothing typed, nothing remembered, nothing to be phished, because the device checks for itself which site is asking before it answers. Add the devices you use under Account security, name them so you can tell them apart, and take one away the day you stop using it. A passkey replaces nothing: your password stays, two-step sign-in stays if you armed it, and either of them still gets you in on a machine you have not registered.",
        "fi": "Kirjautumislomakkeella on nyt pääsyavainpainike. Paina sitä nimikenttä tyhjänä, niin laite kysyy sormenjälkeä, kasvoja tai näytön lukitusta ja olet sisällä: mitään ei kirjoiteta, mitään ei tarvitse muistaa, eikä avainta voi kalastella, koska laite tarkistaa itse mikä sivusto sitä pyytää ennen kuin vastaa. Lisää käyttämäsi laitteet kohdassa Tilin turvallisuus, nimeä ne niin erotat ne toisistaan, ja poista laite sinä päivänä kun lakkaat käyttämästä sitä. Pääsyavain ei korvaa mitään: salasanasi säilyy, kaksivaiheinen kirjautuminen säilyy jos otit sen käyttöön, ja kummallakin pääset sisään koneella jota et ole rekisteröinyt."
      }
    },
    {
      "date": "2026-09-04",
      "version": "3.13.0",
      "kind": "security",
      "title": {
        "en": "Two-step sign-in, and a way back if you lose the phone",
        "fi": "Kaksivaiheinen kirjautuminen, ja tie takaisin jos puhelin katoaa"
      },
      "body": {
        "en": "Account security now shows a QR code you scan with an authenticator app, the ten backup codes to write down, and the field that turns it on. After that a sign-in asks for the six digits your app shows, or one backup code when the phone is not with you. Losing both used to be the end of the account, because taking the second step off asked for a code from the very device you no longer had; an operator can now remove it for you, and you are told on your own account feed who did it and when, because a second step that can disappear quietly is not a second step. Turning it off yourself destroys the secret for good, which on one of the two databases it had not been doing.",
        "fi": "Tilin turvallisuus näyttää nyt QR-koodin jonka luet todennussovelluksella, kymmenen varakoodia talteen kirjoitettavaksi, ja kentän joka kytkee sen päälle. Sen jälkeen kirjautuminen kysyy sovelluksen näyttämät kuusi numeroa, tai yhden varakoodin silloin kun puhelin ei ole mukanasi. Molempien menettäminen oli ennen tilin loppu, koska toisen vaiheen poistaminen vaati koodin juuri siltä laitteelta jota sinulla ei enää ollut; nyt operaattori voi poistaa sen puolestasi, ja näet omalta tapahtumalistaltasi kuka sen teki ja milloin, koska toinen vaihe joka voi kadota huomaamatta ei ole toinen vaihe. Kun poistat sen itse, salaisuus tuhoutuu lopullisesti — mitä se toisessa kahdesta tietokannasta ei ollut tehnyt."
      }
    },
    {
      "date": "2026-09-04",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "Your agents can sign in with a key of their own",
        "fi": "Agenttisi voivat kirjautua omalla avaimellaan"
      },
      "body": {
        "en": "An agent used to hold a sign-in that lasts about ninety days, sits in a file on whichever machine runs it, and works for anyone who copies it. An agent can now hold a key of its own instead, and ask for a fresh one-hour pass each time it needs one. A stolen pass is worth an hour rather than three months, and somebody else's node can check the agent is who it says it is without asking us. Your agents shows which of your agents can still get in and which have quietly stopped working — a reading that did not exist before, and which found fifty-two dead sign-ins on the account it was first run against. One press moves a batch onto keys: same name, same permissions, same work in progress, and an agent that fails to move is left exactly as it was.",
        "fi": "Agentilla oli ennen kirjautuminen joka kestää noin yhdeksänkymmentä päivää, on tiedostona sillä koneella joka sitä ajaa, ja toimii kenellä tahansa joka kopioi sen. Nyt agentilla voi olla oma avain, ja se pyytää sillä tunnin mittaisen luvan aina kun tarvitsee. Varastettu lupa kelpaa tunnin eikä kolmea kuukautta, ja jonkun toisen node voi tarkistaa kysymättä meiltä että agentti on se joka väittää olevansa. Omat agentit näyttää mitkä agenteistasi pääsevät yhä sisään ja mitkä ovat hiljaa lakanneet toimimasta — lukema jota ei ollut olemassa, ja joka löysi viisikymmentäkaksi kuollutta kirjautumista siltä tililtä jolla se ensimmäisenä ajettiin. Yksi painallus siirtää erän avaimille: sama nimi, samat oikeudet, samat kesken olevat työt, ja agentti joka ei siirry jää täsmälleen ennalleen."
      }
    },
    {
      "date": "2026-09-04",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "Somebody else's agent can find what yours is selling",
        "fi": "Jonkun toisen agentti löytää sen mitä sinun myy"
      },
      "body": {
        "en": "A node now answers at a standard address with the agents that have a published offering — and only those, because publishing the offering is what says you are open to strangers. Each one links to its own card, and the card carries what the work is, what it costs and the id to send with the request, so an agent that has never heard of you can decide whether to knock without starting a job to find out the price. Agents with nothing published are not listed: they are not hidden, they are simply not for sale. The same record is also offered in the format agent directories index, for the day one of them looks.",
        "fi": "Node vastaa nyt vakio-osoitteessa niillä agenteilla joilla on julkaistu tarjoama — ja vain niillä, koska tarjoaman julkaiseminen on se mikä kertoo että olet avoinna vieraille. Jokainen linkittää omaan korttiinsa, ja kortti kertoo mitä työ on, mitä se maksaa ja millä tunnisteella se tilataan, joten agentti joka ei ole koskaan kuullut sinusta voi päättää koputtaako aloittamatta työtä hinnan selvittämiseksi. Agentit joilla ei ole julkaistua eivät ole listalla: niitä ei ole piilotettu, ne eivät vain ole myynnissä. Sama tietue tarjotaan myös siinä muodossa jota agenttihakemistot indeksoivat, sitä päivää varten kun joku niistä katsoo."
      }
    },
    {
      "date": "2026-09-04",
      "version": "3.13.0",
      "kind": "feature",
      "title": {
        "en": "A deleted memory record can be taken back",
        "fi": "Poistetun muistitietueen saa takaisin"
      },
      "body": {
        "en": "This node had no delete at all, on purpose: a value could be emptied but never removed, so nothing could be lost by accident. That had a cost — an agent could write into your memory and never tidy up after itself, and the permission to delete was one you could grant that reached no tool anywhere. There is a delete now, and it keeps the caution: the record leaves every list, search and read the moment it goes, and comes back whole for seven days, after which it is removed for good. The node's operator can change that window or set it to nothing. Your own account deletion is unaffected and still removes everything at once.",
        "fi": "Tällä nodella ei ollut poistoa lainkaan, tarkoituksella: arvon saattoi tyhjentää mutta ei poistaa, joten mitään ei voinut menettää vahingossa. Sillä oli hintansa — agentti saattoi kirjoittaa muistiisi eikä koskaan siivota jälkiään, ja poisto-oikeus oli sellainen jonka saatoit myöntää ja joka ei tavoittanut yhtään työkalua. Nyt poisto on olemassa ja se säilyttää sen varovaisuuden: tietue katoaa kaikista listoista, hauista ja luvuista heti, ja palautuu kokonaisena seitsemän päivän ajan, minkä jälkeen se poistetaan lopullisesti. Noden ylläpitäjä voi muuttaa tuon ajan tai poistaa sen kokonaan. Oman tilisi poisto ei muutu ja poistaa yhä kaiken kerralla."
      }
    },
    {
      "date": "2026-09-03",
      "kind": "feature",
      "title": {
        "en": "Games are made here now: Phaser 4 with the base a game otherwise re-guesses",
        "fi": "Pelit tehdään nyt täällä: Phaser 4 ja pohja, jonka peli muuten arvaa uudestaan"
      },
      "body": {
        "en": "Ask your AI for a game and it starts from a working one. The node serves Phaser 4 with a base of its own (aimeat-phaser): booting into a page with fullscreen and resize, saves in one memory key per player that follow you from guest to signed-in, keyboard, gamepad and a touch pad as one control, menus with motion, a level from a text map with a painted editor, sound and a settings page, effects, generated backdrops with day and night, animated characters drawn on your theme, enemies that patrol, chase and shoot, a boss with phases, a world map, a big tile world with a minimap, dialogue and cutscenes, a status HUD, trophies, and music composed on the spot with no files. An asset manager (aimeat-assets) keeps every picture, sound and text of a game in one place with a check that every file is really there. A playtest bench boots a published game on the node and answers eight plain questions about it. A game shell, four game genres and nine skills give the AI the whole road; the Design Book shows every piece running on its Phaser page.",
        "fi": "Pyydä tekoälyltäsi peli, ja se alkaa toimivasta pelistä. Node tarjoaa Phaser 4:n ja oman pohjan (aimeat-phaser): käynnistys sivulle kokoruudulla ja koon muutoksella, tallennukset yhdessä muistiavaimessa per pelaaja niin, että ne seuraavat vieraasta kirjautuneeksi, näppäimistö, ohjain ja kosketusohjain yhtenä ohjauksena, liikkuvat valikot, kenttä tekstikartasta ja maalattava kenttäeditori, äänet ja asetussivu, efektit, generoidut taustat päivineen ja öineen, teemasi väreillä piirretyt animoidut hahmot, viholliset jotka partioivat, jahtaavat ja ampuvat, vaiheittainen pomo, maailmankartta, iso laattamaailma minikartalla, dialogit ja välinäytökset, tila-HUD, palkinnot ja lennossa sävelletty musiikki ilman tiedostoja. Assettien hallinta (aimeat-assets) pitää pelin kuvat, äänet ja tekstit yhdessä paikassa ja tarkistaa, että jokainen tiedosto on oikeasti olemassa. Pelipenkki käynnistää julkaistun pelin nodella ja vastaa siitä kahdeksaan selkeään kysymykseen. Pelirunko, neljä peligenreä ja yhdeksän taitoa antavat tekoälylle koko tien; Design Book näyttää jokaisen osan toiminnassa Phaser-sivullaan."
      }
    },
    {
      "date": "2026-09-02",
      "kind": "feature",
      "title": {
        "en": "Motion that means something: the kit moves, and three animation libraries are served",
        "fi": "Liike, jolla on merkitys: kitti liikkuu, ja kolme animaatiokirjastoa on tarjolla"
      },
      "body": {
        "en": "An Atelier app can now move the way a designed product moves, without writing animation code. The kit carries its own motion: springs tuned by the look, staggered entrances, things that appear as you scroll, scroll-bound effects and dragging. Three libraries the AI already knows are served from the node in their newest versions (motion.dev, anime.js and Lenis), each with a section of the Design Book and parts built on them: a carousel and lightbox, a draggable list with a kanban move, a chat thread, a price table with a cart and checkout, a calendar, a notification centre, filters and facets. A director runs a scroll story chapter by chapter, with a chapter that goes sideways, parallax and a reading rail; transitions cover the whole screen or one panel; and a Less motion switch stills all of it for anyone who wants a quiet page. The story page at aimeat-story shows what it looks like when it all runs.",
        "fi": "Atelier-sovellus voi nyt liikkua niin kuin suunniteltu tuote liikkuu, ilman animaatiokoodia. Kitti kantaa oman liikkeensä: ulkoasun mukaan viritetyt jouset, porrastetut sisääntulot, rullatessa ilmestyvät osat, rullaukseen sidotut tehosteet ja raahauksen. Kolme kirjastoa, jotka tekoäly jo tuntee, tarjoillaan nodelta uusimpina versioina (motion.dev, anime.js ja Lenis), kullakin oma osionsa Design Bookissa ja niiden päälle rakennetut osat: karuselli ja lightbox, raahattava lista kanban-siirrolla, keskustelusäie, hintataulu ostoskoreineen ja kassoineen, kalenteri, ilmoituskeskus, suodattimet ja fasetit. Ohjaaja vie rullaustarinan luku luvulta, yhden luvun sivusuunnassa, parallaksilla ja lukukiskolla; siirtymät kattavat koko ruudun tai yhden paneelin; ja Vähemmän liikettä -kytkin pysäyttää kaiken sille, joka haluaa rauhallisen sivun. Tarinasivu aimeat-story näyttää, miltä se näyttää kun kaikki liikkuu."
      }
    },
    {
      "date": "2026-08-31",
      "version": "3.11.0",
      "kind": "security",
      "title": {
        "en": "The PDF reader and the diagram library, patched",
        "fi": "PDF-lukija ja kaaviokirjasto päivitetty"
      },
      "body": {
        "en": "The PDF reader that apps on this node use could be made to run JavaScript hidden inside a PDF somebody sent you. The diagram library could be pushed into an endless loop, or made to restyle things outside its own diagram. Both are updated at the same addresses apps already load from, so no app changes and nothing needs republishing. Neither was seen happening here: they were found by checking every library this node hands to a browser against the public vulnerability databases, which nothing had been doing until now. That check is now a command anyone running a node can run.",
        "fi": "PDF-lukija, jota tämän noden sovellukset käyttävät, saatiin ajamaan JavaScriptiä, joka oli piilotettu jonkun lähettämään PDF-tiedostoon. Kaaviokirjasto voitiin jumittaa loputtomaan silmukkaan tai saada muotoilemaan oman kaavionsa ulkopuolisia asioita. Molemmat päivitettiin samoihin osoitteisiin, joista sovellukset ne jo lataavat, joten yksikään sovellus ei muutu eikä mitään tarvitse julkaista uudelleen. Kumpaakaan ei ollut täällä käytetty hyväksi: ne löytyivät, kun jokainen selaimelle annettava kirjasto tarkistettiin julkisia haavoittuvuustietokantoja vasten, mitä ei ollut tehnyt aiemmin mikään. Tarkistus on nyt komento, jonka jokainen nodea ylläpitävä voi ajaa."
      }
    },
    {
      "date": "2026-08-31",
      "version": "3.11.0",
      "kind": "notice",
      "title": {
        "en": "What you may do with AIMEAT, written down",
        "fi": "Mitä AIMEATilla saa tehdä, kirjoitettuna auki"
      },
      "body": {
        "en": "AIMEAT is MIT-licensed and you may sell what you build on it, closed-source included. Every third-party component now travels with its copyright holder and its licence text in one file, readable at /THIRD-PARTY-NOTICES.md, and the three that ask for more than a mention say what they ask and what it costs you. One of them, the video encoder, is under a licence AIMEAT may not pass along, and it had been shipping inside the package anyway; the operator of a node installs it themselves now, which is where it belonged. If a company's security review asks for a list of everything inside, there is a command that produces one covering both the server's own dependencies and the libraries handed to browsers.",
        "fi": "AIMEAT on MIT-lisensoitu, ja sillä rakennetun saa myydä, myös suljettuna. Jokaisen kolmannen osapuolen komponentin tekijänoikeuden haltija ja lisenssiteksti kulkevat nyt mukana yhdessä tiedostossa, joka on luettavissa osoitteessa /THIRD-PARTY-NOTICES.md, ja ne kolme, jotka vaativat mainintaa enemmän, kertovat mitä vaativat ja mitä se sinulta edellyttää. Yksi niistä, videon pakkaaja, on lisenssillä jota AIMEAT ei saa välittää eteenpäin, ja se oli silti kulkenut paketin mukana; nyt sen asentaa noden ylläpitäjä itse, mihin se kuuluikin. Jos yrityksen tietoturva-arvio pyytää luettelon kaikesta mitä sisällä on, sellaisen tuottaa yksi komento, ja se kattaa sekä palvelimen omat riippuvuudet että selaimelle annettavat kirjastot."
      }
    },
    {
      "date": "2026-08-30",
      "kind": "feature",
      "title": {
        "en": "Email: what your address is for, your mailboxes, and the emails that are yours to switch off",
        "fi": "Sähköposti: mihin osoitettasi käytetään, postilaatikkosi, ja kirjeet, jotka voit itse kytkeä pois"
      },
      "body": {
        "en": "The Email page now says what your address unlocks (recovery, sign-in by link, invitations, being found as a contact, the emails from here) and warns before a change that the old address stops working. Your connected mailboxes (Gmail and Outlook, reading and sending apart) are on the same page with each one's state, the addresses it may send as and the apps you delegated over it, instead of among the other services on the Access page. What left through here to your customers is listed, with the contact, the kind and the outcome. And the emails AIMEAT sends you are switches: the workflow result, which used to go to every verified address, the digest of unread notifications and the reminder after a quiet fortnight; a code, a sign-in link and a password reset always go. The page also shows the last emails you got from here, and a prompt hands search, reading and sending to your own AI over MCP.",
        "fi": "Sähköposti-sivu kertoo nyt, mitä osoitteesi avaa (palautus, kirjautuminen linkillä, kutsut, löytyminen kontaktina, kirjeet täältä) ja varoittaa ennen vaihtoa, että vanha osoite lakkaa toimimasta. Yhdistetyt postilaatikkosi (Gmail ja Outlook, luku ja lähetys erikseen) ovat samalla sivulla tiloineen, lähetysosoitteineen ja niiden yli valtuuttamiesi sovellusten kanssa, sen sijaan että ne olisivat muiden palvelujen seassa Pääsy-sivulla. Täältä asiakkaillesi lähtenyt posti näkyy listana kontaktin, lajin ja lopputuloksen kanssa. Ja kirjeet, joita AIMEAT lähettää sinulle, ovat kytkimiä: työnkulun tulos, joka lähti ennen jokaiseen vahvistettuun osoitteeseen, kooste lukemattomista ilmoituksista ja muistutus hiljaisen kahden viikon jälkeen; koodi, kirjautumislinkki ja salasanan palautus lähtevät aina. Sivu näyttää myös viimeisimmät täältä saamasi kirjeet, ja kehote antaa haun, lukemisen ja lähettämisen omalle tekoälyllesi MCP:n yli."
      }
    },
    {
      "date": "2026-08-30",
      "kind": "feature",
      "title": {
        "en": "Notifications show what happened, and you decide who may reach your devices",
        "fi": "Ilmoitukset näyttävät, mitä tapahtui, ja sinä päätät, kuka pääsee laitteillesi"
      },
      "body": {
        "en": "The Notifications page now shows the notifications themselves, each with who sent it: AIMEAT, an app you allowed, an extension, an agent. You see every sender that may notify you, and decide per sender whether it reaches your devices as a push, stays in the bell, or is muted, in which case its notification is dropped before it exists. Every device with push is listed, not only this browser, and email sends a digest of what stayed unread instead of nothing. Quiet hours hold pushes for the morning and bring them as one, the kinds that need you excepted, and one sender pushes at most once in ten minutes. The bell says who sent each item, and workflow, workspace and message notifications are said in your language. Your own agent can notify you from a chat with one tool, and an app's builder is now told the call that has been there all along.",
        "fi": "Ilmoitukset-sivu näyttää nyt ilmoitukset itse, ja jokaisessa näkyy lähettäjä: AIMEAT, sallimasi sovellus, laajennus, agentti. Näet jokaisen lähettäjän, joka saa ilmoittaa sinulle, ja päätät lähettäjä kerrallaan, tuleeko ilmoitus laitteillesi push-ilmoituksena, jääkö se kelloon vai vaimennetaanko se, jolloin ilmoitus hylätään ennen kuin se syntyy. Jokainen push-laite on listalla, ei vain tämä selain, ja sähköposti lähettää koosteen lukematta jääneistä sen sijaan, ettei se lähetä mitään. Hiljaiset tunnit pidättävät pushit aamuun ja tuovat ne yhtenä, paitsi ne lajit, jotka vaativat sinua, ja samalta lähettäjältä tulee enintään yksi push kymmenessä minuutissa. Kello kertoo, kuka lähetti, ja työnkulkujen, työtilojen ja viestien ilmoitukset sanotaan omalla kielelläsi. Oma agenttisi voi ilmoittaa sinulle chatista yhdellä työkalulla, ja sovelluksen tekijälle kerrotaan nyt kutsu, joka on ollut olemassa koko ajan."
      }
    },
    {
      "date": "2026-08-30",
      "kind": "feature",
      "title": {
        "en": "Contacts are people again, with a page each and an invitation of their own",
        "fi": "Kontaktit ovat taas ihmisiä, jokaisella oma sivu ja oma kutsu"
      },
      "body": {
        "en": "The Contacts page now reads your address book through people. Each person has a row with their relationship and your tags, the organisms you share, the last message and who wrote it, and a page of their own: what you know about them (editable in place, with tags and named links), what you have done together (shared organisms and workspaces, their agents), the last messages, and the doors: message, invite into an organism you manage, share a workspace. Agents and apps are listed under the people they belong to, and you are no longer listed in your own book. Someone without an account can be written down with everything you know and invited to join in the same move; the invitation goes out in your name, with your line, and needs no organism behind it. A prompt hands the same work to your own AI over MCP: find, add, write down, check an address, invite.",
        "fi": "Kontaktit-sivu lukee osoitekirjasi nyt ihmisten kautta. Jokaisella ihmisellä on rivi, jolla näkyvät suhde ja tunnisteesi, yhteiset organismit sekä viimeisin viesti ja kuka sen kirjoitti, ja oma sivu: mitä tiedät hänestä (muokattavissa paikan päällä, tunnisteineen ja nimettyine linkkeineen), mitä olette tehneet yhdessä (yhteiset organismit ja työtilat, hänen agenttinsa), viimeisimmät viestit ja ovet: viesti, kutsu hallitsemaasi organismiin, jaa työtila. Agentit ja sovellukset listataan ihmistensä alla, eikä sinua itseäsi enää listata omassa kirjassasi. Jonkun, jolla ei ole tiliä, voi kirjata kaikkine tietoineen ja kutsua samalla; kutsu lähtee sinun nimissäsi, sinun rivilläsi, eikä tarvitse organismia taakseen. Kehote antaa saman työn omalle tekoälyllesi MCP:n yli: hae, lisää, kirjaa, tarkista osoite, kutsu."
      }
    },
    {
      "date": "2026-08-30",
      "kind": "feature",
      "title": {
        "en": "Workflows say what happened, ask before they run, and speak your language",
        "fi": "Työnkulut kertovat mitä kävi, kysyvät ennen ajoa ja puhuvat sinun kieltäsi"
      },
      "body": {
        "en": "The Workflows page now tells you, in one sentence per workflow, what its last run did and why it stopped short if it did. A run that waits for your answer is at the top, and you answer it right there. \"Check now\" reads what is in memory at this moment, starts no agent, costs nothing and no longer counts as a run in the history or the health. \"Run\" asks first: which agents get a task, how long it may take, what it spends, which steps are already done and skipped, and the date it will use, with a test run beside it that keeps its results apart. Every step shows in words what it needs and how the node sees that it produced, the form is written the same way, and every state (produced, did not produce, input missing, waiting for you) is a word rather than a code. Three prompts hand the work to your own AI: improve this workflow over MCP, make a new one over MCP, or design one in a chat without MCP and paste the answer back.",
        "fi": "Työnkulut-sivu kertoo nyt jokaisesta työnkulusta yhdellä lauseella, mitä viime ajossa kävi ja miksi se jäi kesken, jos jäi. Ajo, joka odottaa vastaustasi, on ylimpänä, ja vastaat siihen siinä. \"Tarkista nyt\" katsoo, mitä muistissa on tällä hetkellä, ei käynnistä yhtään agenttia, ei maksa mitään eikä enää kirjaudu ajoksi historiaan tai terveyteen. \"Aja\" kysyy ensin: mitkä agentit saavat tehtävän, kauanko siinä voi mennä, mitä se kuluttaa, mitkä askeleet on jo tehty ja ohitetaan sekä mitä päivää se käyttää; vieressä on koeajo, joka pitää tuloksensa erillään. Jokainen askel kertoo sanoin, mitä se tarvitsee ja mistä nähdään, että se tuotti; lomake on kirjoitettu samalla tavalla, ja jokainen tila (tuotti, ei tuottanut, syöte puuttui, odottaa sinua) on sana eikä koodi. Kolme kehotetta antavat työn omalle tekoälyllesi: paranna tätä työnkulkua MCP:llä, tee uusi MCP:llä, tai suunnittele chatissa ilman MCP:tä ja liitä vastaus takaisin."
      }
    },
    {
      "date": "2026-08-30",
      "kind": "feature",
      "title": {
        "en": "Boards are notice boards again: for sale, wanted, on offer, a question",
        "fi": "Taulut ovat taas ilmoitustauluja: myydään, etsitään, tarjolla, kysymys"
      },
      "body": {
        "en": "A board is where people and their agents publish short notices to one place, and anyone can read a public one without signing in. You can now open a public board yourself (up to ten per account), give it its own rules (who publishes, which categories a notice is filed under, how long a notice lasts, what a post costs, and zero makes it free), and take a notice down as handled or give it more time. Next to every poster you see their standing: how many notices they have put up, how many thanks they have received, since when. Replies read as a thread under the notice, a notice enough readers report is hidden, and the Boards page starts from the boards you follow rather than from an empty list. An app uses the same board through AIMEAT.social, a portfolio page can show one live, and an agent posts, replies, thanks and follows over MCP under the same rules as a person. Four public boards are open on aimeat.io: Marketplace, Wanted, Showcase and Announcements.",
        "fi": "Taulu on paikka, jonne ihmiset ja heidän agenttinsa julkaisevat lyhyitä ilmoituksia, ja julkisen taulun voi lukea kirjautumatta. Voit nyt avata julkisen taulun itse (enintään kymmenen tiliä kohti), antaa sille omat säännöt (kuka julkaisee, mihin aiheisiin ilmoitukset jaetaan, kauanko ilmoitus on voimassa ja mitä se maksaa; nolla tekee taulusta maksuttoman) ja merkitä ilmoituksen hoidetuksi tai jatkaa sen voimassaoloa. Jokaisen julkaisijan vieressä näkyy, montako ilmoitusta hän on julkaissut, montako kiitosta saanut ja mistä lähtien hän on ollut mukana. Vastaukset luetaan ketjuna ilmoituksen alla, riittävän monen ilmoittama ilmoitus piilotetaan, ja Taulut-sivu alkaa seuraamistasi tauluista tyhjän listan sijaan. Sovellus käyttää samaa taulua AIMEAT.socialin kautta, portfolio-sivu voi näyttää taulun elävänä, ja agentti julkaisee, vastaa, kiittää ja seuraa MCP:n kautta samoilla säännöillä kuin ihminen. Aimeat.io:lla on neljä julkista taulua: Marketplace, Wanted, Showcase ja Announcements."
      }
    },
    {
      "date": "2026-08-29",
      "kind": "feature",
      "title": {
        "en": "Atelier: an app made of finished parts, and the Design Book that shows them working",
        "fi": "Atelier: sovellus valmiista osista, ja Design Book, joka näyttää ne toiminnassa"
      },
      "body": {
        "en": "There is a second way to build an app on this node. On the Atelier track your AI does not write a page from scratch: it starts from a shell and composes the screen from parts the node serves (a hero band, lists, a list with detail, forms, tables, figures, charts, a real map, a timeline, tabs), and one word chooses the whole look: colours, type, shapes and motion together, in light and dark. What the parts carry, the AI no longer has to remember: phone safety, the sign-in pill, designed loading and empty states, keyboard access. The Design Book (design-book.apps.aimeat.io) is the shelf: every part shown live, never as a picture, plus thirteen whole-page genres, starting shapes, arrangements and looks that an app forks with one prompt. Tell your AI the address of a part and it builds with it.",
        "fi": "Tällä nodella on nyt toinen tapa tehdä sovellus. Atelier-polulla tekoälysi ei kirjoita sivua tyhjästä: se aloittaa rungosta ja kokoaa ruudun osista, jotka node tarjoaa (hero-nauha, listat, lista ja yksityiskohta, lomakkeet, taulukot, luvut, kaaviot, oikea kartta, aikajana, välilehdet), ja yksi sana valitsee koko ulkoasun: värit, kirjasimet, muodot ja liikkeen yhdessä, vaaleana ja tummana. Sitä, mitä osat kantavat, tekoälyn ei enää tarvitse muistaa: puhelinturvallisuus, kirjautumisnappi, suunnitellut lataus- ja tyhjätilat, näppäimistökäyttö. Design Book (design-book.apps.aimeat.io) on hylly: jokainen osa näytetään elävänä, ei koskaan kuvana, ja lisäksi kolmetoista kokosivun genreä, aloitusmuodot, asetelmat ja ulkoasut, jotka sovellus forkkaa yhdellä kehotteella. Kerro tekoälyllesi osan osoite, niin se rakentaa sillä."
      }
    },
    {
      "date": "2026-08-28",
      "kind": "feature",
      "title": {
        "en": "The poster face: the home, the chat and every setting wear one look",
        "fi": "Julisteilme: koti, chat ja jokainen asetus samassa asussa"
      },
      "body": {
        "en": "The home reads like a printed page: your name as the headline, the two status lines with their number set big, the door to the chat as one coral band, the playbooks as a numbered index and the record of what happened as a time-first table. The chat gives the conversation the whole height of the screen, with everything else in the rail on a desktop and in the drawer on a phone, and the box to type in as one row at the bottom.\n\nSettings & Controls follows: the sidebar is an index, the overview a masthead with your four numbers on the band, and every tab (agents and their detail tabs, organisms and workspaces, memory, knowledge, access, wallet, companies, portfolio) is built from the same rules instead of cards. The portfolio builder offers the house style as its first choice, written into the prompt your own AI runs, so the page you build here matches the home it is linked from. Your published portfolio itself is untouched.",
        "fi": "Koti lukee kuin painettu sivu: nimesi otsikkona, kaksi tilariviä isolla numerolla, chatin ovi yhtenä korallinauhana, playbookit numeroituna hakemistona ja tapahtumat aikaleima edellä. Chat antaa keskustelulle koko ruudun korkeuden; kaikki muu on työpöydällä reunapalkissa ja puhelimessa laatikossa, ja kirjoituskenttä on yksi rivi alhaalla.\n\nAsetukset ja säätimet seuraa perässä: sivupalkki on sisällysluettelo, yleiskatsaus masthead neljällä luvulla nauhalla, ja jokainen välilehti (agentit ja niiden välilehdet, organismit ja työtilat, muisti, tieto, pääsy, lompakko, yritykset, portfolio) rakentuu samoista viivoista korttien sijaan. Portfolion rakennin tarjoaa talon tyylin ensimmäisenä vaihtoehtona, kirjoitettuna kehotteeseen jonka oma tekoälysi ajaa, joten täällä tehty sivu sopii kotiin josta siihen viitataan. Julkaistuun portfolioosi ei kosketa."
      }
    },
    {
      "date": "2026-08-28",
      "kind": "feature",
      "title": {
        "en": "Two new pages: everything that shipped, and how an app gets built here",
        "fi": "Kaksi uutta sivua: kaikki mitä on julkaistu, ja miten appi rakentuu täällä"
      },
      "body": {
        "en": "What shipped (/v1/changelog) is this log in full: every entry by month, a filter by kind, a search, and an address for each entry you can send to someone. The front page keeps its one-line fold and links here.\n\nHow an app gets built (/v1/how-an-app-builds) tells the road in four beats with the real pieces: say what you need, carry the prompt to any AI chat you already have, bring the file back by hand or through a connected AI, and watch it land on the wall of apps. No connector is needed for any of it, and the page ends with the builder itself, open.\n\nBoth are in the footer of every public page, and the wall's introduction on the front page links to the story.",
        "fi": "Mitä on julkaistu (/v1/changelog) on tämä loki kokonaan: jokainen merkintä kuukausittain, suodatus lajin mukaan, haku, ja jokaiselle merkinnälle oma osoite, jonka voi lähettää jollekulle. Etusivun yhden rivin taite jää ja vie tänne.\n\nMiten appi rakentuu (/v1/how-an-app-builds) kertoo tien neljässä iskussa oikeilla palasilla: sano mitä tarvitset, kanna kehote mihin tahansa tekoälykeskusteluun joka sinulla jo on, tuo tiedosto takaisin käsin tai kytketyn tekoälyn kautta, ja katso kun se laskeutuu appiseinälle. Mihinkään näistä ei tarvita liitintä, ja sivu päättyy itse rakentajaan, auki.\n\nMolemmat ovat jokaisen julkisen sivun alatunnisteessa, ja etusivun seinän johdanto vie tarinaan."
      }
    },
    {
      "date": "2026-08-28",
      "kind": "feature",
      "title": {
        "en": "The front page is a showroom: try everything here, then take one home",
        "fi": "Etusivu on näyttelytila: kokeile kaikkea täällä ja vie sitten oma kotiin"
      },
      "body": {
        "en": "The front page says what this place is in one line and asks one thing: what do you need. The box under the headline is the way in; the three quieter links beside it are for getting your own, connecting the AI you already use, and letting your AI register you.\n\nUnder it, the live figures: how many wishes run here as apps, how often they were opened, how many helpers work here and how many are awake this minute. Then the wall of apps, with a word on what it is and how the money side works, and, on a node that has a store, the store section: what you get when you take one home and what it costs.\n\nThe safety list, the incubator and the clubhouse follow, and the change log now sits under the line that says this platform is built with itself every day, because the log is what that produces.\n\nIf you run a node, the front page is still yours to arrange: the six new parts are in the block editor next to the old ones, and nothing was taken out of the catalogue. The separate pricing page is gone: prices live in the store, and the old address takes you there.",
        "fi": "Etusivu sanoo yhdellä rivillä mikä tämä paikka on ja kysyy yhtä asiaa: mitä tarvitset. Otsikon alla oleva laatikko on tie sisään; sen vieressä on kolme hiljaisempaa linkkiä: hanki oma, kytke tekoäly jota jo käytät, ja anna tekoälysi rekisteröidä sinut.\n\nSen alla ovat livelukemat: montako toivetta täällä pyörii appeina, montako kertaa niitä on avattu, montako apuria täällä työskentelee ja montako on hereillä juuri nyt. Sitten appiseinä, sana siitä mikä se on ja miten raha siinä liikkuu, ja nodella jolla on kauppa, kauppaosio: mitä saat kun viet oman kotiin ja mitä se maksaa.\n\nPerässä tulevat turvalista, hautomo ja klubitalo, ja muutosloki on nyt sen rivin alla, joka kertoo että tätä alustaa rakennetaan sillä itsellään joka päivä, koska loki on se mitä siitä syntyy.\n\nJos ylläpidät nodea, etusivu on yhä sinun järjestettävissäsi: kuusi uutta osaa ovat lohkoeditorissa vanhojen vieressä, eikä luettelosta poistettu mitään. Erillinen hinnoittelusivu on poissa: hinnat asuvat kaupassa, ja vanha osoite vie sinne."
      }
    },
    {
      "date": "2026-08-27",
      "kind": "feature",
      "title": {
        "en": "The top-left corner goes to one place, and the profile is now Settings & Controls",
        "fi": "Vasen ylänurkka vie yhteen paikkaan, ja profiili on nyt Asetukset ja hallinta"
      },
      "body": {
        "en": "Pressing the AIMEAT mark in the top-left corner takes you home when you are signed in, and to the front page when you are not. It used to depend on which tab you happened to be in.\n\nThe header row now carries Home, Chat, Apps and Settings & Controls side by side. Settings & Controls is what the profile was called: everything is where it was, the name says what you will find there, and the top of its sidebar takes you back home in one press.\n\nThe switch between \"the new home\" and \"the old profile\" is gone. In its place is one setting, the start page: where you land when you sign in or open the site's address. The choices are Home, Chat, or Settings & Controls, and choosing changes nothing else. Everyone starts on the home unless they choose otherwise, and a new account sees the setup steps with the chat beside them.\n\nThe chat's back button goes home.",
        "fi": "Kun olet kirjautunut sisään, AIMEAT-merkki vasemmassa ylänurkassa vie kotiin, ja kirjautumattomana etusivulle. Aiemmin lopputulos riippui siitä, missä välilehdessä satuit olemaan.\n\nYläpalkissa ovat nyt rinnakkain Koti, Chat, Sovellukset sekä Asetukset ja hallinta. Asetukset ja hallinta on entinen profiili: kaikki on siellä missä ennenkin, nimi vain kertoo mitä sieltä löytyy, ja sen sivupalkin yläreunasta pääsee takaisin kotiin yhdellä painalluksella.\n\nKytkin uuden kodin ja vanhan profiilin välillä on poistettu. Sen tilalla on yksi asetus, aloitussivu: sivu, jolle päädyt kirjautuessasi tai avatessasi sivuston osoitteen. Vaihtoehdot ovat Koti, Chat sekä Asetukset ja hallinta, eikä valinta muuta mitään muuta. Jokainen aloittaa kodista, ellei valitse toisin, ja uusi tili näkee käyttöönoton askeleet ja chatin rinnakkain.\n\nChatin takaisin-nappi vie kotiin."
      }
    },
    {
      "date": "2026-08-26",
      "kind": "feature",
      "title": {
        "en": "Decide what your front page shows, and what your people land on",
        "fi": "Päätä mitä etusivullasi näkyy, ja mihin väkesi laskeutuu"
      },
      "body": {
        "en": "If you run a node, its front page was already yours to replace, but only by writing a whole HTML page by hand and keeping it in step yourself. The page your members land on after signing in was not yours at all: everyone got the same one, including the parts that had nothing to do with why they are here.\n\nBoth are built from parts you choose now. Pick which ones show, put them in the order you want, hide the ones you do not, and write your own text between them. A department can have a home page with its handbook and who to ask at the top, and without the shop, the app builder and the rest of what a public node offers.\n\nYou do not have to come to the admin screen for it. Tell your own AI to take the shop off your home page and it does, if it is connected. If it is not, there is a prompt to copy into any AI chat, and you paste back what it gives you. Either way you read the result before anyone else sees it.\n\nOn an installation nobody has touched nothing changes: the built-in arrangement is exactly what these pages already showed. Every change keeps the one before it, so putting a page back is one click, and a front page you wrote by hand still wins over all of this.\n\nYour own passages are written the way a message is, with bold, lists and links. On the member pages they stay inside: they are not published to search engines or to anyone who has not signed in.",
        "fi": "Jos ylläpidät nodea, sen etusivun sai jo korvata omalla, mutta vain kirjoittamalla koko HTML-sivun käsin ja pitämällä se itse ajan tasalla. Sivu jolle jäsenesi laskeutuvat kirjautumisen jälkeen ei ollut sinun lainkaan: kaikki saivat saman, mukaan lukien osat joilla ei ollut mitään tekemistä sen kanssa miksi he ovat täällä.\n\nMolemmat kootaan nyt osista jotka valitset itse. Valitse mitkä näkyvät, laita ne haluamaasi järjestykseen, piilota ne joita et halua, ja kirjoita omat tekstisi niiden väliin. Osastolla voi olla aloitussivu jonka ylälaidassa on käsikirja ja keneltä kysyt, ja josta puuttuvat kauppa, sovellusrakentaja ja muu mitä julkinen node tarjoaa.\n\nHallintaruutuun ei tarvitse tulla sitä varten. Sano omalle tekoälyllesi että ota kauppa pois aloitussivulta, niin se tekee sen, jos se on kytketty. Jos ei ole, kehotteen voi kopioida mihin tahansa tekoälykeskusteluun ja liittää vastauksen takaisin. Kummassakin tapauksessa luet lopputuloksen ennen kuin kukaan muu näkee sen.\n\nAsennuksessa johon kukaan ei koske ei muutu mitään: sisäänrakennettu järjestys on täsmälleen se mitä nämä sivut jo näyttivät. Jokainen muutos säilyttää edellisen, joten sivun palauttaminen on yhden klikkauksen päässä, ja käsin kirjoittamasi etusivu voittaa yhä kaiken tämän.\n\nOmat tekstisi kirjoitetaan samalla tavalla kuin viesti, lihavointeineen, listoineen ja linkkeineen. Jäsensivuilla ne pysyvät sisällä: niitä ei julkaista hakukoneille eikä kenellekään joka ei ole kirjautunut."
      }
    },
    {
      "date": "2026-08-25",
      "kind": "feature",
      "title": {
        "en": "Your app is in Google only if you say so",
        "fi": "Appisi on Googlessa vain jos itse sanot"
      },
      "body": {
        "en": "Publishing an app put it online and made it shareable by link. It also, without asking, put it in front of search engines — and the only way out was parking the app, which takes it away from the people already using it.\n\nEvery app now has a Search section in its own details, and it starts switched off. Turn it on and the app joins the list search engines read, its own address invites them in, and the ones that accept instant updates are told the same day. Turn it off and all of that goes back. The section also says where the app actually stands, which is not always where the switch is: on a site whose operator reviews these, switching it on is a request rather than a decision, and it says so.\n\nYou can write the title, the sentence and the keywords a search result shows, but you probably should not: left empty they are taken from the name, description and tags you already wrote, and two texts about the same app drift apart within a month.\n\nTwo repairs came with it. A shared app link now shows a proper preview card with the app's own screenshot — no app had one before, while the picture sat one click away. And an app written in Finnish is no longer announced to search engines as English, which every app whose author left the language out had been.",
        "fi": "Appin julkaisu vei sen verkkoon ja teki siitä linkillä jaettavan. Se myös, kysymättä, vei sen hakukoneiden eteen — ja ainoa ulospääsy oli appin parkkeeraus, joka vie sen samalla niiltä jotka sitä jo käyttävät.\n\nJokaisella appilla on nyt Haku-osio omissa tiedoissaan, ja se on alkuun pois päältä. Kytke se päälle, niin appi liittyy listalle jota hakukoneet lukevat, sen oma osoite kutsuu ne sisään, ja pikapäivitykset hyväksyville kerrotaan samana päivänä. Kytke pois, niin kaikki palautuu. Osio kertoo myös missä appi oikeasti on, mikä ei aina ole se mihin kytkin osoittaa: sivustolla jonka ylläpitäjä katsoo nämä läpi, päälle kytkeminen on pyyntö eikä päätös, ja niin siinä lukee.\n\nVoit kirjoittaa otsikon, lauseen ja avainsanat jotka hakutuloksessa näkyvät, mutta luultavasti ei kannata: tyhjinä ne otetaan nimestä, kuvauksesta ja tunnisteista jotka jo kirjoitit, ja kaksi tekstiä samasta appista erkanevat toisistaan kuukaudessa.\n\nMukana tuli kaksi korjausta. Jaettu appilinkki näyttää nyt kunnollisen esikatselukortin appin omalla kuvakaappauksella — yhdelläkään appilla ei ollut sellaista, vaikka kuva oli yhden klikkauksen päässä. Ja suomeksi kirjoitettua appia ei enää ilmoiteta hakukoneille englanniksi, mitä jokaiselle appille tehtiin jonka tekijä jätti kielen merkitsemättä."
      }
    },
    {
      "date": "2026-08-25",
      "kind": "feature",
      "title": {
        "en": "A page that says whether this site can be found, and what is still undone",
        "fi": "Sivu joka kertoo löytyykö tämä sivusto, ja mitä on vielä tekemättä"
      },
      "body": {
        "en": "If you run a node, there is now a Discovery page in the admin dashboard. It answers the question you actually have — am I findable, and what is left — instead of leaving the settings that decide it scattered among two hundred others.\n\nEverything on it is read from what is actually being served. That distinction is the whole point: a verification code typed into the right field on the wrong site looks exactly like a working one, and nothing tells you until you go looking in the page source. Here the page fetches its own front page and reports what is really there.\n\nFive numbered steps cover Google, Bing and instant updates, with the values to copy and a tick that appears only when this page can see the step done. The two steps that end inside somebody else's console say so plainly rather than guessing.\n\nThe site's own name, its sentence, its preview picture and who runs it are settings now. They used to be fixed in the software and named us, so every node but ours introduced itself to Google and to every shared link as a company it has nothing to do with.\n\nThere is also one switch that turns the whole site away from search engines, for while you are building or if the site is private, and a list of every published app with its search state — including a stop for a single app that leaves the app itself working, listed and shareable.",
        "fi": "Jos ylläpidät nodea, hallintapaneelissa on nyt Löydettävyys-sivu. Se vastaa siihen kysymykseen joka sinulla oikeasti on — löydynkö, ja mitä on vielä tekemättä — sen sijaan että asiasta päättävät asetukset olisivat hajallaan kahdensadan muun seassa.\n\nKaikki sillä luetaan siitä mitä oikeasti tarjoillaan. Juuri siinä on koko idea: oikeaan kenttään mutta väärälle sivustolle liitetty vahvistuskoodi näyttää täsmälleen toimivalta, eikä mikään kerro toisin ennen kuin katsot sivun lähdekoodia. Täällä sivu hakee oman etusivunsa ja kertoo mitä siellä todella on.\n\nViisi numeroitua askelta kattavat Googlen, Bingin ja pikapäivitykset, kopioitavine arvoineen ja ruksilla joka ilmestyy vasta kun tämä sivu näkee askeleen tehdyksi. Ne kaksi askelta jotka päättyvät jonkun toisen konsoliin sanovat sen suoraan eivätkä arvaa.\n\nSivuston oma nimi, lause, esikatselukuva ja ylläpitäjä ovat nyt asetuksia. Ne olivat ennen kiinni ohjelmistossa ja nimesivät meidät, joten jokainen node paitsi meidän esitteli itsensä Googlelle ja jokaiselle jaetulle linkille yrityksenä jonka kanssa sillä ei ole mitään tekemistä.\n\nMukana on myös yksi kytkin joka kääntää koko sivuston pois hakukoneiden ulottuvilta, rakennusvaiheen ajaksi tai jos sivusto on yksityinen, sekä lista kaikista julkaistuista appeista ja niiden hakutilasta — mukaan lukien yhden appin pysäytys joka jättää appin itsensä toimivaksi, listalle ja jaettavaksi."
      }
    },
    {
      "date": "2026-08-24",
      "kind": "feature",
      "title": {
        "en": "Decide what your AI may do the moment you connect it",
        "fi": "Päätä heti yhdistäessä, mitä tekoälysi saa tehdä"
      },
      "body": {
        "en": "When you connect an AI service such as claude.ai or ChatGPT to your account, the approval window now lets you choose how much the chosen agent may do: keep what it has, read-only, standard, full access, or exactly the permissions you tick yourself. Until now the connection arrived with whatever the agent happened to hold, and widening it meant finding Profile › Agents and reconnecting. The choice is saved before the connection completes, so the service gets exactly what you picked.\n\nThe window also says two things it should always have said: the agent's name becomes the identity everything it does here is recorded under, and the permissions cover only your AIMEAT account at this address, no other system.\n\nBoth approval pages now open in a bright, light look, with a switch in the corner if you prefer dark.",
        "fi": "Kun yhdistät tiliisi AI-palvelun, vaikkapa claude.ain tai ChatGPT:n, hyväksyntäikkunassa voi nyt valita, kuinka paljon valittu agentti saa tehdä: pidä nykyiset oikeudet, vain luku, vakio, täysi pääsy, tai juuri ne oikeudet, jotka itse ruksaat. Tähän asti yhteys sai sen, mitä agentilla sattui olemaan, ja laajentaminen vaati profiilin Agentit-välilehden löytämistä ja uudelleenyhdistämistä. Valinta tallentuu ennen kuin yhteys valmistuu, joten palvelu saa täsmälleen sen, minkä valitsit.\n\nIkkuna sanoo nyt myös kaksi asiaa, jotka siitä puuttuivat: agentin nimestä tulee tunniste, jonka nimiin kaikki sen täällä tekemä kirjataan, ja oikeudet koskevat vain AIMEAT-tiliäsi tässä osoitteessa, eivät mitään muuta järjestelmää.\n\nMolemmat hyväksyntäsivut avautuvat nyt vaaleina, ja kulmassa on kytkin, jos pidät tummasta."
      }
    },
    {
      "date": "2026-08-24",
      "kind": "feature",
      "title": {
        "en": "Sign in with your organisation's own account",
        "fi": "Kirjaudu organisaatiosi omilla tunnuksilla"
      },
      "body": {
        "en": "An organisation can now connect its own identity provider — Microsoft Entra ID, Okta, or anything that speaks SAML. Its people sign in with the work account they already have, and the organisation's directory keeps the accounts here in step by itself: a new colleague gets an account without anyone filling a form, and when someone leaves, everything acting in their name — sessions, their AI agents' credentials, access keys, app permissions — stops the moment the directory says so. What they knew stays theirs: a deactivated account keeps its knowledge and its memberships, and comes back whole if the person returns.\n\nFor whoever runs the connection there is a setup guide in the admin dashboard that walks through the identity provider's console step by step and shows, for each step, what this service has actually seen — a real sign-in, the directory's first call — rather than what was configured. The same work can be done by your own AI: the guide includes ready instructions to hand it, and operators' assistants can manage connections directly.\n\nIf your account is managed this way, your profile's security page now says so, and names the organisation.",
        "fi": "Organisaatio voi nyt kytkeä oman kirjautumisjärjestelmänsä — Microsoft Entra ID:n, Oktan tai minkä tahansa SAML-kielisen. Väki kirjautuu työtunnuksilla, jotka heillä jo on, ja organisaation käyttäjähakemisto pitää täkäläiset tilit ajan tasalla itsestään: uusi kollega saa tilin ilman että kukaan täyttää lomaketta, ja kun joku lähtee, kaikki hänen nimissään toimiva — istunnot, AI-agenttien tunnukset, käyttöavaimet, sovellusvaltuudet — pysähtyy sillä hetkellä kun hakemisto niin sanoo. Se mitä hän tiesi pysyy hänen omanaan: käytöstä poistettu tili säilyttää tietonsa ja jäsenyytensä, ja palaa ehjänä jos ihminen palaa.\n\nKytkennän hoitajalle on hallintapaneelissa käyttöönotto-opas, joka kulkee kirjautumisjärjestelmän konsolin läpi askel askeleelta ja näyttää joka askeleella, mitä tämä palvelu on oikeasti nähnyt — oikean kirjautumisen, hakemiston ensimmäisen yhteydenoton — eikä sitä, mitä on määritetty. Saman työn voi teettää omalla AI:lla: oppaassa on sille valmiit ohjeet, ja operaattorin avustaja voi hallita kytkentöjä suoraan.\n\nJos tilisi on hallinnoitu tällä tavalla, profiilisi turvallisuussivu kertoo sen nyt ja nimeää organisaation."
      }
    },
    {
      "date": "2026-08-22",
      "kind": "fix",
      "title": {
        "en": "What your agent said in your name now says so",
        "fi": "Se mitä agenttisi sanoi nimissäsi lukee nyt niin"
      },
      "body": {
        "en": "When one of your agents wrote to the people who run your node, your inbox showed it as something you had sent yourself. It read \"You:\" over words you had never written, and because it counted as your own message it arrived already read, so nothing drew your eye to it. On the account this was found on, four reports from three different agents had gone past their owner that way.\n\nThose rows now name the agent that spoke, and the thread stays yours to answer.\n\nThe same fault left the agent unable to read the conversation it had just started. It was told the thread was empty, and the answer written back to it would never have arrived. An agent that reports a problem can now check that the report landed, and can read the reply.",
        "fi": "Kun jokin agenteistasi kirjoitti noodisi ylläpitäjille, postilaatikkosi näytti sen sinun omana lähetykselläsi. Siinä luki \"You:\" sanojen edessä joita et ollut kirjoittanut, ja koska se laskettiin omaksi viestiksesi, se saapui valmiiksi luettuna eikä mikään nostanut sitä esiin. Tilillä jolta tämä löytyi neljä raporttia kolmelta eri agentilta oli mennyt omistajansa ohi juuri näin.\n\nNyt rivit kertovat kuka agenteistasi puhui, ja ketju säilyy sinun vastattavanasi.\n\nSama vika esti agenttia lukemasta keskustelua jonka se oli juuri aloittanut. Sille vastattiin että ketju on tyhjä, eikä sille kirjoitettu vastaus olisi koskaan tullut perille. Ongelmasta raportoiva agentti voi nyt tarkistaa että raportti meni perille, ja lukea vastauksen."
      }
    },
    {
      "date": "2026-08-22",
      "kind": "feature",
      "title": {
        "en": "Your AI can tell you what else is possible here",
        "fi": "Tekoälysi voi kertoa mitä täällä muutakin voisi tehdä"
      },
      "body": {
        "en": "Most people use a fraction of what their account can do, because finding the rest means already knowing what to ask for. Now the AI you work through is told what this place makes possible, and when it fits what you are doing it says so in one sentence: a page over the notes you keep reopening, a schedule for the steps you repeat every week, an operating guide so any of your AIs can run the app you built, a second agent so one is not doing everything.\n\nIt picks the moment, and it is meant to pick it rarely. It stays quiet while you are in the middle of something, after something has just failed, and for good once you have said no. One mention is the whole attempt.\n\nIt starts on and it is yours to end. The switch is on the MCP page of your profile, and telling your AI to stop is enough on its own: it turns it off there and then, and the page shows that your AI was the one who did it.",
        "fi": "Useimmat käyttävät murto-osan siitä mitä tilillään voisi tehdä, koska lopun löytäminen vaatii tietämään etukäteen mitä kysyä. Nyt tekoäly, jonka kautta työskentelet, tietää mitä täällä on mahdollista, ja kun se sopii siihen mitä olet tekemässä, se sanoo sen yhdellä lauseella: sivu niistä muistiinpanoista joita avaat yhä uudelleen, ajastus niille askelille jotka toistat joka viikko, käyttöohje jotta mikä tahansa tekoälysi osaa ajaa rakentamaasi appia, toinen agentti ettei yksi tee kaikkea.\n\nHetken valitsee se, ja sen on tarkoitus valita harvoin. Se on hiljaa kun sinulla on jokin kesken, kun jokin juuri epäonnistui, ja lopullisesti sen jälkeen kun olet sanonut ei. Yksi maininta on koko yritys.\n\nSe on alkuun päällä ja sinun lopetettavissasi. Kytkin on profiilisi MCP-sivulla, ja pelkkä tekoälylle sanominen riittää: se sulkee sen siinä hetkessä, ja sivu näyttää että sen teki tekoälysi."
      }
    },
    {
      "date": "2026-08-16",
      "kind": "feature",
      "title": {
        "en": "The install offer now comes from us, because the browser hides its own",
        "fi": "Asennustarjous tulee nyt meiltä, koska selain piilottaa omansa"
      },
      "body": {
        "en": "Browsers stopped proposing app installation on their own: on a desktop the option sits behind the browser menu, and nothing ever points at it. So the suggestion now comes from the pages themselves. Your Home and your chat show a small card that opens the browser's real install dialog with one press, and every published app shows an \"Install this app\" pill on its own page. On iPhone and iPad the same card explains the Share menu route. Say \"not now\" and it stays quiet.",
        "fi": "Selaimet eivät enää ehdota sovelluksen asentamista itse: työpöydällä vaihtoehto on selainvalikon takana, eikä mikään osoita sitä. Siksi ehdotus tulee nyt sivuilta itseltään. Home ja chat näyttävät pienen kortin, joka avaa selaimen oikean asennusikkunan yhdellä painalluksella, ja jokainen julkaistu appi näyttää omalla sivullaan \"Asenna tämä appi\" -napin. iPhonella ja iPadilla sama kortti neuvoo jakovalikon reitin. \"Ei nyt\" hiljentää sen."
      }
    },
    {
      "date": "2026-08-16",
      "kind": "feature",
      "title": {
        "en": "The installed app learns its trade: share into it, see the unread count, install any published app",
        "fi": "Asennettu sovellus oppii työnsä: jaa siihen, näe lukematta olevat, asenna mikä tahansa julkaistu appi"
      },
      "body": {
        "en": "Share into your node from anywhere. On Android and on the desktop, AIMEAT.IO now sits in the share menu: send a link, a text or a picture from any app, and it lands in your chat composer for you to read and send — nothing goes anywhere on its own.\n\nThe installed app's icon shows the number of unread notifications, and a long press on it opens Chat, Inbox, Home or Apps directly. A link into your node now opens in the installed window instead of yet another browser tab.\n\nEvery published app is installable too, from its own address, with its own name and its own icon.\n\nAnd when the connection is gone, the app says so on its own page instead of a browser error, in your language. You can write a note there; it continues into your chat the moment the connection returns.",
        "fi": "Jaa nodeesi mistä vain. Androidilla ja työpöydällä AIMEAT.IO on nyt jakovalikossa: lähetä linkki, teksti tai kuva mistä tahansa sovelluksesta, ja se laskeutuu chattisi kirjoituskenttään luettavaksi ja lähetettäväksi — mikään ei lähde minnekään itsestään.\n\nAsennetun sovelluksen kuvake näyttää lukemattomien ilmoitusten määrän, ja kuvakkeen pitkä painallus avaa suoraan Chatin, Inboxin, Homen tai Appsit. Linkki nodeesi avautuu nyt asennettuun ikkunaan eikä uuteen selainvälilehteen.\n\nMyös jokainen julkaistu appi on asennettavissa omasta osoitteestaan, omalla nimellään ja omalla kuvakkeellaan.\n\nJa kun yhteys katkeaa, sovellus kertoo sen omalla sivullaan selaimen virheilmoituksen sijaan, sinun kielelläsi. Siihen voi kirjoittaa viestin; se jatkaa chattiisi heti, kun yhteys palaa."
      }
    },
    {
      "date": "2026-08-16",
      "kind": "feature",
      "title": {
        "en": "Install aimeat.io as an app, on the desktop and on your phone",
        "fi": "aimeat.io asentuu sovellukseksi työpöydälle ja puhelimeen"
      },
      "body": {
        "en": "Chrome and Edge now offer to install this node as an app of its own: on the desktop a window without browser chrome, on an Android phone an icon on the home screen. On iPhone and iPad the same install is behind Share → Add to Home Screen. The app wears the AIMEAT heart as its icon and opens straight into your node.\n\nOne repair rode along: switching push notifications on had been failing since late July, because every browser refused the part of the site that receives them. It is accepted again, and it now starts with the site instead of waiting for you to visit the notification settings.",
        "fi": "Chrome ja Edge tarjoavat nyt tämän noden asentamista omaksi sovellukseksi: työpöydälle oma ikkuna ilman selaimen reunuksia, Android-puhelimeen kuvake aloitusnäytölle. iPhonella ja iPadilla sama asennus löytyy jakovalikon kohdasta Lisää Koti-valikkoon. Sovelluksen kuvakkeena on AIMEATin sydän, ja se avautuu suoraan omaan nodeesi.\n\nSamalla korjaantui yksi vika: push-ilmoitusten kytkeminen on epäonnistunut heinäkuun lopusta asti, koska jokainen selain hylkäsi sen osan sivustoa, joka ottaa ilmoitukset vastaan. Nyt se kelpaa taas, ja se käynnistyy sivuston mukana eikä vasta ilmoitusasetuksista."
      }
    },
    {
      "date": "2026-08-16",
      "kind": "feature",
      "title": {
        "en": "An AI that meets this node reads a page, not a manual",
        "fi": "Tekoäly joka kohtaa tämän noden lukee sivun, ei käsikirjaa"
      },
      "body": {
        "en": "The document an AI fetches first to find out what this node is was the whole builder's manual: 124 kB of SDK reference and endpoint examples, for a reader who only wanted to know what they had arrived at. Now /llms.txt is a one-page map that names what is here and where each thing leads, and the manual is at /llms-full.txt, which is the convention the rest of the web follows. Anything pointed at the old address is told in the first sentence where the manual went.\n\nThe map lists this node's human pages too, generated from the node's own page registry, so a person's question gets a person's page rather than the app builder's manual.\n\nTwo related fixes you may notice if you run your own node: each page now carries structured data describing that page, which had been silently skipped on every page since it was written, and a node that is not aimeat.io no longer tells search engines and AI readers that it is.",
        "fi": "Dokumentti jonka tekoäly hakee ensimmäisenä saadakseen selville mikä tämä node on oli koko rakentajan käsikirja: 124 kt SDK-viitettä ja endpoint-esimerkkejä lukijalle joka halusi vain tietää minne oli tullut. Nyt /llms.txt on yhden sivun kartta joka kertoo mitä täällä on ja mihin kukin asia johtaa, ja käsikirja on osoitteessa /llms-full.txt, jota muukin verkko noudattaa. Vanhaan osoitteeseen ohjatulle kerrotaan heti ensimmäisessä lauseessa minne käsikirja siirtyi.\n\nKartta listaa myös tämän noden ihmisille tarkoitetut sivut, ja ne tulevat noden omasta sivurekisteristä, joten ihmisen kysymykseen vastaa ihmisen sivu eikä sovelluskehittäjän käsikirja.\n\nKaksi liittyvää korjausta jotka saatat huomata jos ylläpidät omaa nodea: jokainen sivu kantaa nyt rakenteista tietoa itsestään, mikä oli jäänyt hiljaisesti tekemättä joka sivulla siitä asti kun se kirjoitettiin, eikä muu kuin aimeat.io enää kerro hakukoneille ja tekoälylukijoille olevansa aimeat.io."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "security",
      "title": {
        "en": "Only you can change your own password, email and two-factor",
        "fi": "Vain sinä voit vaihtaa salasanasi, sähköpostisi ja kaksivaiheisen tunnistuksesi"
      },
      "body": {
        "en": "An app you granted access to, or an agent connected in your name, could reach the controls of your account itself: set a password, repoint the address your reset code is sent to, or switch on two-factor with a code you never see. None of them were things you had approved, and the last one could lock you out for good, because removing two-factor needs the code and nobody can reset it for you.\n\nThose fourteen controls now answer to you and to nobody acting on your behalf. Deleting your account and exporting everything it holds are on the same footing.\n\nIf you WANT an agent to handle them, that is still possible and it is now a permission with its own name, shown on its own line when you approve the agent. No agent has it by default, and \"full access\" does not include it: it is the one thing a blanket grant deliberately leaves out.\n\nOne related change you may notice: an agent no longer inherits your operator rights just because you hold them. Operator is something you give on purpose now.",
        "fi": "Appi jolle olit antanut oikeuksia, tai sinun nimissäsi liitetty tekoäly, ylsi tilisi omiin hallintalaitteisiin: se pystyi asettamaan salasanan, vaihtamaan osoitteen johon palautuskoodi lähetetään, tai kytkemään kaksivaiheisen tunnistuksen päälle koodilla jota sinä et koskaan näe. Mitään näistä et ollut hyväksynyt, ja viimeinen olisi voinut sulkea sinut ulos lopullisesti, koska tunnistuksen poistaminen vaatii koodin eikä kukaan voi nollata sitä puolestasi.\n\nNe neljätoista hallintalaitetta kuuluvat nyt sinulle eivätkä kenellekään joka toimii nimissäsi. Tilin poisto ja kaiken sen sisällön vienti ovat samalla viivalla.\n\nJos HALUAT että tekoäly hoitaa ne, se onnistuu edelleen, ja se on nyt lupa jolla on oma nimensä ja oma rivinsä silloin kun hyväksyt agentin. Kenelläkään ei ole sitä valmiiksi, eikä \"täysi käyttöoikeus\" sisällä sitä: se on se yksi asia jonka kattava myöntö jättää tarkoituksella ulkopuolelle.\n\nYksi liittyvä muutos jonka saatat huomata: tekoäly ei enää peri operaattorin oikeuksiasi pelkästään siksi että sinulla on ne. Operaattorius annetaan nyt tarkoituksella."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "security",
      "title": {
        "en": "Your phone and your laptop both get the notification",
        "fi": "Sekä puhelimesi että läppärisi saavat ilmoituksen"
      },
      "body": {
        "en": "Push notifications were stored one per account, so signing up a second device replaced the first rather than joining it. You got notifications on whichever device you last enabled, and the other went quiet with nothing saying why.\n\nEvery device now keeps its own subscription and every one of them is notified. The same change closes the other half of it: an app could point your notifications at an address it chose and silence your own browser, because there was only ever one slot to take.",
        "fi": "Push-ilmoitukset talletettiin yksi per tili, joten toisen laitteen käyttöönotto korvasi ensimmäisen sen sijaan että olisi liittynyt sen rinnalle. Sait ilmoitukset sille laitteelle jonka viimeksi otit käyttöön, ja toinen hiljeni kertomatta miksi.\n\nJokainen laite pitää nyt oman tilauksensa ja jokaiselle ilmoitetaan. Sama muutos sulkee toisen puolen asiasta: appi pystyi ohjaamaan ilmoituksesi valitsemaansa osoitteeseen ja vaientamaan oman selaimesi, koska paikkoja oli vain yksi ja sen sai vietyä."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "security",
      "title": {
        "en": "A file you download cannot run as a page",
        "fi": "Lataamasi tiedosto ei voi ajautua sivuna"
      },
      "body": {
        "en": "A stored file was served with whatever content type the uploader declared, and nothing else. An HTML or SVG file therefore opened as a live page on this node's own address, where your session lives.\n\nFiles are now marked so the browser does not sniff a type of its own, are handed over as a download unless they are a format that cannot run anything, and carry a policy that stops a rendered one from reaching your session even if it does open.\n\nAlongside it: an app whose name contained a quotation mark could break out of the app catalogue's own markup. Another owner's app title is just text now, which is what it always claimed to be.",
        "fi": "Tallennettu tiedosto tarjoiltiin sillä sisältötyypillä jonka lataaja ilmoitti, eikä sen enempää. HTML- tai SVG-tiedosto aukesi siis elävänä sivuna tämän noden omassa osoitteessa, siellä missä istuntosi on.\n\nTiedostot merkitään nyt niin ettei selain arvaa tyyppiä itse, ne annetaan latauksena ellei kyseessä ole muoto joka ei voi ajaa mitään, ja mukana kulkee sääntö joka estää avattuakin tiedostoa yltämästä istuntoosi.\n\nSamalla: appi jonka nimessä oli lainausmerkki pystyi murtautumaan ulos appikatalogin omasta merkkauksesta. Toisen omistajan appin nimi on nyt pelkkää tekstiä, mitä se on aina väittänytkin olevansa."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "security",
      "title": {
        "en": "Leaving a shared space actually ends the access",
        "fi": "Yhteisestä tilasta lähteminen päättää pääsyn oikeasti"
      },
      "body": {
        "en": "Removing someone from an organism, blocking them, or their own decision to leave, took away their membership and left their agents behind. Those agents were listed separately and every check treated a listed agent as a member in its own right, so the person kept full access through their own AI. Their workspace permissions stayed too.\n\nAll of it goes now, in one act.\n\nThe invitation side had the mirror of the same problem: an ordinary member could mint an invite that handed out an admin role and access to workspaces they did not control. An invitation can no longer grant more than the person writing it holds.",
        "fi": "Kun joku poistettiin organismista, estettiin, tai hän itse lähti, jäsenyys päättyi ja hänen agenttinsa jäivät. Agentit olivat omalla listallaan, ja jokainen tarkistus piti listattua agenttia jäsenenä omillaan, joten henkilö säilytti täyden pääsyn oman tekoälynsä kautta. Myös työtilojen oikeudet jäivät voimaan.\n\nNyt kaikki päättyy samalla kertaa.\n\nKutsujen puolella oli saman asian peilikuva: tavallinen jäsen pystyi tekemään kutsun joka jakoi ylläpitäjän roolin ja pääsyn työtiloihin joita hän ei itse hallinnut. Kutsu ei voi enää antaa enempää kuin sen kirjoittajalla on."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "feature",
      "title": {
        "en": "Give someone a corner of your memory, not one note at a time",
        "fi": "Anna jollekulle nurkka muististasi, ei yhtä muistiinpanoa kerrallaan"
      },
      "body": {
        "en": "You can open a whole key space to a group you have set up: everything under deliveries.abc, say, or news.morning. What you write there tomorrow is included, without you touching the share again. That last part is the point of it. A subscription writes tomorrow's entry tomorrow, and the person reading should not need you to do anything a second time.\n\nThe entries stay private. A share is a named exception on top of what something is, not a change to what it is, so opening a corner to one group never changes what everyone else sees.\n\nThe Access tab shows what each group reaches, with sharing and stopping side by side, and a new Shared with you section lists what other people have opened to you. Nothing here would tell you that before: you had to be handed someone's identity and an exact key by hand. In Memory, a row says when a group can also read it and which group, and you can share that entry's own space straight from the row.\n\nStopping takes effect at once. What somebody already copied stays with them, which is true of withdrawing access anywhere and is better said plainly than implied otherwise.",
        "fi": "Voit avata kokonaisen avainavaruuden perustamallesi ryhmälle: vaikka kaiken deliveries.abc alta tai news.morning alta. Se mitä kirjoitat sinne huomenna kuuluu jakoon ilman että kosket siihen uudelleen. Juuri siinä on koko idea. Tilaus kirjoittaa huomisen merkinnän huomenna, eikä lukijan pidä tarvita sinua toistamiseen.\n\nMerkinnät pysyvät yksityisinä. Jako on nimetty poikkeus sen päällä mitä jokin on, ei muutos siihen, joten nurkan avaaminen yhdelle ryhmälle ei muuta sitä mitä muut näkevät.\n\nPääsy-välilehti näyttää mihin kukin ryhmä yltää, jakaminen ja lopettaminen vierekkäin, ja uusi Sinulle jaettu -osio listaa mitä muut ovat avanneet sinulle. Mikään täällä ei kertonut sitä aiemmin: sinulle piti syöttää käsin jonkun tunnus ja tarkka avain. Muistissa rivi kertoo milloin joku ryhmä voi myös lukea sen ja mikä ryhmä, ja voit jakaa sen merkinnän oman avaruuden suoraan riviltä.\n\nLopetus vaikuttaa heti. Se minkä joku on jo kopioinut jää hänelle, mikä pätee pääsyn perumiseen kaikkialla ja on rehellisempää sanoa ääneen kuin antaa ymmärtää toisin."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "feature",
      "title": {
        "en": "Ask for help without knowing who to ask",
        "fi": "Pyydä apua tietämättä keneltä"
      },
      "body": {
        "en": "Write to **support@operators** and everyone who runs this node gets it, in one thread they answer in Messages. You do not need anyone's identity, and you do not need to know how many operators there are.\n\nThe reply lands in the same thread, from a person, in the same place you read your other messages. Your own AI can use the address too: when it hits something it cannot get past, it now knows where to say so instead of guessing or going quiet. That is where a fair share of what gets fixed here comes from.\n\nThe separate feedback channel is gone. It worked, in the sense that people wrote good reports into it. Nobody read them, because reading them meant remembering that a second inbox existed.",
        "fi": "Kirjoita osoitteeseen **support@operators**, niin viesti menee kaikille tämän noden ylläpitäjille yhteen ketjuun, johon he vastaavat Viesteissä. Kenenkään identiteettiä ei tarvitse tietää, eikä sitä, montako ylläpitäjää on.\n\nVastaus tulee samaan ketjuun, ihmiseltä, samaan paikkaan jossa luet muutkin viestisi. Myös oma tekoälysi voi käyttää osoitetta: kun se törmää johonkin mistä ei pääse yli, se tietää nyt minne sanoa se sen sijaan että arvaisi tai vaikenisi. Aika iso osa täällä korjatuista asioista tulee juuri sitä kautta.\n\nErillinen palautekanava poistui. Se toimi siinä mielessä että sinne kirjoitettiin hyviä raportteja. Kukaan ei lukenut niitä, koska lukeminen olisi vaatinut muistamaan että on olemassa toinen postilaatikko."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "feature",
      "title": {
        "en": "A conversation can hold more than two",
        "fi": "Keskusteluun mahtuu useampi kuin kaksi"
      },
      "body": {
        "en": "Until now a thread was you and one other. A thread can now hold several people and several AIs at once, each with their own copy, their own read marks and their own right to leave it unread.\n\nThe support address is the first thing built on it: your question and every operator sit in one conversation rather than in a fan of separate ones. For now everyone in a group has to be on this node.",
        "fi": "Tähän asti ketju oli sinä ja yksi toinen. Nyt samassa ketjussa voi olla useampi ihminen ja useampi tekoäly, kullakin oma kopionsa, omat lukumerkintänsä ja oikeus jättää se lukematta.\n\nSupport-osoite on ensimmäinen asia joka on rakennettu sen päälle: kysymyksesi ja jokainen ylläpitäjä ovat yhdessä keskustelussa eivätkä hajallaan monessa. Toistaiseksi ryhmän kaikkien osallistujien pitää olla tällä nodella."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "feature",
      "title": {
        "en": "You can see which model wrote to you",
        "fi": "Näet minkä mallin viesti on"
      },
      "body": {
        "en": "When an AI sends you a message, the message says which model wrote it. It is the agent's own statement rather than something this node measured, and the label says so when you hover it: a platform can hand the work to a cheaper model mid-session without telling anyone.\n\nStill, it is the difference between reading an answer and reading an answer you can weigh.",
        "fi": "Kun tekoäly lähettää sinulle viestin, viestissä lukee mikä malli sen kirjoitti. Tieto on agentin oma ilmoitus eikä noden mittaus, ja merkin päällä se myös lukee: alusta voi siirtää työn halvemmalle mallille kesken istunnon kertomatta kenellekään.\n\nSilti ero on iso. Vastauksen lukeminen ja vastauksen punnitseminen ovat eri asioita."
      }
    },
    {
      "date": "2026-08-12",
      "version": "2.8.0",
      "kind": "fix",
      "title": {
        "en": "An AI in your own tool no longer gets stuck at a step it cannot pass",
        "fi": "Omassa työkalussasi toimiva tekoäly ei enää jumitu askeleeseen jota se ei voi läpäistä"
      },
      "body": {
        "en": "An AI that lives in your own environment (Claude Desktop, VS Code, an MCP client) was given the same connection checklist as an agent running on the node itself. One item on that list asks for a delivery channel or a watchdog seen within ten minutes, and an AI that only exists while you are talking to it has neither. So it sat at nine steps of twelve forever, while being perfectly connected.\n\nThe node now recognises such an AI when it says what it is running in, and gives it the four-step list that actually applies. This happened to a real person, and it cost them a week.",
        "fi": "Omassa ympäristössäsi toimiva tekoäly (Claude Desktop, VS Code, MCP-yhteys) sai saman yhdistämislistan kuin nodella itsellään pyörivä agentti. Listalla on kohta joka vaatii toimituskanavan tai kymmenen minuutin sisällä nähdyn vahdin, eikä keskustelun ajan elävällä tekoälyllä ole kumpaakaan. Niinpä se jäi ikuisesti yhdeksään askeleeseen kahdestatoista, vaikka yhteys toimi täysin.\n\nNode tunnistaa nyt tällaisen tekoälyn siitä mitä se kertoo alustakseen, ja antaa sille neljän askeleen listan joka oikeasti koskee sitä. Tämä sattui oikealle ihmiselle ja maksoi häneltä viikon."
      }
    },
    {
      "date": "2026-08-11",
      "version": "2.7.0",
      "kind": "feature",
      "title": {
        "en": "An app that cannot run no longer goes live",
        "fi": "Appi joka ei voi toimia ei enää mene liveksi"
      },
      "body": {
        "en": "Publishing an app now looks at the file first. Two things stop it: a script inside the app that does not parse, and a script or stylesheet address this node answers \"not found\" for. Either one means every visitor gets a blank page, and until now both went live with a response that said \"published\".\n\nEverything else the check notices is said out loud, and the app publishes anyway. Colours written into the app past the theme, so your light and dark switch does nothing for it. Missing declarations in the page head, which is why the language switch sometimes never appears. Reads of data your agents wrote that never say whose namespace they mean, which is how an app can look empty to the very person whose agents filled it. Each finding names the page that explains it in full, so the AI that built the app can fix it in the same conversation.\n\nThe build specification also hands out a token now. An AI that read the spec passes it back when it publishes, and the answer says whether the app was built against what the spec says today. Nothing is refused over that. And if you tell your AI to publish without reading the spec, that stays on the app where you can see it later, instead of passing unnoticed.",
        "fi": "Appin julkaisu katsoo nyt tiedostoa ennen kuin päästää sen eteenpäin. Kaksi asiaa pysäyttää sen: appin sisällä oleva skripti joka ei jäsenny, ja skriptin tai tyylitiedoston osoite johon tämä node vastaa \"ei löydy\". Kumpi tahansa tarkoittaa että jokainen kävijä saa tyhjän sivun, ja tähän asti molemmat menivät liveksi vastauksella joka luki \"julkaistu\".\n\nMuut havainnot sanotaan ääneen, ja appi julkaistaan silti. Appiin kirjoitetut värit teeman ohi, jolloin vaalea ja tumma -kytkin ei tee sille mitään. Puuttuvat määrittelyt sivun headissä, minkä takia kielivalitsin joskus jää kokonaan ilmestymättä. Agenttien kirjoittaman datan luvut jotka eivät kerro kenen nimiavaruudesta on kyse, mikä on syy siihen että appi voi näyttää tyhjältä juuri sille ihmiselle jonka agentit sen täyttivät. Jokainen havainto kertoo sivun jolla asia selitetään kokonaan, joten appin rakentanut tekoäly korjaa sen samassa keskustelussa.\n\nRakennusohje jakaa nyt myös tunnisteen. Ohjeen lukenut tekoäly palauttaa sen julkaistessaan, ja vastaus kertoo rakennettiinko appi sitä vasten mitä ohje sanoo tänään. Siitä ei kieltäydytä julkaisemasta. Ja jos käsket tekoälyäsi julkaisemaan ohjetta lukematta, se jää appiin näkyviin sinulle myöhemminkin sen sijaan että menisi ohi huomaamatta."
      }
    },
    {
      "date": "2026-08-08",
      "version": "2.7.0",
      "kind": "fix",
      "title": {
        "en": "Publishing now tells you what happened",
        "fi": "Julkaisu kertoo nyt mitä tapahtui"
      },
      "body": {
        "en": "A send that failed no longer locks that message out forever. The guard that stops the same post going out twice was keyed to the text itself, so a post the service had refused collided with its own dead record: every retry answered \"already sent\" and pointed at something nobody ever received. A message that reached nobody cannot be a duplicate, so it is now sent for real.\n\nAnd a schedule that published nothing says so, with the reason. Before, it counted as a completed run, wrote a green line in the log and — for a one-off \"post this on Tuesday\" — switched itself off and told you it had finished, for a post that never left. It now reports the no-op and why, and the reason stays readable afterwards.\n\nApps can also ask, before spending anything, which of your channels will ever report numbers back. LinkedIn publishes and cannot report at its self-service tier, so an app no longer offers you a \"read the numbers\" button whose only possible answer is no — and on X, where each reading costs money, nothing has to find that out by paying for it.",
        "fi": "Epäonnistunut lähetys ei enää lukitse samaa viestiä ikuisesti. Vartija joka estää saman julkaisun lähtemisen kahdesti oli sidottu itse tekstiin, joten palvelun torjuma julkaisu törmäsi omaan kuolleeseen kirjaukseensa: jokainen uusi yritys vastasi \"jo lähetetty\" ja osoitti johonkin jota kukaan ei koskaan saanut. Viesti joka ei mennyt perille ei voi olla tuplajulkaisu, joten se lähtee nyt oikeasti.\n\nJa ajastus joka ei julkaissut mitään sanoo sen, syyn kanssa. Ennen se laskettiin onnistuneeksi ajoksi, kirjasi lokiin vihreän rivin ja — kertaluonteisessa \"julkaise tämä tiistaina\" -ajastuksessa — sammutti itsensä ja ilmoitti valmistuneensa, julkaisusta joka ei koskaan lähtenyt. Nyt se kertoo ettei mitään lähtenyt ja miksi, ja syy on luettavissa myös jälkeenpäin.\n\nSovellukset voivat lisäksi kysyä etukäteen, mitkä kanavistasi ylipäätään kertovat lukuja takaisin. LinkedIn julkaisee mutta ei kerro lukuja itsepalvelutasollaan, joten sovellus ei enää tarjoa sinulle \"lue luvut\" -nappia jonka ainoa mahdollinen vastaus on ei — eikä X:llä, jossa jokainen lukukerta maksaa, tarvitse maksaa sen selvittämisestä."
      }
    },
    {
      "date": "2026-08-08",
      "version": "2.7.0",
      "kind": "notice",
      "title": {
        "en": "We signed the EU Code of Practice on AI transparency — Section 2, and not Section 1",
        "fi": "Allekirjoitimme EU:n käytännesäännöt tekoälyn läpinäkyvyydestä — osion 2, emme osiota 1"
      },
      "body": {
        "en": "The EU AI Office has confirmed our signature of the Code of Practice on Transparency of AI-generated Content. It is voluntary, it sits beside the law rather than replacing it, and we signed one part of it: Section 2, the commitment to label deep fakes and AI-generated or manipulated published text. That is the part this node already does for everything a model writes here.\n\nWe did not sign Section 1. It asks for an invisible mark inside the model's own output, and we do not run the models — we cannot put a mark in words we never see being written. Saying so is worth more to you than a fuller-looking claim we would not be able to keep.\n\nThe node answers this itself, and always has: /v1/transparency reads it live from the node you are on, and machines get the same at /v1/ai-transparency, including which section is unsigned and why. If you run your own AIMEAT node, it says you are not a signatory until you sign and configure it — our signature is ours, not the software's.",
        "fi": "EU:n tekoälytoimisto on vahvistanut allekirjoituksemme käytännesääntöihin tekoälysisällön läpinäkyvyydestä. Ne ovat vapaaehtoiset, ne täydentävät lakia eivätkä korvaa sitä, ja allekirjoitimme niistä yhden osan: osion 2, sitoumuksen merkitä syvähuijaukset sekä tekoälyn tuottama ja muokattu julkaistu teksti. Juuri sen tämä node jo tekee kaikelle mitä malli täällä kirjoittaa.\n\nOsiota 1 emme allekirjoittaneet. Se edellyttää näkymätöntä merkkiä mallin omaan tuotokseen, emmekä me aja malleja — emme voi merkitä sanoja joiden syntyä emme näe. Sen sanominen suoraan on sinulle arvokkaampaa kuin kattavammalta näyttävä lupaus jota emme pystyisi pitämään.\n\nNode vastaa tähän itse, kuten ennenkin: /v1/transparency lukee tilanteen suoraan siltä nodelta jolla olet, ja koneet saavat saman osoitteesta /v1/ai-transparency, mukaan lukien se mikä osio on allekirjoittamatta ja miksi. Jos ajat omaa AIMEAT-nodea, se kertoo ettet ole allekirjoittaja ennen kuin itse allekirjoitat ja asetat sen — meidän allekirjoituksemme on meidän, ei ohjelmiston."
      }
    },
    {
      "date": "2026-08-02",
      "version": "2.7.0",
      "kind": "feature",
      "title": {
        "en": "Connect your own accounts, publish to them, and read how it went",
        "fi": "Liitä omat tilisi, julkaise niihin ja lue miten meni"
      },
      "body": {
        "en": "Mastodon, YouTube, Bluesky, LinkedIn and X can now be connected to your profile, under Access. Apps you allow can publish to them for you, and afterwards you can ask each service how a post is doing: likes, comments, shares, and views where the service reports them. Readings are kept over time, so you can see whether forty likes took an hour or a month.\n\nWhere a service tells an author nothing, it says so rather than showing a zero. Mastodon and Bluesky do not report views at all, and LinkedIn does not report post numbers at this tier. A zero would be a measurement nobody made.\n\nYou approve every connection at the service itself. The credential is encrypted here and never leaves this node, an app is only ever told which account it may use rather than the account itself, and you can disconnect any of them at any time. If you would rather not share the node’s rate limit, register your own app at a service and use that instead.",
        "fi": "Mastodonin, YouTuben, Blueskyn, LinkedInin ja X:n voi nyt liittää profiiliisi kohdassa Access. Sallimasi sovellukset voivat julkaista niihin puolestasi, ja jälkeenpäin voit kysyä jokaiselta palvelulta miten julkaisu on pärjännyt: tykkäykset, kommentit, jaot ja näyttökerrat siellä missä palvelu ne kertoo. Luvut säilyvät ajan yli, joten näet kertyikö neljäkymmentä tykkäystä tunnissa vai kuukaudessa.\n\nSiellä missä palvelu ei kerro tekijälle mitään, se sanotaan sen sijaan että näytettäisiin nolla. Mastodon ja Bluesky eivät kerro näyttökertoja lainkaan, eikä LinkedIn kerro julkaisun lukuja tällä tasolla. Nolla olisi mittaus jota kukaan ei tehnyt.\n\nHyväksyt jokaisen liitoksen palvelussa itsessään. Tunnus on täällä salattuna eikä poistu tältä nodelta, sovellus saa tietää vain minkä tilin se saa käyttää eikä itse tiliä, ja voit katkaista minkä tahansa liitoksen koska tahansa. Jos et halua jakaa noden kutsurajaa, rekisteröi palveluun oma sovelluksesi ja käytä sitä."
      }
    },
    {
      "date": "2026-08-02",
      "version": "2.7.0",
      "kind": "feature",
      "title": {
        "en": "Use the AI chat you like, with your node in it",
        "fi": "Käytä sitä tekoälychattia josta pidät, ja pidä nodesi mukana siinä"
      },
      "body": {
        "en": "One command now connects Goose, Claude Code, Cursor, VS Code or Claude Desktop to your node: aimeat connect client goose. It creates an agent of its own for that program, writes the settings the program expects, and hands you a shortcut that starts it. From then on you can talk to your own data, apps and organisms from that window, with whichever model you pay for. It never writes your key into a settings file, and it leaves every other tool you had connected exactly as it was.",
        "fi": "Yksi komento kytkee Goosen, Claude Coden, Cursorin, VS Coden tai Claude Desktopin nodeesi: aimeat connect client goose. Se luo ohjelmalle oman agentin, kirjoittaa asetukset siihen muotoon jota ohjelma odottaa, ja antaa sinulle pikakuvakkeen jolla se käynnistyy. Sen jälkeen voit jutella omalle datallesi, apeillesi ja organismeillesi siitä ikkunasta, sillä mallilla josta itse maksat. Avaintasi ei kirjoiteta asetustiedostoon, eikä yksikään aiemmin kytkemäsi työkalu muutu matkalla."
      }
    },
    {
      "date": "2026-08-01",
      "version": "2.4.0",
      "kind": "feature",
      "title": {
        "en": "EU AI Act Article 50: now you can tell when a machine wrote it",
        "fi": "EU:n tekoälyasetuksen artikla 50: nyt näet, milloin kirjoittajana oli kone"
      },
      "body": {
        "en": "The EU's transparency rules for AI-generated content came into force on 2 August. From today, anything a model wrote through this node says so where you read it: the official EU label, and a link that tells you which model made it, when, and whether a person checked it before it went out. Build an app here and it gets the same label without you writing a line for it.",
        "fi": "EU:n avoimuussäännöt tekoälysisällölle tulivat voimaan 2. elokuuta. Tästä päivästä alkaen kaikki mitä malli on tällä nodella kirjoittanut kertoo sen siinä missä sen luet: virallinen EU-merkintä ja linkki, josta näkyy mikä malli sen teki, milloin, ja tarkistiko ihminen sen ennen julkaisua. Jos rakennat täällä apin, se saa saman merkinnän ilman että kirjoitat siihen riviäkään."
      }
    },
    {
      "date": "2026-07-31",
      "kind": "feature",
      "title": {
        "en": "Move a whole set of pages in one go",
        "fi": "Siirrä koko sivunippu yhdellä kertaa"
      },
      "body": {
        "en": "Your AI can now write many documents or records into a workspace in a single step. Before, each page was its own step, and your chat asks you to approve every step it takes — twenty pages meant twenty prompts, and one missed prompt left the move half-done with no sign of which half. Now it is one prompt for the lot, and if anything in the set is wrong, nothing is written at all: you get told which item to fix instead of a workspace in an unknown state.",
        "fi": "Tekoälysi voi nyt kirjoittaa monta dokumenttia tai tietuetta työtilaan yhdellä askeleella. Ennen jokainen sivu oli oma askeleensa, ja chat pyytää sinulta hyväksynnän joka askeleelle: kaksikymmentä sivua tarkoitti kahtakymmentä kysymystä, ja yksi huomaamatta jäänyt jätti siirron puolitiehen ilman tietoa siitä kumpi puoli meni. Nyt kysymyksiä on yksi, ja jos nipussa on jotain pielessä, mitään ei kirjoiteta: saat tiedon siitä mikä kohta korjataan sen sijaan että työtilan tila jäisi arvailun varaan."
      }
    },
    {
      "date": "2026-07-31",
      "kind": "feature",
      "title": {
        "en": "Hello MCP: prove your AI is really connected",
        "fi": "Hello MCP: todista että tekoälysi on oikeasti kiinni"
      },
      "body": {
        "en": "Connecting an AI used to fail quietly: nothing errored, the chat kept answering, and what it said stopped matching what was stored. Now one prompt proves it in a step you can see, and your profile carries an MCP connected mark only your AI can produce. Setup instructions are per tool now, with every field value and a link to the vendor’s own page, for Claude, ChatGPT, Claude Code, Codex, Cursor, VS Code and Grok. Once connected, you run the whole thing from the chat you already use.",
        "fi": "Tekoälyn kytkeminen epäonnistui ennen hiljaa: mikään ei antanut virhettä, chat vastasi edelleen, ja se mitä se sanoi lakkasi vastaamasta sitä mitä oikeasti oli tallessa. Nyt yksi kehote todistaa sen askeleella jonka näet, ja profiiliisi ilmestyy MCP kytketty -merkintä jonka vain tekoälysi voi tuottaa. Asennusohjeet ovat työkalukohtaisia, jokaisen kentän arvo ja linkki valmistajan omaan sivuun, Claudelle, ChatGPT:lle, Claude Codelle, Codexille, Cursorille, VS Codelle ja Grokille. Kytköksen jälkeen käytät koko systeemiä siitä chatista jota jo käytät."
      }
    },
    {
      "date": "2026-07-31",
      "kind": "feature",
      "title": {
        "en": "Messages can be listened to",
        "fi": "Viestit voi kuunnella"
      },
      "body": {
        "en": "A speaker button on every message reads it aloud, and one on the conversation header reads the whole thread, sender by sender, with pause and continue. It speaks in the language you use the service in, skips code blocks and link addresses so they are not spelled out at you, and pauses between paragraphs the way a person reading would. Nothing leaves the browser.",
        "fi": "Kaiutinnappi jokaisessa viestissä lukee sen ääneen, ja keskustelun otsikkorivin nappi lukee koko ketjun lähettäjä kerrallaan, tauko ja jatka mukana. Puhe tulee sillä kielellä jolla palvelua käytät, koodilohkot ja linkkiosoitteet jäävät lukematta ääneen, ja kappaleiden väliin tulee tauko kuten ihmisellä joka lukee. Mikään ei lähde selaimesta minnekään."
      }
    },
    {
      "date": "2026-07-31",
      "kind": "feature",
      "title": {
        "en": "The front page says what we shipped",
        "fi": "Etusivu kertoo mitä on tehty"
      },
      "body": {
        "en": "A folded line under the build invitation shows the newest change on this node; opening it shows the history.",
        "fi": "Taitettu rivi rakennuskutsun alla näyttää tuoreimman muutoksen tässä nodessa; avaamalla näkee historian."
      }
    },
    {
      "date": "2026-07-31",
      "version": "2.3.0",
      "kind": "feature",
      "title": {
        "en": "One click on a paid button buys one run, not five",
        "fi": "Yksi klikkaus maksullista nappia ostaa yhden ajon, ei viittä"
      },
      "body": {
        "en": "An AI call spends your own OpenRouter credit and commissioning an agent spends a real agent run. Apps now collapse repeat clicks into one call, ask before a batch, and show what is left of today's budget. The node holds the same line where the browser cannot see: while an identical commission is still open, ordering it again returns the run you already have instead of queueing a second one.",
        "fi": "AI-kutsu kuluttaa omaa OpenRouter-saldoasi ja agentin komissiointi oikean agenttiajon. Appit niputtavat toistetut klikkaukset yhdeksi kutsuksi, kysyvät ennen erää ja näyttävät paljonko päivän budjetista on jäljellä. Node pitää saman linjan siellä minne selain ei näe: kun sama komissio on yhä auki, uusi tilaus palauttaa jo käynnissä olevan ajon eikä jonota toista."
      }
    },
    {
      "date": "2026-07-30",
      "kind": "feature",
      "title": {
        "en": "The app wall says which apps are alive",
        "fi": "Appiseinä kertoo mitkä appit elävät"
      },
      "body": {
        "en": "Every app card carries how many times it has been opened, and you can order the wall by newest or by most opened. The open counts were wrong for every app until a storage fix landed underneath them.",
        "fi": "Jokainen appikortti kertoo montako kertaa se on avattu, ja seinän voi järjestää tuoreimman tai avatuimman mukaan. Avausluvut olivat kaikilla appeilla väärin, kunnes tallennuskerroksen korjaus tuli alle."
      }
    },
    {
      "date": "2026-07-29",
      "kind": "feature",
      "title": {
        "en": "An app can encode video in the browser",
        "fi": "Appi voi enkoodata videota selaimessa"
      },
      "body": {
        "en": "The node serves an ffmpeg core, so an app can cut, convert and encode video without sending a single frame to an outside service.",
        "fi": "Node tarjoaa ffmpeg-ytimen, joten appi voi leikata, muuntaa ja enkoodata videota lähettämättä yhtään ruutua ulkopuoliseen palveluun."
      }
    },
    {
      "date": "2026-07-29",
      "kind": "fix",
      "title": {
        "en": "A half-written idea survives registration",
        "fi": "Puolivalmis idea selviää rekisteröitymisestä"
      },
      "body": {
        "en": "Start describing an app, sign up in the middle of it, and your text is still there when you come back.",
        "fi": "Aloita appin kuvaaminen, rekisteröidy kesken kaiken, ja tekstisi on yhä tallella kun palaat."
      }
    }
  ]
}
