mirror of
https://github.com/cupcakearmy/cryptgeon.git
synced 2026-09-26 20:41:45 +00:00
Compare commits
6
Commits
b58bf8af6d
...
7ef162bd83
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ef162bd83 | ||
|
|
282fdb97d1 | ||
|
|
4dfed492bc | ||
|
|
5084ed59f0 | ||
|
|
055a48a38d | ||
|
|
d1126ace82 |
+2
-2
@@ -11,13 +11,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
- New shared TypeScript package `@cryptgeon/shared` as single source of truth for crypto, content codec and API client (crypto + compression + payload + types).
|
||||
- Shared payload codec: `packContent` / `unpackContent` (encode → LZ4 → XChaCha20-Poly1305 and reverse).
|
||||
- New `pg`-backend storage of note hashes in the cache.
|
||||
- Cache-backed note storage using hashes (valkey/redis) with atomic view counting.
|
||||
|
||||
### Changed
|
||||
|
||||
- Encryption from AES to **XChaCha20-Poly1305** (client-side); dropped `occulto`.
|
||||
- All API bodies switched to **MessagePack**.
|
||||
- Frontend migrated to SvelteKit + `@cryptgeon/shared`.
|
||||
- Frontend uses `@cryptgeon/shared` for crypto + payload codec (replacing the previous local `cryptgeon/shared`); heavy pack/unpack runs in a web worker.
|
||||
- CLI rebuilt with `vite-plus` (bundles all deps) and imports from `@cryptgeon/shared`.
|
||||
|
||||
### Breaking changes
|
||||
|
||||
@@ -169,6 +169,10 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
||||
|
||||
Please refer to the security section [here](./SECURITY.md).
|
||||
|
||||
## Usage of LLMs
|
||||
|
||||
Starting from V3, I used LLMs heavily to implement _my own ideas_. This means that the direction and architecture choices are human. A lot of the implementation that derives from that, is automated with an LLM.
|
||||
|
||||
---
|
||||
|
||||
_Attributions_
|
||||
|
||||
@@ -151,6 +151,10 @@ Ver [CONTRIBUTING.md](./CONTRIBUTING.md).
|
||||
|
||||
Por favor dirígete a la sección de seguridad [aquí](./SECURITY.md).
|
||||
|
||||
## Uso de LLMs
|
||||
|
||||
A partir de la V3, utilicé LLMs de forma intensiva para implementar _mis propias ideas_. Esto significa que la dirección y las decisiones de arquitectura son humanas. Gran parte de la implementación que deriva de eso está automatizada con un LLM.
|
||||
|
||||
---
|
||||
|
||||
_Atribuciones_
|
||||
|
||||
@@ -149,6 +149,10 @@ services:
|
||||
|
||||
参见 [CONTRIBUTING.md](./CONTRIBUTING.md)。
|
||||
|
||||
## LLM 的使用
|
||||
|
||||
从 V3 开始,我大量使用 LLM 来实现_我自己的想法_。这意味着项目的方向和架构选择均由人类决定。由此衍生的大部分实现由 LLM 自动完成。
|
||||
|
||||
###### Attributions
|
||||
|
||||
- 测试数据:
|
||||
|
||||
Generated
+1
-1
@@ -252,7 +252,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cryptgeon"
|
||||
version = "3.0.0-rc.3"
|
||||
version = "3.0.0-rc.4"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"bs62",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "cryptgeon"
|
||||
version = "3.0.0-rc.3"
|
||||
version = "3.0.0-rc.4"
|
||||
authors = ["cupcakearmy <hi@nicco.io>"]
|
||||
edition = "2024"
|
||||
rust-version = "1.95"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cryptgeon",
|
||||
"version": "3.0.0-rc.3",
|
||||
"version": "3.0.0-rc.4",
|
||||
"homepage": "https://github.com/cupcakearmy/cryptgeon",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -46,11 +46,11 @@ async function downloadFile(file: FileDTO) {
|
||||
files = note.contents
|
||||
}
|
||||
})
|
||||
let download = $derived(() => {
|
||||
function downloadAll() {
|
||||
for (const file of files) {
|
||||
downloadFile(file)
|
||||
}
|
||||
})
|
||||
}
|
||||
let links = $derived(typeof note.contents === 'string' ? note.contents.match(RE_URL) : [])
|
||||
</script>
|
||||
|
||||
@@ -92,7 +92,7 @@ async function downloadFile(file: FileDTO) {
|
||||
{/key}
|
||||
{/if}
|
||||
{/each}
|
||||
<Button onclick={download}>{$t('show.download_all')}</Button>
|
||||
<Button onclick={downloadAll}>{$t('show.download_all')}</Button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
|
||||
@@ -8,11 +8,7 @@ const contract: WorkerConract = {
|
||||
return transfer(content, [content.data.buffer, content.extra.buffer, content.key.buffer])
|
||||
},
|
||||
unpack(data, key) {
|
||||
const content = unpackContent(data, key)
|
||||
return transfer(
|
||||
content,
|
||||
typeof content.data === 'string' ? [] : content.data.map((f) => f.data.buffer)
|
||||
)
|
||||
return unpackContent(data, key)
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user