Files
dev-procfile/REFACTORING-TODO.md
T

48 KiB

Darano Refactoring Task Tracker

This is the authoritative execution tracker for the refactor. Work is performed sequentially, with no more than one task marked STARTED at a time.

Status rules

Status Meaning
TODO Ready or waiting on an earlier task.
STARTED The single task currently being executed.
DONE Implemented and verified against its acceptance checks.
FAILED Attempted but not completed; failure evidence and a follow-up task must be recorded.
CHANGED The task or scope changed after it was recorded; the reason must be retained.

Scope

ID Status Task Acceptance check / note
S001 DONE Read root AGENTS.md, REFACTORING-PLAN.md, and RTK instructions. Governing instructions incorporated into the tracker.
S002 CHANGED Refactor every repository originally listed in the plan. Scope changed: ui, docs, and DevOps are excluded; new GL is included by user request.
S003 CHANGED Define active repositories. Active scope changed to api, auth, wallet, AdminPanel, proto, and GL.
S004 DONE Create feat/refactor-v1 in every active repository. Branch exists and is checked out in all six active repositories.
S005 DONE Restore excluded repositories after the scope change. ui is on stage, docs is on dev, and DevOps is on m2; their temporary refactor branches were removed without changing their files.

Phase 0 — Baseline and safety

ID Status Task Acceptance check / note
B001 DONE Audit active repositories and reconcile plan claims with actual code. Findings recorded in REFACTORING-AUDIT.md, including corrected config and connection-lifecycle claims.
B002 DONE Record toolchain and dependency baselines. Versions and committed dependency sources recorded in REFACTORING-AUDIT.md; no upgrades performed.
B003 DONE Run proto baseline checks. Build/lint pass; existing format differences and missing generation plugins recorded; active tree and binary preserved.
B004 DONE Run auth baseline checks. Generation, tests, and build pass in a clean temporary clone; generated stubs are reproducible.
B005 DONE Run wallet baseline checks. Generation is reproducible; Redis lock test and build pass serially with no diff.
B006 DONE Run api baseline checks. Proto/Swagger outputs are reproducible; tests and full build pass with no diff.
B007 DONE Run AdminPanel baseline checks. System/compile/migration checks pass; zero-test Debug Toolbar failure and deploy warnings recorded.
B008 DONE Produce the baseline report and lock the first migration slice. Baseline and exact C001 compatibility-facade migration are documented in REFACTORING-AUDIT.md.

Phase 1 — Configuration standardization

ID Status Task Acceptance check / note
C001 DONE Refactor auth config loading into infrastructure/config. Koanf loader/facade tests, race tests, generation, full tests, and build pass; committed as 29b7e07.
C002 DONE Replace auth global config reads with constructor injection. No global/legacy reads remain; tests, race tests, generation, tidy, and build pass; committed as 1bd5559.
C003 DONE Refactor wallet config loading into infrastructure/config. Fig defaults and all five configs verified; tests/race/build pass; committed as 7958530.
C004 DONE Replace wallet global config reads with constructor injection. Config is injected through commands, services, repositories, use cases, adapters, cron, logger, and Stellar; the legacy facade is removed; full tests/race/vet/build pass; completed in the series ending at 4d192a6.
C005 DONE Move api config loading into infrastructure/config. Pure koanf/TOML loading and baked-in defaults are preserved under infrastructure/config; loader tests pass; completed in 44d56d3.
C006 DONE Replace api global config reads with constructor injection. Command, logger, middleware, handlers, services, Swagger, profiling, and clients receive explicit config; no legacy global reads/imports remain; tests/race/vet/build pass; completed in 44d56d3.

Priority workstream — General Ledger (GL)

ID Status Task Acceptance check / note
L001 DONE Define GL invariants, transaction mapping, failure semantics, and service boundary. GL/DESIGN.md defines the append-only double-entry model, mappings, outbox delivery, controlled failover modes, and gRPC ownership; committed as 1863de1.
L002 DONE Add backward-compatible internal GL protobuf contracts. Added isolated ledger.v1 append, event, query, balance, health, and replay contracts; Buf format/lint/build pass; committed as b4bb506.
L003 DONE Scaffold GL as an independent Go gRPC service. Added generated consumers, explicit composition, pure koanf config, health RPC, bounded graceful shutdown, and tests; generation/test/race/vet/build pass; committed as b1e0b01.
L004 DONE Implement GL PostgreSQL persistence and migrations. Exact fixed-point domain values, transactional idempotent append, per-asset seal checks, immutable tables/triggers, migrations, and repository tests pass; committed as 0b3eaa0.
L005 DONE Implement GL application use cases and gRPC adapters. Append/event/query/balance/replay RPCs, canonical hashes, exact reversals, status mapping, persistence queries, and tests pass; committed as 76905ab.
L006 DONE Add a wallet-owned ledger port and GL gRPC adapter. Wallet owns transport-neutral journal/event types; adapter maps them to generated GL messages with deadlines/TLS options and tests; committed as 9d91f8f.
L007 DONE Add a durable wallet outbox for ledger delivery. Transactional enqueue, locked claiming, stale recovery, retry/backoff, quarantine/replay, dispatcher, and commit/rollback tests pass; committed as 379dbc2.
L008 CHANGED Integrate ledger recording into every wallet transaction path. Scope split after implementation: all Wallet-owned deposit, withdrawal, transfer, buy, redeem, commission, market, IPG, stream, lock/release, and lifecycle paths are mapped and dispatched (ff31c87, d1aa339); AdminPanel direct writes remain under P006/P008.
L009 DONE Implement reconciliation and disaster-read tooling. Read-only journal integrity scans, external settlement evidence comparison, duplicate detection, account/balance reconstruction, and explorer reads are implemented and tested; commits 3f5fd86, b14c5e2, and d5c9b33.
L010 DONE Run outage, replay, ordering, concurrency, and recovery verification. Replay/idempotency, rollback, ordering, conservation, concurrent load scenarios, and recovery behavior are covered by GL tests/load tests; full tests/race/vet/build pass.

