> v0.6.0 -> v0.7.0

## Summary

Rebrands the project as HakoRun and makes an embedded store the default, moving the previous store behind a build flag. Extends sandboxed execution to macOS and fixes resource caps that never took effect. Documentation is regenerated around the self-hosted FaaS positioning.

<details>
<summary>翻譯</summary>

專案更名為 HakoRun，預設改用內嵌儲存，原儲存後端改由建置旗標啟用。沙箱執行擴展至 macOS，並修正資源上限從未生效的問題。文件依自架 FaaS 定位重新產生。

</details>

## ⚠️ Breaking Changes

### Module path renamed to `github.com/pardnchiu/HakoRun`

**Before:**

```
module github.com/pardnchiu/go-faas
```

**After:**

```
module github.com/pardnchiu/HakoRun
```

**Migration:**

```bash
git remote set-url origin https://github.com/pardnchiu/HakoRun.git
git pull
```

<details>
<summary>翻譯</summary>

Go module 路徑改為 `github.com/pardnchiu/HakoRun`；既有 clone 需更新 remote。專案僅含 `main` 與 `internal` package，無外部 import 需修改。

</details>

### Default script store switched from Redis to ToriiDB

**Before:** every build connected to Redis via `REDIS_*` and stored scripts there.

**After:** the default build stores scripts in ToriiDB at `~/.config/pardnchiu/hakorun`; Redis is used only when built with `-tags redis`. Scripts already in Redis are not visible to the default build.

**Migration:**

```bash
# keep using existing Redis data
make build redis    # go build -tags redis -o bin/hako ./cmd/api

# or move to ToriiDB: re-upload each script with POST /upload on the default build
make build
```

<details>
<summary>翻譯</summary>

預設儲存由 Redis 改為 ToriiDB（`~/.config/pardnchiu/hakorun`），Redis 僅在 `-tags redis` 建置時使用；既有 Redis 中的腳本在預設建置下看不到。要沿用 Redis 資料請以 `make build redis` 建置，否則需在預設建置下重新上傳腳本。

</details>

### `package.json` removed; TypeScript dependencies installed manually

**Before:** `npm install` in the repo installed `esbuild`.

**After:** the repo has no `package.json`.

**Migration:**

```bash
npm install -g tsx typescript esbuild
npm install esbuild    # in the project root, resolved by the TypeScript wrapper
```

<details>
<summary>翻譯</summary>

移除 `package.json`，TypeScript 執行需求改為手動安裝：全域 `tsx`、`typescript`、`esbuild`，以及專案根目錄的本地 `esbuild`。

</details>

## Changes

### BREAKING

- Rename the Go module to `github.com/pardnchiu/HakoRun` and the build output to `bin/hako` (@pardnio) [81c18d6, 73d5f02]
- Switch the default script store to ToriiDB behind a shared backend interface; Redis via `-tags redis` (@pardnio) [81c18d6, 73d5f02]
- Remove `package.json`; TypeScript runtime dependencies are installed manually (@pardnio) [3b5ef44]

<details>
<summary>翻譯</summary>

- Go module 改名為 `github.com/pardnchiu/HakoRun`，建置產物改為 `bin/hako`
- 預設儲存改為 ToriiDB 並抽出共用 backend 介面；Redis 改由 `-tags redis` 啟用
- 移除 `package.json`，TypeScript 執行依賴改為手動安裝

</details>

### FEAT

- Add macOS support: sandbox scripts with a `sandbox-exec` seatbelt profile, with no-op dependency check and slice setup on darwin (@pardnio) [78cfbf7]

<details>
<summary>翻譯</summary>

- 新增 macOS 支援：以 `sandbox-exec` seatbelt profile 隔離腳本，darwin 上相依檢查與 slice 建立為 no-op

</details>

### FIX

- Name the systemd slice unit `hakorun.slice` so `MAX_CPUS` / `MAX_MEMORY` caps are actually loaded; the old `go-faas-slice` file lacked the `.slice` suffix and was ignored by systemd (@pardnio) [81c18d6, 78cfbf7]

<details>
<summary>翻譯</summary>

- systemd slice 單元改名為 `hakorun.slice`，讓 `MAX_CPUS`／`MAX_MEMORY` 上限確實生效；舊檔 `go-faas-slice` 缺 `.slice` 副檔名，systemd 不會載入

</details>

### ADD

- Add a `Makefile` with `build` / `run` / `test` targets and a `redis` switch (@pardnio) [81c18d6, 73d5f02]

<details>
<summary>翻譯</summary>

- 新增 `Makefile`，提供 `build`／`run`／`test` 目標與 `redis` 切換

</details>

### CHORE

- Require Go 1.25; add `github.com/pardnchiu/ToriiDB`, drop `github.com/joho/godotenv` (@pardnio) [73d5f02]
- Update `.gitignore` and remove `cover.png` (@pardnio) [73d5f02, 04d0a6b, 3b5ef44]

<details>
<summary>翻譯</summary>

- 要求 Go 1.25；新增 `github.com/pardnchiu/ToriiDB`，移除 `github.com/joho/godotenv`
- 更新 `.gitignore` 並移除 `cover.png`

</details>

## Scope

- `go.mod`, `go.sum` — BREAKING, CHORE
- `cmd/api/` — BREAKING
- `internal/database/` — BREAKING (`database.go`, `toriidb.go`, `redis.go`, `backend_toriidb.go`, `backend_redis.go`)
- `internal/sandbox/` — FEAT, FIX (multiple files)
- `internal/checker/` — FEAT (`checker.go`, `checker_darwin.go`)
- `internal/handler/`, `internal/router.go` — BREAKING
- `Makefile` — ADD
- `package.json`, `package-lock.json` — BREAKING
- `README.md`, `doc/` — DOC
- `.gitignore`, `.env.example`, `cover.png` — CHORE

---

Generated by [SKILL](https://github.com/pardnchiu/skill-version-generate)
