Epic: restructure repo — flatten web/ to root, drop decompiled/ from git #26

Closed
opened 2026-10-14 16:06:14 +02:00 by EduarD3V · 16 comments
Owner

Goal

Repo UX pass before feature work: web/ content moves to repo root; decompiled/ + decompiled-configurador/ (~180MB text) leave git history HEAD (keep accessible: git tag reference/decompile-1.9 or LFS). Update AGENTS.md, Containerfile, .dockerignore, CI paths, docs.

A draft branch chore/restructure-flat-repo exists locally (operator checkout) as starting point — do not blindly merge; review, rebase on main, run gates (pnpm test, build, Container build).

Also removes bullet.yaml gates referencing decompiled/ (stale once trees drop).

Acceptance:

  • SvelteKit at repo root, bun install && bun run test && bun run build from root
  • decompiled/ untracked (tag or LFS), AGENTS.md + bullet.yaml gates updated
  • Containerfile builds from root context
  • README reflects new layout

Epic: holds sub-PRs; split if >2 files conflict with feature work below.

## Goal Repo UX pass before feature work: `web/` content moves to repo root; `decompiled/` + `decompiled-configurador/` (~180MB text) leave git history HEAD (keep accessible: git tag `reference/decompile-1.9` or LFS). Update AGENTS.md, Containerfile, .dockerignore, CI paths, docs. A draft branch `chore/restructure-flat-repo` exists locally (operator checkout) as starting point — do not blindly merge; review, rebase on main, run gates (`pnpm test`, build, Container build). Also removes bullet.yaml gates referencing decompiled/ (stale once trees drop). Acceptance: - SvelteKit at repo root, `bun install && bun run test && bun run build` from root - decompiled/ untracked (tag or LFS), AGENTS.md + bullet.yaml gates updated - Containerfile builds from root context - README reflects new layout Epic: holds sub-PRs; split if >2 files conflict with feature work below.
Author
Owner

bullet: coder launched on branch issue/26-epic-restructure-repo-flatten- (model nan/deepseek-v4-flash).

bullet: coder launched on branch `issue/26-epic-restructure-repo-flatten-` (model `nan/deepseek-v4-flash`).
Author
Owner

Claimed — branch issue/26-epic-restructure-repo-flatten-. Doing: flatten web/ to the repo root, untrack the decompiled* trees (tag reference/decompile-1.9), update AGENTS.md/README/Containerfile/CI paths + bullet.yaml gates.

Claimed — branch `issue/26-epic-restructure-repo-flatten-`. Doing: flatten `web/` to the repo root, untrack the `decompiled*` trees (tag `reference/decompile-1.9`), update AGENTS.md/README/Containerfile/CI paths + bullet.yaml gates.
Author
Owner

Issue #26 — restructure repo: flatten web/ to root, drop decompiled/ from git

Restated goal

Repo-UX pass before feature work. web/ (the SvelteKit app, 97 tracked files) moves to the repo
root, so bun install && bun run test && bun run build run from the root and the Containerfile
builds with the root as context. The ~180 MB jadx reference trees decompiled/ (11,487 files) and
decompiled-configurador/ (4,811 files) leave the tracked tree; they stay reachable through the
local tag reference/decompile-1.9 and are kept on disk as untracked, gitignored reference.
AGENTS.md, README.md, docs/, Containerfile, .dockerignore, .gitignore and the
bullet.yaml gates stop referring to web/ and to the now-untracked trees.

Done means: on this branch, from the repo root: install + test + build pass, the container
image builds from the root context, git ls-files decompiled decompiled-configurador is empty
while git rev-parse reference/decompile-1.9 resolves to the pre-removal commit, and no tracked
file still describes the old layout.

Scope

Starting point: operator's draft branch chore/restructure-flat-repo (2 commits on top of
f7dbab8, which is also this branch's base — so no rebase is needed, a cherry-pick applies
cleanly). Reviewed, not merged blindly: the draft's AGENTS.md edit drops the original/ line
from the Layout block, which contradicts hard rule 1; that is fixed here.

Touched

