Commit Graph
43 Commits
Author SHA1 Message Date
beug.k@beugsiud.deandClaude Opus 5.5 c96eb33e58 feat(agent): configuration file and file-based agent state
Agent configuration (agent-<role>.yaml, strict decoding, role section
passed undecoded to the role factory) and the state directory of ADR
0011: identity with interrupted-renewal recovery, verified revisions
under revisions/<n>/, state.json with apply results, lease sequence and
queued deployment reports, atomic writes, pruning and a lock file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:05:16 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 e843502cbf feat: M3 contracts for agents, revisions and bundles
Shared Apache-2.0 packages for the signed bundle format and the agent
certificate conventions, the agent role interface, REST API spec for
agents, enrollment tokens, revisions, deployments and leases, and ADR
0021. Generator settings now hold the target paths on the managed hosts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:54:30 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 44de779fbf docs: mark milestone M2 as complete, update project log
ci / Shell and licence headers (push) Successful in 6s
release / release (push) Successful in 1m53s
ci / Go (lint, test, vuln) (push) Successful in 3m36s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 56s
ci / Release build (dry run) (push) Failing after 1m55s
ci / Integration (real BIND and Kea) (push) Successful in 43s
ci / Development environment (compose) (push) Successful in 13s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.3.0
2026-10-13 14:36:57 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 279bb92c74 test(integration): pull images first and keep docker stderr apart
ci / Go (lint, test, vuln) (push) Successful in 3m43s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 57s
ci / Shell and licence headers (push) Successful in 7s
ci / Release build (dry run) (push) Successful in 1m58s
ci / Integration (real BIND and Kea) (push) Successful in 41s
ci / Development environment (compose) (push) Successful in 14s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:28:17 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 b94b6c8dae test(api): reset preview before decoding the second response
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:24:08 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 0a74d4b3ba feat: generator settings and configuration preview (API and UI)
ci / Go (lint, test, vuln) (push) Failing after 3m31s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 57s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m59s
ci / Integration (real BIND and Kea) (push) Failing after 43s
ci / Development environment (compose) (push) Successful in 13s
- stable Kea subnet IDs per network (migration 00002)
- generator settings (SOA, name servers, TTLs, recursion, DHCP defaults)
- GET /config/preview renders the configuration for the current data
- UI: configuration preview page and DNS/DHCP settings page

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:19:26 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 3564686db0 feat(configgen): BIND and Kea configuration generator with integration tests
- configgen: input model shared by derivation and renderers
- derive: forward zones per domain, reverse zones (IPv4 octet, IPv6 nibble
  boundaries), A/AAAA/PTR from static and manual_dhcp entries, Kea subnets
  with effective pools and reservations; pure and deterministic
- bindgen: zone-statement include, options include, zone files with strict
  validation, canonical ordering and RFC 1035 TXT escaping
- keagen: typed Kea DHCPv4 JSON with strict validation
- golden-file, validation, determinism and fuzz tests
- integration tests check generated files with real named-checkconf,
  named-checkzone (BIND 9.18, 9.20) and kea-dhcp4 -t (Kea 2.6, 3.2);
  new CI job

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:19:25 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 e91d1d63c0 docs: add project log (handover notes) and CLAUDE.md pointer
ci / Go (lint, test, vuln) (push) Successful in 3m27s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 53s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m53s
ci / Development environment (compose) (push) Successful in 15s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:56:38 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 a670256be6 docs: mark milestone M1 as complete
ci / Protobuf (push) Canceled after 0s
ci / Web (lint, test, audit, build) (push) Canceled after 0s
ci / Shell and licence headers (push) Canceled after 0s
ci / Release build (dry run) (push) Canceled after 0s
ci / Development environment (compose) (push) Canceled after 0s
ci / Go (lint, test, vuln) (push) Canceled after 2m22s
release / release (push) Successful in 1m51s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.2.0
2026-10-12 21:54:20 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 c88321f297 ci: smoke-test the released server binary with the embedded UI
ci / Protobuf (push) Successful in 6s
ci / Development environment (compose) (push) Successful in 14s
ci / Go (lint, test, vuln) (push) Successful in 3m26s
ci / Web (lint, test, audit, build) (push) Successful in 55s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m58s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:41:49 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 4717ae5cb1 docs: API overview, architecture and README updated for M1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:41:12 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 79c1b0bba8 test(api): OIDC login flow against a fake identity provider; dev run targets
ci / Go (lint, test, vuln) (push) Successful in 3m30s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 54s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m48s
ci / Development environment (compose) (push) Successful in 15s
- end-to-end OIDC test: discovery, PKCE (S256) verified by the IdP, nonce,
  state cookie, ID token signature, user creation, role sync, refused
  login without role, forged state
