Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,11 @@ src/paprika.rs Paprika's export in that shape: a zip of one gzip per
recipe, its ingredients and directions split into lines
and Steps as written, its own photo before the website's.
Its test file is in tests/fixtures/paprika/ (#414)
src/tandoor.rs Tandoor's default export in that shape: a zip of one zip
per recipe, its lines written out from amount, unit,
food and note, and each named step's ingredients a
Section. Its test files are in tests/fixtures/tandoor/
(#415)
src/db.rs the SQLite file under /data — WAL on, migrations forward-only
src/entities.rs the HTML entities importers undo in text that was never HTML
src/jobs.rs slow work: two lanes (one for strangers, ADR 0032), progress, results
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
- The published agent image can be started as a fence, `/opt/kamosu-agent/fence`, whose network the agent's container shares. It lets the agent reach the internet and Kamosu's address, refuses the host, the LAN and every other private address, and keeps no root and no capability once its rules are set. [#372]
- Kamosu keeps a Security Record for 90 days, in Settings › Security record. Each person sees their own sign-ins and how each was made, wrong passwords at their name counted as one line per run, passkeys, password changes, Access Keys and Sessions ended. An Operator also sees the instance's: the House Notes and the public address changed, who was made an Operator or stood down, accounts disabled or deleted, Operator keys, Runner Keys, Backups fetched, and a crowd of sign-ins refused at once, each saying who did it through which Session or key. Agents read both with `list_security_record` and `list_instance_security_record`. Before, nothing recorded any of it. [#371]
- Each of those events is also one line on standard output, starting `kamosu-security`, in a fixed format a log watcher can match: `docs/security-record.md` describes it. It names Sessions and keys, never an address, a password or a Secret, and Kamosu sends it nowhere. [#371]
- Settings opens with *Import from another app*, a page of its own where the export file of the app you used before is dropped or picked, and Kamosu works out from what is inside it which app made it. It reads Mealie's recipe export, Paprika's and Crouton's, which moved here from This instance, and the page lists each app it reads and where that app keeps its export. From Mealie, a line that points at another recipe arrives as a Component of it, the other recipe arriving too where the export left it out, a picture placed in a step becomes that step's photo, and tools become an Equipment line in the note. From Paprika, each line of the ingredients arrives as an Ingredient Line and each line of the directions as a step, as written, the photo inside the file is kept, and a recipe whose only photo is a web address has it downloaded, the Report listing the address of any that could not be. A file it does not recognise, or an app's export in a shape Kamosu was not tested with, is turned away on the page with nothing imported, saying which apps it reads, where to ask for another, and the ways one recipe at a time comes in. The Import Report counts what stayed behind in the old app in a section of its own, so it can be checked before the app is deleted. Agents import the same way with `import_from_another_app`, and `import_crouton` works as before. [#412] [#413] [#414]
- Settings opens with *Import from another app*, a page of its own where the export file of the app you used before is dropped or picked, and Kamosu works out from what is inside it which app made it. It reads Mealie's recipe export, Paprika's, Tandoor's and Crouton's, which moved here from This instance, and the page lists each app it reads and where that app keeps its export. From Mealie, a line that points at another recipe arrives as a Component of it, the other recipe arriving too where the export left it out, a picture placed in a step becomes that step's photo, and tools become an Equipment line in the note. From Paprika, each line of the ingredients arrives as an Ingredient Line and each line of the directions as a step, as written, the photo inside the file is kept, and a recipe whose only photo is a web address has it downloaded, the Report listing the address of any that could not be. From Tandoor, which keeps no written line, each line is written out from its amount, unit, food and note as a cook writes it, the ingredients of every step come together in one list with each named step and each header row as a Section, a step's own time becomes the last line of its text, and nutrition beyond calories goes into the note. A file it does not recognise, or an app's export in a shape Kamosu was not tested with, is turned away on the page with nothing imported, saying which apps it reads, where to ask for another, and the ways one recipe at a time comes in. The Import Report counts what stayed behind in the old app in a section of its own, so it can be checked before the app is deleted. Agents import the same way with `import_from_another_app`, and `import_crouton` works as before. [#412] [#413] [#414] [#415]

### Changed

Expand Down Expand Up @@ -68,6 +68,7 @@
[#412]: https://github.com/BatterWorks/Kamosu/issues/412
[#413]: https://github.com/BatterWorks/Kamosu/issues/413
[#414]: https://github.com/BatterWorks/Kamosu/issues/414
[#415]: https://github.com/BatterWorks/Kamosu/issues/415
[#426]: https://github.com/BatterWorks/Kamosu/issues/426

## v0.3.0 - 2026-10-18
Expand Down
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ pub mod sheet;
pub mod shopping;
pub mod slow_work;
pub mod step_uses;
pub mod tandoor;
pub mod units;
pub mod web_door;
pub mod web_import;
Expand Down
1 change: 1 addition & 0 deletions src/other_apps.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ use serde_json::{Value, json};
pub static READERS: &[&dyn Reader] = &[
&crate::mealie::Mealie,
&crate::paprika::Paprika,
&crate::tandoor::Tandoor,
&crate::crouton::Crouton,
];

Expand Down
Loading
Loading