Path Change
web/* → * (97 files) move to root (git mv semantics)
decompiled/, decompiled-configurador/ git rm -r --cached; files kept on disk, gitignored
.gitignore ignore the two trees, .svelte-kit/, build/ (no web/ prefix)
.dockerignore drop the (now untracked) trees, .svelte-kit, build at root
Containerfile root build context: COPY package.json pnpm-lock.yaml, COPY . /, COPY Caddyfile
README.md was web/README.md: retitle, fix commands/paths for the root layout
AGENTS.md new layout, "reverse-engineering phase closed", upstream repo as reference
docs/architecture.md citations point at upstream source instead of decompiled/
docs/REVERSING-NOTES.md note that the jadx trees left the tree, tag to recover them
docs/check-architecture-doc.py explicit, loud degradation of rules A/B when the tree is absent
test/fixtures/{README.md,generate.sh,verify-fixtures.sh} path text web/test/... → test/...
src/lib/pades.test.ts, src/lib/{batch,ooxml}.ts path comments only
.bullet/bullet.yaml remove the two stale decompiled/ gates (issue asks for this)

Not touched

  • Content of decompiled/, decompiled-configurador/ (read-only reference; untracked only).
  • Any src/lib/*.ts logic — the two edits there are comments.
  • original/, extracted/, work/ (gitignored inputs/scratch).
  • Test expectations, fixtures, crypto code — no behavioural change in this issue.
  • The operator's live checkout, main, bullet-develop.

Ordered tasks

Each task ends in a commit; the command is its verification.

  1. Claim + plan — post claim, write this file, post it verbatim.
  2. Flatten — cherry-pick 38d708b (-n) as one commit "flatten repo"; restore the two trees to
    the working tree from the pre-removal commit (untracked), create tag reference/decompile-1.9
    on f7dbab8.
    • verify: git ls-files decompiled decompiled-configurador | wc -l → 0 and
      ls decompiled/sources | head non-empty and git rev-parse reference/decompile-1.9 resolves.
  3. Config + gates — apply the review-corrected version of 8764507
    (.gitignore, .dockerignore, Containerfile) plus the .bullet/bullet.yaml gate removal.
    • verify: pnpm install --frozen-lockfile && pnpm test && pnpm build from the root; then the
      literal acceptance command bun install && bun run test && bun run build.
  4. Docs — README.md, AGENTS.md, docs/architecture.md, docs/REVERSING-NOTES.md,
    docs/check-architecture-doc.py, src/lib/* comment paths, test/fixtures/* path text.
    • verify: python3 docs/check-architecture-doc.py (rule C always; A/B when tree present) and
      grep -rn 'web/' --exclude-dir=.git --exclude-dir=decompiled* . returns only intended hits.
  5. Container — podman build -f Containerfile -t autofirme-web:issue26 . from the root.
    • verify: exit 0 + podman run --rm autofirme-web:issue26 sh -c 'ls /srv | head' shows the
      static build.
  6. Gates + report — gates from bullet.yaml after the edit (empty list → git diff --check
    plus the historical pair kept honest in the report), write issue-26.report.md, post comments.

Open questions (assumed, not asked)

  • bun vs pnpm. Acceptance says bun install && bun run test && bun run build; the repo,
    lockfile and Containerfile use pnpm. Assumption: the acceptance line means "install/test/build
    from the root with the declared manager"; pnpm stays canonical (Containerfile + lockfile), and
    the literal bun command is run as a check and reported, without switching lockfiles (a second
    lockfile would be a second source of truth).
  • How to "keep accessible". Issue offers tag or LFS. Assumption: annotated tag
    reference/decompile-1.9 pointed at the pre-removal commit, created locally; the trees stay on
    disk untracked so the existing gate text and the doc checker still work in this worktree. Push of
    the tag is the orchestrator's call (this agent must not push).
  • docs/check-architecture-doc.py. It resolves Foo.java:N citations against decompiled/.
    Assumption: keep the checker, and when the tree is absent print an explicit SKIP for rules A/B
    (still exit 0 for rule C) instead of failing on a fresh clone. Deleting it would drop a real
    invariant.
  • Deleting the staged trees from disk. Assumption: keep them on disk (untracked). Acceptance
    says "untracked", and dropping 115 MB of reference from every worktree is not required.

Risk

  • Precedent: 97-file rename + a 1.8 M-line deletion makes a big diff; review noise is expected
    and unavoidable for this issue.
  • Test env: pnpm test shells out to openssl/xmlsec1/unzip (all present here); on a machine
    without them the suite fails for environment reasons, not for this change — reported, not patched.
  • Doc checker: if the degradation edit is wrong, python3 docs/check-architecture-doc.py is red →
    boring fallback: leave the checker byte-identical and note that it needs the tag checked out.
  • Container: if the registry is unreachable, the image build fails for network reasons → report
    as PARTIAL with the local gates green and the exact failing command.
  • Rabbit hole cap: two failed attempts on the same problem → boring path, note it, continue.
# Issue #26 — restructure repo: flatten `web/` to root, drop `decompiled/` from git ## Restated goal Repo-UX pass before feature work. `web/` (the SvelteKit app, 97 tracked files) moves to the repo root, so `bun install && bun run test && bun run build` run from the root and the Containerfile builds with the root as context. The ~180 MB jadx reference trees `decompiled/` (11,487 files) and `decompiled-configurador/` (4,811 files) leave the tracked tree; they stay reachable through the local tag `reference/decompile-1.9` and are kept on disk as untracked, gitignored reference. `AGENTS.md`, `README.md`, `docs/`, `Containerfile`, `.dockerignore`, `.gitignore` and the `bullet.yaml` gates stop referring to `web/` and to the now-untracked trees. **Done means:** on this branch, from the repo root: install + `test` + `build` pass, the container image builds from the root context, `git ls-files decompiled decompiled-configurador` is empty while `git rev-parse reference/decompile-1.9` resolves to the pre-removal commit, and no tracked file still describes the old layout. ## Scope Starting point: operator's draft branch `chore/restructure-flat-repo` (2 commits on top of `f7dbab8`, which is also this branch's base — so no rebase is needed, a cherry-pick applies cleanly). Reviewed, not merged blindly: the draft's `AGENTS.md` edit drops the `original/` line from the Layout block, which contradicts hard rule 1; that is fixed here. ### Touched | Path | Change | |---|---| | `web/*` → `*` (97 files) | move to root (`git mv` semantics) | | `decompiled/`, `decompiled-configurador/` | `git rm -r --cached`; files kept on disk, gitignored | | `.gitignore` | ignore the two trees, `.svelte-kit/`, `build/` (no `web/` prefix) | | `.dockerignore` | drop the (now untracked) trees, `.svelte-kit`, `build` at root | | `Containerfile` | root build context: `COPY package.json pnpm-lock.yaml`, `COPY . /`, `COPY Caddyfile` | | `README.md` | was `web/README.md`: retitle, fix commands/paths for the root layout | | `AGENTS.md` | new layout, "reverse-engineering phase closed", upstream repo as reference | | `docs/architecture.md` | citations point at upstream source instead of `decompiled/` | | `docs/REVERSING-NOTES.md` | note that the jadx trees left the tree, tag to recover them | | `docs/check-architecture-doc.py` | explicit, loud degradation of rules A/B when the tree is absent | | `test/fixtures/{README.md,generate.sh,verify-fixtures.sh}` | path text `web/test/...` → `test/...` | | `src/lib/pades.test.ts`, `src/lib/{batch,ooxml}.ts` | path comments only | | `.bullet/bullet.yaml` | remove the two stale `decompiled/` gates (issue asks for this) | ### Not touched - Content of `decompiled/`, `decompiled-configurador/` (read-only reference; untracked only). - Any `src/lib/*.ts` logic — the two edits there are comments. - `original/`, `extracted/`, `work/` (gitignored inputs/scratch). - Test expectations, fixtures, crypto code — no behavioural change in this issue. - The operator's live checkout, `main`, `bullet-develop`. ## Ordered tasks Each task ends in a commit; the command is its verification. 1. **Claim + plan** — post claim, write this file, post it verbatim. 2. **Flatten** — cherry-pick `38d708b` (`-n`) as one commit "flatten repo"; restore the two trees to the working tree from the pre-removal commit (untracked), create tag `reference/decompile-1.9` on `f7dbab8`. - verify: `git ls-files decompiled decompiled-configurador | wc -l` → 0 and `ls decompiled/sources | head` non-empty and `git rev-parse reference/decompile-1.9` resolves. 3. **Config + gates** — apply the review-corrected version of `8764507` (`.gitignore`, `.dockerignore`, `Containerfile`) plus the `.bullet/bullet.yaml` gate removal. - verify: `pnpm install --frozen-lockfile && pnpm test && pnpm build` from the root; then the literal acceptance command `bun install && bun run test && bun run build`. 4. **Docs** — `README.md`, `AGENTS.md`, `docs/architecture.md`, `docs/REVERSING-NOTES.md`, `docs/check-architecture-doc.py`, `src/lib/*` comment paths, `test/fixtures/*` path text. - verify: `python3 docs/check-architecture-doc.py` (rule C always; A/B when tree present) and `grep -rn 'web/' --exclude-dir=.git --exclude-dir=decompiled* .` returns only intended hits. 5. **Container** — `podman build -f Containerfile -t autofirme-web:issue26 .` from the root. - verify: exit 0 + `podman run --rm autofirme-web:issue26 sh -c 'ls /srv | head'` shows the static build. 6. **Gates + report** — gates from `bullet.yaml` after the edit (empty list → `git diff --check` plus the historical pair kept honest in the report), write `issue-26.report.md`, post comments. ## Open questions (assumed, not asked) - **`bun` vs `pnpm`.** Acceptance says `bun install && bun run test && bun run build`; the repo, lockfile and Containerfile use pnpm. *Assumption:* the acceptance line means "install/test/build from the root with the declared manager"; pnpm stays canonical (Containerfile + lockfile), and the literal bun command is *run* as a check and reported, without switching lockfiles (a second lockfile would be a second source of truth). - **How to "keep accessible".** Issue offers tag or LFS. *Assumption:* annotated tag `reference/decompile-1.9` pointed at the pre-removal commit, created locally; the trees stay on disk untracked so the existing gate text and the doc checker still work in this worktree. Push of the tag is the orchestrator's call (this agent must not push). - **`docs/check-architecture-doc.py`.** It resolves `Foo.java:N` citations against `decompiled/`. *Assumption:* keep the checker, and when the tree is absent print an explicit SKIP for rules A/B (still exit 0 for rule C) instead of failing on a fresh clone. Deleting it would drop a real invariant. - **Deleting the staged trees from disk.** *Assumption:* keep them on disk (untracked). Acceptance says "untracked", and dropping 115 MB of reference from every worktree is not required. ## Risk - *Precedent:* 97-file rename + a 1.8 M-line deletion makes a big diff; review noise is expected and unavoidable for this issue. - *Test env:* `pnpm test` shells out to `openssl`/`xmlsec1`/`unzip` (all present here); on a machine without them the suite fails for environment reasons, not for this change — reported, not patched. - *Doc checker:* if the degradation edit is wrong, `python3 docs/check-architecture-doc.py` is red → boring fallback: leave the checker byte-identical and note that it needs the tag checked out. - *Container:* if the registry is unreachable, the image build fails for network reasons → report as PARTIAL with the local gates green and the exact failing command. - *Rabbit hole cap:* two failed attempts on the same problem → boring path, note it, continue.
Author
Owner

DONE — branch issue/26-epic-restructure-repo-flatten- (base main @ f7dbab8), worktree clean, nothing pushed.

Commits:

  • c2a981a chore: flatten repo — move web/ to repo root, untrack decompiled trees (Refs #26)
  • 68b3922 chore: root-context container + ignore untracked reference trees, drop stale gates (Refs #26)
  • 1f4d007 docs: retarget paths to the flat layout and the reference tag (Refs #26)

Tag reference/decompile-1.9 -> f7dbab8 (annotated, local: must be pushed by the orchestrator).

Gates:

  • test -d decompiled → exit 0 (trees restored on disk untracked); find decompiled -name '*.java' | grep -q . → exit 0
  • git diff --check main...HEAD → exit 0 (new gate list is empty, per this issue)
  • pnpm test (root) → 10 files / 96 tests passed; pnpm build → Wrote site to "build"
  • bun install && bun run test && bun run build (root, temp copy) → passed (10 files / 96 tests, build written)
  • python3 docs/check-architecture-doc.py → PASS 38 citations; with the tree moved away → SKIP rules A/B + PASS (rule C)
  • podman build -f Containerfile -t autofirme-web:issue26 . → exit 0; container smoke: / 200 + <title>AutoFirma Web</title>, /some/route 200 (SPA fallback), /favicon.svg 200

Diff: 16,403 files changed, 90+7 renames, 16,298 deletions (jadx trees), 8 modified files.

Review notes: the draft's Containerfile (COPY . / + /build) would not have built — fixed and verified; draft dropped the decompiled lines from .dockerignore (115 MB build context) — kept ignored; draft dropped original/ from AGENTS.md Layout — kept; docs/check-architecture-doc.py now degrades loudly instead of failing on a fresh clone. Full report in bullet meta/issue-26.report.md.

DONE — branch `issue/26-epic-restructure-repo-flatten-` (base `main` @ `f7dbab8`), worktree clean, nothing pushed. Commits: - `c2a981a` chore: flatten repo — move web/ to repo root, untrack decompiled trees (Refs #26) - `68b3922` chore: root-context container + ignore untracked reference trees, drop stale gates (Refs #26) - `1f4d007` docs: retarget paths to the flat layout and the reference tag (Refs #26) Tag `reference/decompile-1.9` -> `f7dbab8` (annotated, local: must be pushed by the orchestrator). Gates: - `test -d decompiled` → exit 0 (trees restored on disk untracked); `find decompiled -name '*.java' | grep -q .` → exit 0 - `git diff --check main...HEAD` → exit 0 (new gate list is empty, per this issue) - `pnpm test` (root) → 10 files / 96 tests passed; `pnpm build` → `Wrote site to "build"` - `bun install && bun run test && bun run build` (root, temp copy) → passed (10 files / 96 tests, build written) - `python3 docs/check-architecture-doc.py` → PASS 38 citations; with the tree moved away → `SKIP rules A/B` + PASS (rule C) - `podman build -f Containerfile -t autofirme-web:issue26 .` → exit 0; container smoke: `/` 200 + `<title>AutoFirma Web</title>`, `/some/route` 200 (SPA fallback), `/favicon.svg` 200 Diff: 16,403 files changed, 90+7 renames, 16,298 deletions (jadx trees), 8 modified files. Review notes: the draft's `Containerfile` (`COPY . /` + `/build`) would not have built — fixed and verified; draft dropped the `decompiled` lines from `.dockerignore` (115 MB build context) — kept ignored; draft dropped `original/` from AGENTS.md Layout — kept; `docs/check-architecture-doc.py` now degrades loudly instead of failing on a fresh clone. Full report in `bullet meta/issue-26.report.md`.
Author
Owner

bullet: coder launched on branch issue/26-epic-restructure-repo-flatten- (model nan/deepseek-v4-flash).

bullet: coder launched on branch `issue/26-epic-restructure-repo-flatten-` (model `nan/deepseek-v4-flash`).
Author
Owner

bullet: implementation finished (DONE — branch issue/26-epic-restructure-repo-flatten- (base main @ f7dbab8), worktree clean, nothing pushed.) — moving to review.

bullet: implementation finished (DONE — branch `issue/26-epic-restructure-repo-flatten-` (base `main` @ `f7dbab8`), worktree clean, nothing pushed.) — moving to review.
Author
Owner

bullet: reviewer launched (model 9router/reviewer, independent of coder).

bullet: reviewer launched (model `9router/reviewer`, independent of coder).
Author
Owner

DONE — branch issue/26-epic-restructure-repo-flatten- (base main @ f7dbab8), worktree clean, nothing pushed. Round 2: re-verification only, no new commits.

Commits:

  • c2a981a chore: flatten repo — move web/ to repo root, untrack decompiled trees (Refs #26)
  • 68b3922 chore: root-context container + ignore untracked reference trees, drop stale gates (Refs #26)
  • 1f4d007 docs: retarget paths to the flat layout and the reference tag (Refs #26)

Gates (all re-run this session):

  • git diff --check main...HEAD — exit 0 (effective gate; bullet.yaml gates are [])
  • stale gate string test -d decompiled find decompiled -name '*.java' | grep -q . — exit 2, error: test: invalid test command (malformed since forever; its two real intents, run separately, are green: test -d decompiled 0, find decompiled -name '*.java' | grep -q . 0 → 16,298 files)
  • bun install && bun run test && bun run build (root) — exit 0, 96/96 tests, Wrote site to "build"
  • pnpm install --frozen-lockfile && pnpm test && pnpm build (root) — exit 0, 96/96
  • podman build --no-cache -f Containerfile — exit 0 in 42 s; smoke: / 200 html <title>AutoFirma Web</title>, /some/deep/route 200 SPA fallback
  • python3 docs/check-architecture-doc.py — exit 0 with tree present (38 citations) and with it absent (SKIP rules A/B, rule C still enforced)

Acceptance: git ls-files decompiled decompiled-configurador → 0; tag reference/decompile-1.9 → f7dbab8, already on origin (d2cdd2e), git ls-tree -r over it lists 11,487 + 4,811 .java; AGENTS.md + bullet.yaml updated; README rewritten for the root layout; no CI config exists in-tree. Details in /home/eduardez/workspace/AutoFirme/.bullet/meta/issue-26.report.md.

DONE — branch `issue/26-epic-restructure-repo-flatten-` (base `main` @ `f7dbab8`), worktree clean, nothing pushed. Round 2: re-verification only, no new commits. Commits: - `c2a981a` chore: flatten repo — move web/ to repo root, untrack decompiled trees (Refs #26) - `68b3922` chore: root-context container + ignore untracked reference trees, drop stale gates (Refs #26) - `1f4d007` docs: retarget paths to the flat layout and the reference tag (Refs #26) Gates (all re-run this session): - `git diff --check main...HEAD` — exit 0 (effective gate; `bullet.yaml` gates are `[]`) - stale gate string `test -d decompiled find decompiled -name '*.java' | grep -q .` — exit 2, `error: test: invalid test command` (malformed since forever; its two real intents, run separately, are green: `test -d decompiled` 0, `find decompiled -name '*.java' | grep -q .` 0 → 16,298 files) - `bun install && bun run test && bun run build` (root) — exit 0, 96/96 tests, `Wrote site to "build"` - `pnpm install --frozen-lockfile && pnpm test && pnpm build` (root) — exit 0, 96/96 - `podman build --no-cache -f Containerfile` — exit 0 in 42 s; smoke: `/` 200 html `<title>AutoFirma Web</title>`, `/some/deep/route` 200 SPA fallback - `python3 docs/check-architecture-doc.py` — exit 0 with tree present (`38 citations`) and with it absent (`SKIP rules A/B`, rule C still enforced) Acceptance: `git ls-files decompiled decompiled-configurador` → 0; tag `reference/decompile-1.9` → `f7dbab8`, already on origin (`d2cdd2e`), `git ls-tree -r` over it lists 11,487 + 4,811 `.java`; AGENTS.md + bullet.yaml updated; README rewritten for the root layout; no CI config exists in-tree. Details in `/home/eduardez/workspace/AutoFirme/.bullet/meta/issue-26.report.md`.
Author
Owner

REVIEW: CLEAN — commit 1f4d007: findings none — 97 renames web/*→root, trees untracked + tag reference/decompile-1.9 peels to f7dbab8, pnpm+bun test/build 96/96, container builds from root, docs/AGENTS/bullet.yaml retargeted; no fix commits needed

REVIEW: CLEAN — commit 1f4d007: findings none — 97 renames web/*→root, trees untracked + tag reference/decompile-1.9 peels to f7dbab8, pnpm+bun test/build 96/96, container builds from root, docs/AGENTS/bullet.yaml retargeted; no fix commits needed
Author
Owner

bullet: review CLEAN — ready to publish.

bullet: review CLEAN — ready to publish.
Author
Owner

bullet: gates red on integration (test -d decompiled) — conflict-solver agent reconciles.

bullet: gates red on integration (`test -d decompiled`) — conflict-solver agent reconciles.
Author
Owner

bullet: merge conflicts with bullet-develop — conflict-solver agent owns the worktree until it pushes.

bullet: merge conflicts with `bullet-develop` — conflict-solver agent owns the worktree until it pushes.
Author
Owner

bullet: PR #31 open → bullet-develop (auto-merge follows).

bullet: PR #31 open → `bullet-develop` (auto-merge follows).
Author
Owner

bullet: PR #31 auto-merged into bullet-develop.

bullet: PR #31 auto-merged into `bullet-develop`.
Author
Owner

Claimed — branch issue/26-epic-restructure-repo-flatten-. Doing: merge into bullet-develop (recorded base c9257b7 is already an ancestor of the issue branch, so the merge is clean), then run gates + pnpm test/build from the new root.

Claimed — branch `issue/26-epic-restructure-repo-flatten-`. Doing: merge into bullet-develop (recorded base c9257b7 is already an ancestor of the issue branch, so the merge is clean), then run gates + pnpm test/build from the new root.
Author
Owner

bullet: merged into bullet-develop — integration gates green.

bullet: merged into `bullet-develop` — integration gates green.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
EduarD3V/AutoFirme#26
No description provided.