- make run-server / dev-admin with deploy/config/server.dev.yaml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:39:30 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 42aee163f3 feat(tools): keygen-setup script and licensing guide
Creates the product and the standard policy in Keygen (one server per
license, license-key activation, daily heartbeat), issues licenses with
limits in metadata and writes offline license files. The admin token is
only read from the environment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:36:16 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 63d6dac0f5 feat(web): management UI for M1
ci / Go (lint, test, vuln) (push) Successful in 3m27s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 54s
ci / Shell and licence headers (push) Successful in 6s
ci / Development environment (compose) (push) Canceled after 0s
ci / Release build (dry run) (push) Canceled after 33s
- login with TOTP step and SSO button, forced password change, account
  page with password change and TOTP setup (QR code)
- layout with permission-based navigation, license banner, theme/language
- networks: list with utilization, create/edit with pool editor, detail
  page with address map
- addresses: server-side filtered/sorted, virtualized table, inline type
  switch with DNS/DHCP preview, bulk actions, saved filters, CSV import
  (dry run first) and export
- license, users, audit log and OIDC settings pages
- typed API client from the OpenAPI spec; errors translated by code
- German default, English second language

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:34:45 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 eb511e0a85 fix(server): issues found by the API contract tests
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m43s
ci / Go (lint, test, vuln) (push) Successful in 3m25s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Development environment (compose) (push) Successful in 14s
- route the UI as "/" (GET/HEAD only) to avoid a ServeMux conflict with /api/
- constraint violations carry their specific top-level code
- MAC search accepts '-' and '.' separators
- CSV import reports syntax and validation problems in one pass
- license write lock is evaluated against the clock on every request
- enabling TOTP keeps the consumed time step (no replay of the setup code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:14:39 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 1aefed471c feat(server): wire database, licensing, API and metrics into ddi-server
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 5s
ci / Release build (dry run) (push) Successful in 1m43s
ci / Development environment (compose) (push) Canceled after 5s
ci / Go (lint, test, vuln) (push) Failing after 3m7s
ci / Protobuf (push) Successful in 6s
- commands: serve, migrate, bootstrap-admin, gen-master-key
- /metrics with route-pattern labels and license gauge, /readyz checks DB
- fix OpenAPI flow mappings with commas; generate TypeScript API types
  (openapi-typescript) and check them in CI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:08:59 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 1417e8f578 feat(api): add REST API with OpenAPI spec and contract tests
ci / Go (lint, test, vuln) (push) Failing after 2m34s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 5s
ci / Release build (dry run) (push) Successful in 1m15s
ci / Development environment (compose) (push) Successful in 14s
- one route table with access level, permission and write flag
- session cookie auth, MFA and forced password change gates, CSRF token
  plus Origin/Sec-Fetch-Site checks, license read-only lock
- RFC 9457 problem responses with stable codes and field problems
- OIDC authorization code flow with PKCE, state cookie and nonce
- contract tests: spec valid, routes == spec, every request/response in
  the API tests validated against the spec

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:58:08 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 f619881dc5 feat(service): add use cases for auth, users, IPAM, license, audit, CSV and OIDC
ci / Go (lint, test, vuln) (push) Successful in 2m40s
ci / Protobuf (push) Successful in 5s
ci / Release build (dry run) (push) Successful in 1m15s
ci / Development environment (compose) (push) Successful in 14s
ci / Web (lint, test, audit, build) (push) Successful in 33s
ci / Shell and licence headers (push) Successful in 6s
- every mutation writes its audit entry in the same transaction
- stable error codes; constraint violations mapped to field problems
- bulk changes and CSV import are all-or-nothing, using savepoints so that
  all problems are reported at once
- CSV export neutralizes spreadsheet formulas
- OIDC settings with encrypted client secret, role mapping from claims

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:47:47 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 b071d5fa1f fix(license): keep query string out of the request path
ci / Go (lint, test, vuln) (push) Failing after 2m20s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m14s
ci / Development environment (compose) (push) Successful in 14s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:42:12 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 3fee3fca70 feat(license): add Keygen provider, license files and license manager
ci / Go (lint, test, vuln) (push) Failing after 2m23s
ci / Protobuf (push) Successful in 5s
ci / Development environment (compose) (push) Canceled after 0s
ci / Release build (dry run) (push) Canceled after 1m6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 6s
- every Keygen response is verified: Ed25519 signature over request target,
  host, date and digest; body digest; date freshness; validation nonce
- machine activation by HMAC-based fingerprint, entitlements, heartbeats
- offline license files (base64+ed25519, aes-256-gcm+ed25519)
- pure state evaluation trial -> valid <-> grace -> read_only with one grace
  period for unreachable, suspended and expired licenses
- encrypted cache, periodic revalidation; account ID and public key are
  embedded at build time

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:37:54 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 56962a69f5 feat(store): add network, address, saved filter and license state repositories
ci / Go (lint, test, vuln) (push) Successful in 2m41s
ci / Protobuf (push) Successful in 7s
ci / Web (lint, test, audit, build) (push) Successful in 34s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m16s
ci / Development environment (compose) (push) Successful in 14s
Server-side filtering/sorting/pagination with whitelisted sort keys, usage
aggregation in SQL, optimistic locking, FQDN maintenance on domain change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:29:20 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 975401ee69 feat(server): add auth primitives, user/session/audit repositories and IPAM domain
ci / Go (lint, test, vuln) (push) Successful in 2m40s
ci / Protobuf (push) Successful in 5s
ci / Web (lint, test, audit, build) (push) Successful in 34s
ci / Shell and licence headers (push) Successful in 6s
ci / Development environment (compose) (push) Canceled after 0s
ci / Release build (dry run) (push) Canceled after 35s
- auth: Argon2id (PHC, rehash detection), TOTP (RFC 6238 vectors, replay
  protection), session tokens, keyed rate limiter, role permissions
- store: users, sessions (hashed tokens), audit log with keyset pagination
- ipam: network/pool/address validation, effective pools split around
  static/reserved/manual_dhcp, utilization, address map, change preview

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:25:20 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 14bd32dc5d feat(server): add config file support, secret encryption and database layer
ci / Go (lint, test, vuln) (push) Successful in 2m34s
ci / Protobuf (push) Successful in 5s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 5s
ci / Release build (dry run) (push) Successful in 1m14s
ci / Development environment (compose) (push) Successful in 14s
- config: YAML file plus environment overrides, day durations, validation
- secrets: AES-256-GCM keyring with key IDs, AAD binding and rotation
- store: pgx pool, embedded goose migrations with downgrade protection,
  initial schema with overlap/containment/uniqueness constraints
- storetest: per-test schemas; CI runs them against a PostgreSQL service

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:17:05 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 eb1fa0b2e4 docs(adr): record verified Keygen CE facts, contract tests and auth design
- 0016: verified edition, signature scheme and feature set; build-time
  account/public key, nonce, fingerprint, grace semantics, license files
- 0019: OpenAPI contract tests instead of generated server stubs
- 0020: Argon2id, TOTP, OIDC with PKCE, sessions, CSRF, rate limits, RBAC

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:10:06 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 a8e432e635 docs(adr): record verified release download path in ADR 0003
ci / Go (lint, test, vuln) (push) Successful in 2m5s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m13s
ci / Development environment (compose) (push) Successful in 14s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:59:52 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 eecd314d11 docs: mark milestone M0 as complete
ci / Web (lint, test, audit, build) (push) Successful in 31s
ci / Go (lint, test, vuln) (push) Successful in 1m57s
ci / Protobuf (push) Successful in 5s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m12s
ci / Development environment (compose) (push) Successful in 14s
release / release (push) Successful in 1m14s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.1.0
2026-10-12 19:53:21 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 d763df7f24 fix(dev): commit dev.test zone file hidden by a *.test ignore rule
ci / Go (lint, test, vuln) (push) Successful in 1m59s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m12s
ci / Development environment (compose) (push) Successful in 13s
The pattern meant for Go test binaries also matched db.dev.test, so BIND in
CI started without the forward zone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:48:34 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 acd3d23f82 fix(dev): drop fixed compose subnet and host port assumptions
ci / Go (lint, test, vuln) (push) Successful in 2m0s
ci / Protobuf (push) Successful in 5s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m12s
ci / Development environment (compose) (push) Failing after 1m48s
The fixed 172.30.53.0/24 subnet collided with an existing network on the
CI runner's Docker host. Seed data now uses 192.0.2.0/24 (RFC 5737), served
by Kea via relay; host ports are configurable and random in CI, and each
CI run uses its own compose project.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:41:56 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 7819158009 fix(web): show build notice instead of 404 when index.html is missing
ci / Go (lint, test, vuln) (push) Successful in 1m58s
ci / Development environment (compose) (push) Failing after 14s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 32s
ci / Shell and licence headers (push) Successful in 6s
ci / Release build (dry run) (push) Successful in 1m12s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:35:37 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 7b54a360ee docs: add README with development workflow and CI runner notes
ci / Go (lint, test, vuln) (push) Failing after 1m45s
ci / Protobuf (push) Successful in 6s
ci / Web (lint, test, audit, build) (push) Successful in 33s
ci / Shell and licence headers (push) Successful in 5s
ci / Development environment (compose) (push) Canceled after 0s
ci / Release build (dry run) (push) Canceled after 9s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:22:41 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 2923ced7e9 build: exclude web/node_modules from Go package patterns
An npm dependency ships Go sources, which ./... picked up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:22:41 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 5603fb72ec ci: add Gitea Actions workflows for checks and tagged releases
Pinned actions by commit SHA, checksum-verified tool installation,
release upload via the Gitea API (idempotent, dry-run capable).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:18:51 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 b2b9d56f19 build(dev): bake seed configs into images instead of bind mounts
Bind mounts break when the Docker daemon does not share the job's
filesystem, as with containerised CI runners.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:18:36 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 a163b1a503 build(dev): add compose environment with PostgreSQL, BIND 9.20 and Kea 3.2
BIND uses the production layout (single include under ddi-suite/).
Smoke test checks queries, zone validity, refused recursion and Kea config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:15:39 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 cefeac41f8 build: add Makefile and reproducible release build script
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:13:17 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 14f26a7b30 feat(web): scaffold React/TypeScript/Vite frontend
German default with English as second language (i18next), light/dark/system
theme, server health indicator. ESLint (strict type-checked), Prettier,
Vitest. Product name injected at build time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:09:29 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 137ebfc8d4 build: add golangci-lint config with licence boundary and SPDX header check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:09:28 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 850858642b feat(proto): define agent service v1 and generate Go code with buf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:59:12 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 14dde4bfe4 feat: add server, agent and shared code foundation
- internal/brand: central product, binary and path names (ldflags-overridable)
- internal/buildinfo, internal/logging (slog, secret redaction)
- server: env config, HTTP server with /healthz, /readyz, request IDs,
  access log, panic recovery, security headers, graceful shutdown
- web: embedded SPA handler with fallback page when UI is not built
- agent: ddi-agent-dns and ddi-agent-dhcp binaries on a shared core CLI

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:59:11 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 45b087e30c chore(license): add license overview, Apache-2.0 and proprietary placeholder
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:48:24 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 1d01eba65d docs: add project brief, architecture overview and ADRs 0001-0018
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:48:06 +02:00
beug.k@beugsiud.deandClaude Opus 5.5 1c6f73709e chore: add gitignore, gitattributes and editorconfig
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:48:00 +02:00
beug.k 013b0f257f README.md hinzugefügt 2026-10-12 16:24:54 +00:00