Priority workstream — Publisher-backed ICO purchases

ID Status Task Acceptance check / note
I001 DONE Map the current CalcBuyAsset, BuyAsset, role/permission, market-order, and settlement paths. Compatibility boundary and exact market-owned implementation are recorded in REFACTORING-AUDIT.md.
I002 DONE Add the token-publisher auth role and expose stable role keys in IAM. Additive proto committed as 2d7d3ff; idempotent custom-role bootstrap and stable role-key tests committed as 7c3b3b6; auth tests/race/build pass.
I003 DONE Add a backward-compatible publisher ICO order contract and persistence linkage. Additive proto committed as 286b8e5; role-gated ICO sell-order designation and agreement maker linkage committed as 25d0f03.
I004 DONE Refactor CalcBuyAsset to quote against the publisher's live sell order. Market selects the best live publisher order, verifies the publisher role and remaining volume, calculates taker pricing, and wallet delegates; committed as 5a0f3d7.
I005 DONE Refactor BuyAsset to create the user taker side and invoke the market settlement path. Claim-once agreement, taker creation, maker-wide serialization, fresh-state checks, shared settleOrder, and synchronous hashes committed as ef2e4ae.
I006 DONE Verify publisher-backed ICO authorization, limits, quoting, settlement, ledger, and regressions. Publisher/order/volume and claim tests pass; proto lint/build, reproducible generation, full auth/wallet/api tests, race tests, and builds pass; verification is 3555a5f, with deterministic best-price selection corrected in 0d7c820.

Priority workstream — Transaction event pipeline

ID Status Task Acceptance check / note
E001 DONE Map every transaction write, existing RabbitMQ code, GL outbox, transaction consumer, and alert boundary. All transaction inserts/updates converge in the PostgreSQL transaction repository; direct AMQP publishing is legacy and inactive; the durable DB outbox is the required publication boundary.
E002 DONE Define transaction event identity, per-type topics, durable outbox, inbox, and deadbox persistence. All 17 enum values have unique topics; transaction ID is the event identity; atomic outbox, inbox claim states, and deadbox models/repositories are tested and committed as 5dfb223.
E003 DONE Replace the legacy AMQP channel wrapper with Watermill publisher/subscriber adapters. Application code depends only on transport-neutral ports; AMQP connection ownership is centralized and can be replaced by another Watermill backend; full Wallet tests pass in 25fdb37.
E004 DONE Add per-transaction-type handlers with idempotent inbox processing. Every declared transaction type has a channel; duplicate delivery cannot repeat processing; pending executable transactions use the existing transaction processor; tests/race tests pass in 951cd02.
E005 DONE Add retry, success notification, and deadbox routing. Handler errors retry with bounded backoff; successful handling notifies alert; exhausted messages enter a persistent deadbox with transaction/event/error metadata; tests/race tests pass in c9a9101.
E006 DONE Integrate dispatcher/router lifecycle and verify the full event pipeline. Wallet-mode-only startup/shutdown is bounded; outbox recovery, duplicate delivery, all 17 per-type routes, retry, deadbox, Alert success, generation, tests, race tests, vet, and build pass in b5784b7.

Priority workstream — Go 1.26 toolchain

ID Status Task Acceptance check / note
T001 DONE Inventory active Go modules, builders, and version pins while excluding docs, DevOps, and UI. Four Go modules found; API/Auth/Wallet builders already use the official Go 1.26 Bookworm image; GL has no Dockerfile.
T002 DONE Upgrade API module metadata to Go 1.26 and verify its existing Docker builder. Generation, tests, vet, and native build pass in fb6ad38; Docker proxy default changed in ed8da2f; Dockerfile check passes.
T003 DONE Upgrade Auth module metadata to Go 1.26 and verify its existing Docker builder. Generation, tests, vet, and native build pass in b2d6686; Docker proxy default changed in 736a716; Dockerfile check passes.
T004 DONE Upgrade Wallet module metadata to Go 1.26 and verify its existing Docker builder. Generation, tests, full race tests, vet, and native build pass in f5243a8; Docker proxy default changed in fc96120; Dockerfile check passes.
T005 DONE Upgrade GL module metadata to Go 1.26 and add its missing Go 1.26 Dockerfile. Scoped upgrade and new multi-stage image committed in ce5f8b4; Dockerfile check passes. Current-tree build validation changed because separate uncommitted GL explorer work is missing generated components.
T006 DONE Perform cross-repository version and clean-tree audit. All four active Go modules and builders declare Go 1.26; all six active repositories use feat/refactor-v1; unrelated GL work and the known proto binary remain preserved.
T007 DONE Standardize in-scope Go Docker builders on the Darano Go proxy. All four builders default to https://go.reg.darano.ir; Dockerfile checks pass. A cold API image build was stopped after repeated delayed proxy 404s for historical transitive metadata; no public fallback was added.
T008 DONE Execute full Docker image builds for every in-scope Go service. GL passes and produced image sha256:717c75dfa91f843acdb8d56b4dd111224e5ee45d060dcd4731e5d472ff2c8f69; API, Auth, and Wallet are blocked in go mod download by repeated 300-second 504 Gateway Timeout responses from go.reg.darano.ir for google.golang.org/api metadata.
T009 DONE Add Gitea CI/CD configuration to GL. Seven action/workflow YAML files parse successfully; the exact buildx action produced both GL OCI tags using the mandated proxy; committed as 675def5.
T010 DONE Commit outstanding workspace work and centralize root Markdown files in dev-procfile with root symlinks. Pending work committed in DevOps (665fd6b), docs (2c49a92), Kuknos Node scripts (c114c13), and proto (c778fda); all eight root Markdown paths resolve through relative symlinks to tracked files in dev-procfile.
T011 DONE Document commands for cloning the complete Darano workspace on another machine. README.md now has copy-paste commands for all 12 repositories with configured origins, pins the current branches, recreates all eight root Markdown symlinks, and identifies private-chain as lacking a clone URL.
T012 DONE Push every committed project branch required for cross-machine continuation. All 12 top-level repositories with configured origins are synchronized; AdminPanel, Auth, and Proto refactor branches now have upstreams; dev-procfile uses SSH for non-interactive access; private-chain remains local because it has no remote.

Phase 2 — auth architecture

ID Status Task Acceptance check / note
A001 DONE Map every auth RPC to business operations and dependencies. Method-level migration map is recorded in REFACTORING-AUDIT.md; completed on 2026-08-30.
A002 DONE Introduce auth domain entities, value objects, errors, and repository ports. Added pure Auth entities/value objects, domain errors, and inward-facing repository/cache ports with no gRPC, GORM, Redis, or framework imports; committed as 32f182b/d292822.
A003 DONE Move auth persistence and Redis implementations into infrastructure. PostgreSQL and Redis implementations now live directly under infrastructure; legacy implementation packages and the unused Mongo placeholder are removed; full tests/race/vet/build pass.
A004 DONE Extract OTP application use cases and thin gRPC adapters. OTP primitives, persistence/provider adapters, runtime/template wiring, and thin gRPC registration adapters are in place; full Auth tests pass.
A005 DONE Extract authentication/JWT application use cases and adapters. Token policies, JWT verification, cached/persistent session reads, and session writes are extracted and runtime-wired while preserving access/refresh expiry semantics.
A006 DONE Extract identity and permission use cases and adapters. Permission policy/read paths and identity storage, validation, and external verification boundaries are extracted/runtime-wired; full tests and vet pass.
A007 DONE Replace auth bootstrap with explicit dependency composition. Auth bootstrap constructs a typed dependency graph for OTP, JWT/session, permission, and identity boundaries; full tests and vet pass.
A008 DONE Remove superseded auth packages and compatibility shims. Removed the legacy constructor and all runtime nil/fallback branches superseded by explicit OTP, JWT/session, permission, and identity dependencies; full tests/race/vet pass.

Phase 3 — wallet architecture

ID Status Task Acceptance check / note
W001 DONE Map wallet, market, alert, internal-wallet, cron, stream, DB, Redis, queue, and Stellar dependencies. Process/operation-family map, repository ownership, active queue topology, peer/provider dependencies, Stellar coupling, and migration order are recorded in REFACTORING-AUDIT.md.
W002 DONE Introduce wallet domain entities, value objects, errors, and repository ports. Added transport/persistence-independent wallet entities, filters, value objects, domain errors, repositories, cache/UoW, blockchain, identity, notification, PSP, and event ports; focused/full tests and focused vet pass.
W003 DONE Move PostgreSQL, Redis, RabbitMQ, external client, and Stellar adapters into infrastructure. PostgreSQL/Redis, RabbitMQ Watermill, external service, and Stellar/Horizon implementations are infrastructure-owned; legacy implementation imports are removed; full tests, race tests, vet, and build pass.
W004 DONE Extract read-only wallet use cases and gRPC adapters. Asset, commission, network, price, health, balance, check-balance, transaction-list, asset-catalog, and blockchain-balance reads delegate through application/walletread; protobuf conversion and error mapping remain compatible. Wallet-balance synchronization is an explicit mutation deferred to later wallet work.
W005 STARTED Extract wallet initialization and asset/trustline use cases. Initialization preconditions and trustline-limit policy now use application/walletinit; transaction, key-generation, trustline, and rollback orchestration remains in progress.
W006 TODO Extract deposit, withdrawal, and transaction use cases. Idempotency, balances, queues, and failure behavior are tested.
W007 TODO Extract market use cases and adapters. Pricing and market operations remain compatible.
W008 TODO Extract alert use cases and adapters. Alert persistence, delivery, and error behavior remain compatible.
W009 TODO Extract internal-wallet use cases and adapters. Internal RPC contracts remain compatible.
W010 TODO Separate cron and stream bootstrap from business operations. Both modes start and stop correctly through explicit dependencies.
W011 TODO Replace wallet bootstrap with explicit dependency composition. All five sub-services work independently and together.
W012 TODO Remove superseded core/*Imp packages and shims. No duplicate business implementations remain.

Phase 4 — api architecture

ID Status Task Acceptance check / note
G001 TODO Inventory routes, middleware, response contracts, WebSocket, Swagger, metrics, profiling, and gRPC clients. Compatibility matrix exists before package moves.
G002 TODO Move upstream clients into infrastructure/grpcclient. Lazy connection and two-minute idle-close behavior remain intact.
G003 TODO Move middleware into interface/http/middleware. Existing middleware order is unchanged and tested.
G004 TODO Move public HTTP handlers and routes into interface/http. Public endpoints retain paths, status codes, and envelopes.
G005 TODO Move authenticated client/admin handlers and routes. JWT, metadata forwarding, errors, and route behavior remain compatible.
G006 TODO Move WebSocket and auxiliary endpoints into interface adapters. WebSocket, health, metrics, Swagger, and profiling still work.
G007 TODO Replace API bootstrap with explicit dependency composition. Gateway builds and all contract tests pass.
G008 TODO Remove superseded API packages and shims. No duplicate handlers or clients remain.

Phase 5 — AdminPanel write service layer

ID Status Task Acceptance check / note
P001 TODO Inventory every direct AdminPanel write, delete, inline, bulk action, validation, and side effect. Each mutation is mapped to an owning Go service or explicitly classified.
P002 TODO Compare required AdminPanel mutations with existing internal RPCs. Every missing contract is documented before any proto change.
P003 TODO Add reusable authenticated, deadline-aware gRPC client infrastructure. Unit tests cover success, timeout, unavailable service, and status translation.
P004 TODO Add asset application use cases and route asset writes through wallet RPCs. Direct asset writes stop; access checks and user-visible errors remain correct.
P005 TODO Move token-policy validation and metadata generation to Go-owned operations. Django no longer owns duplicate wallet business rules.
P006 TODO Add wallet and transaction use cases and migrate writes. Direct writes stop and failure/partial-write behavior is tested.
P007 TODO Add market and remaining mutable aggregate use cases. All classified mutations use their owning service.
P008 TODO Make legacy unmanaged ORM models explicitly read-only. List/detail reads remain fast; migrated writes cannot bypass services.
P009 TODO Fix no_migartion to no_migration with router tests. Correct router setting is covered without unintended migrations.
P010 TODO Verify every affected admin page and permission tier. Create/update/delete/inline/bulk/failure paths pass.

Phase 6 — Protobuf contracts

ID Status Task Acceptance check / note
R001 TODO Decide whether existing internal RPCs cover all required AdminPanel writes. Decision is evidence-based; no speculative contract changes.
R002 TODO Add backward-compatible internal RPCs only for proven gaps. Buf lint/breaking checks pass; existing field numbers and contracts are preserved.
R003 TODO Regenerate only active Go and Python consumers. Generated files are reproducible and Go JSON tags retain required field presence.

Phase 7 — Shared types and final verification

ID Status Task Acceptance check / note
F001 TODO Evaluate shared ID and monetary types after service boundaries stabilize. Only genuinely identical cross-context semantics are shared.
F002 TODO Introduce approved shared types incrementally, if justified. Versioned dependency and explicit boundary conversions are used.
F003 TODO Run final generation, tests, builds, and architecture checks. Results meet or exceed the recorded baseline.
F004 TODO Review every active repository diff for generated/manual/unrelated changes. Only scoped changes remain and user-owned work is preserved.
F005 TODO Prepare reviewable per-repository commits and final migration report. Every commit has one purpose and leaves its repository buildable.

Execution log

Append one row whenever a task changes status. Existing rows are never rewritten, so failed or changed work remains visible.

Time Task From To Evidence / reason
2026-08-14 S001 TODO DONE Read and incorporated repository instructions and refactoring plan.
2026-08-14 S002 TODO CHANGED User excluded docs, DevOps, then ui.
2026-08-14 S003 TODO DONE Active scope reduced to five repositories.
2026-08-14 S004 TODO DONE Created and checked out feat/refactor-v1 in all active repositories.
2026-08-14 S005 TODO DONE Restored excluded repositories and removed temporary branches.
2026-08-14 B001 TODO STARTED Began code-backed architecture and repository audit.
2026-08-14 B001 STARTED DONE Recorded repository state, actual config libraries/globals, architecture boundaries, AdminPanel writes, proto gaps, generated outputs, and plan discrepancies in REFACTORING-AUDIT.md.
2026-08-14 B002 TODO STARTED Began read-only toolchain and dependency baseline capture.
2026-08-14 B002 STARTED DONE Recorded Go, Python, uv, Django, Buf, protoc/plugin, generator, and committed dependency baselines; noted missing root proto plugins and sandbox-blocked API module metadata lookup.
2026-08-14 B003 TODO STARTED Began proto lint/build/generation baseline checks with existing untracked binary protected.
2026-08-14 B003 STARTED DONE Buf build/lint passed; format drift and missing root generation plugins recorded from non-mutating checks and a temporary clone.
2026-08-14 B004 TODO STARTED Began auth generation, test, and build baseline.
2026-08-14 B004 STARTED DONE Auth generation reproduced committed stubs; tests and build passed in a temporary clone.
2026-08-14 B005 TODO STARTED Began serialized wallet generation, test, and build baseline.
2026-08-14 B005 STARTED DONE Wallet generation reproduced committed stubs; tests and full build passed with no tracked diff.
2026-08-14 B006 TODO STARTED Began API generation, test, Swagger, and build baseline.
2026-08-14 B006 STARTED DONE API generation, tests, Swagger generation, and full build passed with reproducible outputs.
2026-08-14 B007 TODO STARTED Began non-database-mutating AdminPanel system and test baseline checks.
2026-08-14 B007 STARTED DONE System, compile, and migration-drift checks passed; deploy warnings and zero-test Debug Toolbar failure recorded.
2026-08-14 B008 TODO STARTED Consolidated baseline results and selected the smallest compatibility-preserving first migration slice.
2026-08-14 B008 STARTED DONE Locked C001 to pure koanf loader ownership plus a temporary legacy facade and synthetic tests.
2026-08-14 C001 TODO STARTED Began auth config loader migration without global injection changes.
2026-08-14 C001 STARTED DONE Added infrastructure-owned koanf loader, compatibility facade, and tests; generation/tests/race/build pass; committed as 29b7e07.
2026-08-14 C002 TODO STARTED Began auth global-config dependency inventory and constructor-injection migration.
2026-08-14 C002 STARTED DONE Removed global config and legacy facade; injected config through auth boundaries; full verification passed; committed as 1bd5559.
2026-08-14 C003 TODO STARTED Began wallet config default/key/serve-mode compatibility inventory.
2026-08-14 C003 STARTED DONE Reproduced measured fig defaults, validated all service configs, and passed generation/tests/race/build; committed as 7958530.
2026-08-14 C004 TODO STARTED Began wallet global-config dependency inventory across five modes, repositories, use cases, and Stellar adapters.
2026-08-14 C004 STARTED CHANGED User prioritized a new disaster-recovery general-ledger service and wallet adapter; config injection will resume after its boundary is established.
2026-08-14 S003 DONE CHANGED Added GL to active scope; excluded repositories remain unchanged.
2026-08-14 S004 DONE DONE Created and checked out GL/feat/refactor-v1; all six active repositories now use the requested branch.
2026-08-14 L001 TODO STARTED Began evidence-backed GL design from existing wallet transaction and Stellar paths.
2026-08-14 L001 STARTED DONE Defined immutable double-entry invariants, mappings, transactional outbox delivery, controlled outage modes, and service ownership; committed in GL as 1863de1.
2026-08-14 L002 TODO STARTED Began the internal ledger/v1 protobuf contract from the accepted GL boundary.
2026-08-14 L002 STARTED DONE Added a new package without changing existing contracts; isolated-cache Buf format/lint/build checks pass; committed in proto as b4bb506.
2026-08-14 L003 TODO STARTED Began the independent Go service scaffold and generated-consumer setup.
2026-08-14 L003 STARTED DONE Scaffold generation is reproducible and tests/race/vet/build pass; committed in GL as b1e0b01.
2026-08-14 L004 TODO STARTED Began the immutable PostgreSQL schema, decimal domain values, and transactional repository.
2026-08-14 L004 STARTED DONE Domain and PostgreSQL enforce exact, balanced, sealed, immutable, idempotent journal storage; tests/race/vet/build pass; committed in GL as 0b3eaa0.
2026-08-14 L005 TODO STARTED Began application commands, persistence queries/events, reversal validation, and complete gRPC method adapters.
2026-08-14 L005 STARTED DONE Added complete application/gRPC operations, exact reversal and canonical idempotency behavior, queries, error mapping, and tests; committed in GL as 76905ab.
2026-08-14 L006 TODO STARTED Began the wallet-owned ledger port, transaction mapper, generated client, and gRPC adapter.
2026-08-14 L006 STARTED DONE Added the Wallet-owned ledger boundary, config, generated client, and tested gRPC adapter; full tests/race/build pass; committed in wallet as 9d91f8f.
2026-08-14 L007 TODO STARTED Began the wallet-local transactional outbox, claim/retry semantics, and dispatcher.
2026-08-14 L007 STARTED DONE Added atomic enqueue, safe claiming, retry/backoff, quarantine/replay, dispatcher, and rollback/commit tests; committed in wallet as 379dbc2.
2026-08-14 L008 TODO STARTED Began per-call-site transaction-effect mapping and outbox integration.
2026-08-14 L008 STARTED STARTED Checkpoint: lifecycle events now commit atomically with every transaction repository insert/update; full tests/race/build pass; committed in wallet as ff31c87; monetary journals remain.
2026-08-14 L008 STARTED CHANGED Completed and tested all Wallet-owned financial/lifecycle paths plus dispatcher bootstrap in d1aa339; split AdminPanel's direct-write bypass into the already tracked P006/P008 scope instead of treating it as a Wallet adapter path.
2026-08-14 I001 TODO STARTED Began mapping the public buy-asset compatibility endpoints to auth publisher permissions and the existing market settlement transaction.
2026-08-14 I001 STARTED DONE Recorded the additive contract, IAM role-key, publisher-order, pinned-agreement, and shared-settlement migration boundary in REFACTORING-AUDIT.md.
2026-08-14 I002 TODO STARTED Began idempotent token-publisher bootstrap and stable IAM role-key propagation.
2026-08-14 I002 STARTED DONE Added additive IAM role keys (2d7d3ff) and idempotent token-publisher bootstrap with focused tests (7c3b3b6); auth tests, race tests, and build pass.
2026-08-14 I003 TODO STARTED Began additive ICO order designation, quote/settlement service contracts, and agreement-to-maker persistence linkage.
2026-08-14 I003 STARTED DONE Added additive ICO order/quote/settlement fields and RPCs (286b8e5), role-gated hidden maker/sell orders, filtering, and agreement-to-maker persistence (25d0f03).
2026-08-14 I004 TODO STARTED Began market-owned live publisher-order selection and BuyAsset quote delegation.
2026-08-14 I004 STARTED DONE Delegated wallet quotes to market; live ICO selection verifies role, status, side, IRT pair, price, and remaining volume; agreement generation pins the maker; committed as 5a0f3d7.
2026-08-14 I005 TODO STARTED Began claim-once ICO confirmation, taker creation, and shared synchronous order settlement.
2026-08-14 I005 STARTED DONE Removed the legacy direct ICO transfers; added claim-once agreement handling, taker orders, maker-wide locking/fresh reads, shared synchronous settleOrder, response hashes, and claim tests; committed as ef2e4ae.
2026-08-14 I006 TODO STARTED Began focused authorization/order/claim tests, consumer regeneration, full test/race/build verification, and clean-tree review.
2026-08-14 I006 STARTED DONE Verified high-volume role-gated publisher orders, IRT/side/participant constraints, overfill prevention, claim idempotency, and shared settlement; Buf checks, consumer generation, full auth/wallet/api tests, race tests, and builds pass; generated consumers committed as a06c736/d2660f5, wallet verification as 3555a5f.
2026-08-14 I006 DONE DONE Final review found the generic query's default newest-first order preceding ICO price order; replaced it with a dedicated best-price/oldest-order query and reverified tests/race/build in 0d7c820.
2026-08-14 E001 TODO STARTED Began mapping all transaction writes and the existing RabbitMQ, GL outbox, consumer, and alert paths.
2026-08-14 E001 STARTED DONE Confirmed every active transaction insert/update converges in repository/db/postgres/transaction.go, which already atomically enqueues GL records; legacy direct AMQP publication is inactive and unsuitable for loss-free delivery.
2026-08-14 E002 TODO STARTED Began the transport-neutral event envelope, per-type topic registry, transaction outbox/inbox/deadbox schema, and repository ports.
2026-08-14 E002 STARTED DONE Added one stable event per transaction ID, unique topics for every transaction enum, atomic outbox enqueue, reclaimable inbox, persistent deadbox, migrations, and rollback/idempotency tests in 5dfb223.
2026-08-14 E003 TODO STARTED Began replacing the direct streadway AMQP channel with Watermill publisher/subscriber ownership and transport-neutral application ports.
2026-08-14 E003 STARTED DONE Replaced the unused streadway wrapper with a shared Watermill AMQP connection, publisher/subscriber adapters, delivery confirmations, durable queues, and a retrying outbox dispatcher; full Wallet tests pass in 25fdb37.
2026-08-14 E004 TODO STARTED Began the transport-neutral transaction loader/processor boundary and idempotent inbox-backed event handler for all per-type channels.
2026-08-14 E004 STARTED DONE Added topic/type validation, persisted inbox claims, duplicate-safe processing, existing processor delegation, final-status verification, claim-loss checks, and focused race coverage in 951cd02.
2026-08-14 E005 TODO STARTED Began bounded Watermill retry composition, persistent handler deadbox routing, and successful-transaction alert notification.
2026-08-14 E005 STARTED DONE Added one Watermill handler per transaction topic, bounded retry/recovery, persistent deadbox-before-ack behavior, and Alert success notification without repeating completed financial effects in c9a9101.
2026-08-14 E006 TODO STARTED Began wallet-mode-only Watermill dispatcher/router lifecycle integration, configuration defaults, graceful shutdown, and end-to-end verification.
2026-08-14 E006 STARTED DONE Wired Wallet-only startup after all 17 durable subscriptions are ready, bounded handler/startup/shutdown timeouts, lazy Alert/Auth gRPC connections, graceful closure, and an in-memory dispatcher-to-router duplicate test; proto generation, full tests/race tests, vet, and build pass in b5784b7.
2026-08-14 T001 TODO DONE Confirmed Go 1.26 is released, the official golang:1.26-bookworm tag exists, four active Go modules still declare 1.24, three existing Go builders already use 1.26, and GL lacks a Dockerfile.
2026-08-14 T002 TODO STARTED Began the API module directive upgrade and isolated Go 1.26 verification.
2026-08-14 T002 STARTED DONE Upgraded API to Go 1.26, removed behaviorally unreachable logger code exposed by vet, and passed generation, tests, vet, and build with the existing Go 1.26 Docker builder in fb6ad38.
2026-08-14 T003 TODO STARTED Began the Auth module directive upgrade and isolated Go 1.26 verification.
2026-08-14 T003 STARTED DONE Upgraded Auth to Go 1.26, removed behaviorally unreachable logger code, fixed the newsletter timeout lifecycle exposed by vet, and passed generation, tests, vet, and build in b2d6686.
2026-08-14 T004 TODO STARTED Began the Wallet module directive upgrade and isolated Go 1.26 verification.
2026-08-14 T004 STARTED DONE Upgraded Wallet to Go 1.26; module tidy and generation produced no extra drift; full tests, race tests, vet, and binary build pass in f5243a8.
2026-08-14 T005 TODO STARTED Began the GL module upgrade and creation of its missing Go 1.26 multi-stage Dockerfile.
2026-08-14 T005 STARTED CHANGED Separate GL explorer/web changes appeared during verification; preserved them and isolated the Go directive/Dockerfile commit from that work.
2026-08-14 T007 TODO STARTED User required HTTP_PROXY and HTTPS_PROXY unset for go get and selected https://go.reg.darano.ir as the Go proxy.
2026-08-14 T007 STARTED DONE Updated all four Go Docker proxy defaults in per-repository commits and passed Dockerfile checks; cold API build exposed delayed 404 coverage gaps in the selected proxy, so no fallback was introduced.
2026-08-14 T005 CHANGED DONE Committed the isolated GL Go 1.26 directive and new multi-stage Dockerfile as ce5f8b4; current working directive remains 1.26 while unrelated explorer/dependency changes stay uncommitted.
2026-08-14 T006 TODO STARTED Began final branch, module directive, Docker builder, proxy, and worktree audit across active repositories.
2026-08-14 T006 STARTED DONE Confirmed all Go modules/builders use 1.26, all Go builders use the Darano proxy, all active branches are correct, and user-owned proto/GL work remains untouched.
2026-08-14 T008 TODO STARTED Began sequential full image builds for API, Auth, Wallet, and GL using the configured Darano Go proxy.
2026-08-15 T008 STARTED DONE GL built successfully as darano-gl:go1.26; API/Auth/Wallet independently reproduced Darano registry gateway timeouts before compilation, with no proxy fallback or source changes introduced.
2026-08-15 T009 TODO STARTED Began adapting the established Go-service Gitea actions and three environment workflows for GL.
2026-08-15 T009 STARTED DONE Added local build/login/deploy/notify actions plus main/dev/stage workflows; YAML parsing and the exact cached buildx command pass; committed in GL as 675def5.
2026-08-30 C004 CHANGED STARTED Resumed Wallet constructor injection after the GL adapter boundary stabilized.
2026-08-30 C004 STARTED DONE Removed all active global config reads and the legacy facade; injected configuration through every runtime boundary; full tests/race/vet/build pass in the commit series ending at 4d192a6.
2026-08-30 C005 TODO STARTED Began API configuration ownership migration.
2026-08-30 C005 STARTED DONE Moved the pure koanf/TOML loader and compatibility-preserving defaults to api/infrastructure/config; loader and full verification pass in 44d56d3.
2026-08-30 C006 TODO STARTED Began API global configuration dependency migration.
2026-08-30 C006 STARTED DONE Removed the API Cfg singleton and legacy config package; injected configuration through runtime boundaries; full tests/race/vet/build pass in 44d56d3.
2026-08-30 L009 TODO STARTED Began GL reconciliation and disaster-read completion review.
2026-08-30 L009 STARTED DONE Verified read-only reconciliation, external evidence comparison, duplicate detection, explorer balance reconstruction, and focused tests; implementation commits are 3f5fd86, b14c5e2, and d5c9b33.
2026-08-30 L010 TODO STARTED Began GL outage, replay, ordering, concurrency, and recovery verification.
2026-08-30 L010 STARTED DONE Full GL tests, race tests, vet, and build pass; replay/idempotency, rollback, conservation/load, ordering, and recovery paths are covered.
2026-08-30 A001 TODO STARTED Began the method-level Auth RPC and dependency migration map before package moves.
2026-08-30 A001 STARTED DONE Mapped every public/internal RPC to its use-case operation, persistence ports, external providers, cache, wallet, notification, and configuration dependencies in REFACTORING-AUDIT.md.
2026-08-30 A002 TODO STARTED Began the pure Auth domain model and port foundation.
2026-08-30 A002 STARTED DONE Added transport/persistence-independent entities, NationalID/Mobile/BirthDate value objects, domain errors, and repository/cache ports; focused and full Auth tests pass in 32f182b/d292822.
2026-08-30 A003 TODO STARTED Added infrastructure persistence mappings between legacy database records and the new Auth domain entities; mapping tests and full Auth tests pass in 58f6a43.
2026-08-30 A003 STARTED STARTED Added remaining persistence mappings and domain-port adapters for sessions, permissions, roles, role-permissions, bank information, and OTP templates; full Auth tests pass in e6e8e34. Legacy repository implementations still require relocation/integration.
2026-08-30 A004 TODO STARTED Extracted OTP code generation and expiration constant into application/otp, retained compatible use-case behavior, and added focused tests in 0c92b14.
2026-08-30 A004 STARTED STARTED Extracted OTP template parameter decoding into application/otp; full Auth tests pass in 62fb1b1. Legacy template lookup and delivery composition remain.
2026-08-30 A004 STARTED STARTED Extracted OTP retry/verification policy into application/otp; full Auth tests pass in 133fcc3. Legacy persistence and gRPC composition remain.
2026-08-30 A004 STARTED STARTED Added transport-independent OTP store and sender contracts in application/otp; full Auth tests pass in 8fbfcff. Concrete Redis/provider adapters remain.
2026-08-30 A004 STARTED STARTED Added concrete Redis-backed OTP store and Kavenegar sender adapters under infrastructure/otp; full Auth tests pass in cde73ef. Runtime wiring and gRPC adapter extraction remain.
2026-08-30 A004 STARTED STARTED Wired OTP store/sender adapters into Auth runtime and use-case paths with legacy fallback retained; full Auth tests pass in c951875.
2026-08-30 A004 STARTED STARTED Wired the OTP template repository port and infrastructure adapter into runtime composition and TFA processing; full Auth tests pass in 741415b.
2026-08-30 A004 STARTED DONE Added thin gRPC registration adapters and routed Auth service registration through them; full Auth tests pass in b56d54c.
2026-08-30 A005 TODO STARTED Extracted bearer-token normalization into application/auth; full Auth tests pass in 1d72faa.
2026-08-30 A005 STARTED STARTED Extracted refresh-token marker validation into application/auth; full Auth tests pass in 4225332.
2026-08-30 A005 STARTED STARTED Added application JWT verifier contract and infrastructure adapter for access/refresh claims; full Auth tests pass in ad6f5cc.
2026-08-30 A005 STARTED STARTED Injected the JWT verifier into IAM and refresh-token flows with compatibility fallback; full Auth tests pass in 6c5b8cc.
2026-08-30 A005 STARTED STARTED Extracted active/expiry session policy into application/auth; focused and full Auth tests pass in 424741c.
2026-08-30 A005 STARTED STARTED Added and runtime-wired the authentication session-store boundary for IAM retrieval while preserving Redis-expiry behavior; full Auth tests pass in d744ffc.
2026-08-30 A005 STARTED STARTED Routed login and refresh session writes through the authentication session-store boundary with compatibility fallback; full Auth tests and vet pass in c15bcff.
2026-08-30 A005 STARTED DONE Routed refresh lookup through the persistent session boundary (distinct from access-session cache lookup); full Auth tests and vet pass in 016d705.
2026-08-30 A006 TODO STARTED Extracted case-insensitive route/method and privileged-role permission policy into application/permission; full Auth tests pass in 9f97cec.
2026-08-30 A006 STARTED STARTED Runtime-wired the permission repository port for route lookup/creation and super-admin permission listing; full Auth tests pass in 5b61adf.
2026-08-30 A006 STARTED STARTED Added and runtime-wired a role-permission reader preserving the existing Redis/Postgres behavior; full Auth tests pass in 24722cb.
2026-08-30 A006 STARTED STARTED Added and runtime-wired an identity store over existing cache/persistence behavior, routing identity reads and writes through pure domain models; full Auth tests pass in 113faef.
2026-08-30 A006 STARTED STARTED Extracted identity Persian-digit normalization plus birth-date, national-ID, postal-code, and email validation into application/identity; full Auth tests pass in 2d5ab3d.
2026-08-30 A006 STARTED DONE Added and runtime-wired identity ownership/person-verification boundaries with real/fake provider selection preserved; full Auth tests and vet pass in 75c2e0d.
2026-08-30 A007 TODO DONE Replaced the positional Auth constructor with a typed dependency graph assembled explicitly in bootstrap; full Auth tests and vet pass in 7d7871b.
2026-08-30 A008 TODO DONE Removed the legacy constructor and superseded runtime fallback implementations across OTP, JWT/session, permission, and identity paths; full Auth tests/race/vet pass in a9b11a3.
2026-08-30 A003 STARTED DONE Relocated all PostgreSQL and Redis implementation files from repository/db into infrastructure, removed wrapper indirection and the empty Mongo placeholder, and verified no legacy implementation imports remain; full tests/race/vet/build pass in 1323aa4.
2026-08-30 W001 TODO DONE Mapped all six wallet runtime modes and their PostgreSQL, Redis, RabbitMQ/outbox, internal/external client, Stellar, availability, cryptography, observability, and shutdown dependencies in REFACTORING-AUDIT.md.
2026-08-30 W002 TODO DONE Added pure wallet entities/value objects, domain errors, filters, repository/cache/UoW ports, and blockchain/internal/external adapter boundaries; focused and full tests plus focused vet pass in ac649d2.
2026-08-30 W003 TODO STARTED Relocated all wallet PostgreSQL and Redis adapter implementations (including tests) from repository/db into infrastructure/postgres and infrastructure/redis; updated bootstrap imports and full Wallet tests pass in d2580cd. RabbitMQ, external service, and Stellar adapters remain.
2026-08-30 W003 STARTED DONE Relocated external service clients to infrastructure/service and Stellar/Horizon adapters to infrastructure/stellar; updated wallet, market, stream, and bootstrap imports; no legacy implementation imports remain; full tests, race tests, vet, and build pass in d121fc9.
2026-08-30 W004 STARTED DONE Added the application/walletread boundary and routed asset, commission, network, price, health, balance, check-balance, transaction-list, asset-catalog, and blockchain-balance reads through it; protobuf conversion and error mapping remain compatible; full Wallet tests pass in 5b17c82. Wallet-balance synchronization is a mutation deferred to later wallet work.
2026-08-30 W005 TODO STARTED Added application/walletinit for identity preconditions, trustline-limit calculation, key recovery, trustline submission, wallet-code generation, wallet-draft construction, repository-backed find-or-create orchestration, and trustline transaction construction; UserInitWallet now has explicit commit-on-success/rollback-on-error finalization while preserving operation ordering; full Wallet tests pass in 4e4f2af.