diff --git a/.envrc b/.envrc index b992d4df5f..e33ff8abd1 100644 --- a/.envrc +++ b/.envrc @@ -10,12 +10,12 @@ use_flake_subdir() { eval "$(nix print-dev-env --profile "$(direnv_layout_dir)/flake-profile" "path:nix" "$@")" } -# TODO(#3876) work around for $TMPDIR is removed. #3876 to investigate more +# TODO(DACH-NY/canton-network-node#3876) work around for $TMPDIR is removed. #3876 to investigate more OLD_TMPDIR=$TMPDIR use flake_subdir -# TODO(#3876) work around for $TMPDIR is removed. #3876 to investigate more +# TODO(DACH-NY/canton-network-node#3876) work around for $TMPDIR is removed. #3876 to investigate more export TMPDIR=$OLD_TMPDIR source_env .envrc.vars diff --git a/.github/actions/nix/run_bash_command_in_nix/action.yml b/.github/actions/nix/run_bash_command_in_nix/action.yml index 5bbfc278c6..9381697adf 100644 --- a/.github/actions/nix/run_bash_command_in_nix/action.yml +++ b/.github/actions/nix/run_bash_command_in_nix/action.yml @@ -77,7 +77,7 @@ runs: . .envrc.vars - # TODO(#17839): once we support cluster deployments in GHA, add cluster authentication here + # TODO(#615): once we support cluster deployments in GHA, add cluster authentication here MAX_RETRY=${{ inputs.cmd_retry_count }} n=0 @@ -112,7 +112,7 @@ runs: } cmd_wrapper && break - # TODO(#17839): support a conditional retry (cmd_retry_condition argument in CCI), used for retrying if VPN failed + # TODO(#615): support a conditional retry (cmd_retry_condition argument in CCI), used for retrying if VPN failed n=$[$n+1] done diff --git a/.github/actions/scripts/backport_reminder.js b/.github/actions/scripts/backport_reminder.js index c8dadff3dd..f9ed3e14ff 100644 --- a/.github/actions/scripts/backport_reminder.js +++ b/.github/actions/scripts/backport_reminder.js @@ -69,7 +69,7 @@ async function main(deps) { const allBranches = [ ...(clusterBranches.map(c => flattenBranchesForCluster(c))), - // TODO(#16006): un-hardcode release-line-0.2 here + // TODO(DACH-NY/canton-network-node#16006): un-hardcode release-line-0.2 here ['main', 'release-line-0.2', 'release-line-0.3.0'] ] diff --git a/.github/actions/scripts/check-logs.sh b/.github/actions/scripts/check-logs.sh index 398ec8511b..1ff77fcefd 100755 --- a/.github/actions/scripts/check-logs.sh +++ b/.github/actions/scripts/check-logs.sh @@ -89,7 +89,7 @@ find_exceptions | ### Look for leaked secrets -# TODO(#14876) Patch secrets in the log file +# TODO(DACH-NY/canton-network-internal#481) Patch secrets in the log file sed -i 's/secret=test/secret=hidden/g' "$LOGFILE" find_secrets() { diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24131a8898..0567df7416 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -129,7 +129,7 @@ jobs: runs_on: self-hosted-k8s-large test_names_file: 'test-full-class-names.log' start_canton_options: -w - # TODO(#10912) Investigate why things got slower + # TODO(DACH-NY/canton-network-node#10912) Investigate why things got slower parallelism: 10 test_name: wall-clock-time with_gcp_creds: true diff --git a/CANTON_CODE_CHANGES.md b/CANTON_CODE_CHANGES.md index b60f14c46b..939601f76e 100644 --- a/CANTON_CODE_CHANGES.md +++ b/CANTON_CODE_CHANGES.md @@ -27,7 +27,7 @@ to know which and/or what changes we'll need to upstream before the switch. * ``PositiveFiniteDuration` config reader and writer made public * `ProofOfOwnership` made public ## Misc -* Added support for interface filters in ledger api ACS commands. TODO (#17403): This should be upstreamed. +* Added support for interface filters in ledger api ACS commands. TODO (#638): This should be upstreamed. * Generalization of `Environment` * Generalization of `MetricsFactory` * Removed a trailing comma in many places because the CC Scala compiler doesn't like it (e.g. `.authorize(op, domain, mediator, side, key.some, )` -> `.authorize(op, domain, mediator, side, key.some)`) diff --git a/apps/ans/frontend/src/__tests__/setup/config.ts b/apps/ans/frontend/src/__tests__/setup/config.ts index 69dac7bb44..22634d6070 100644 --- a/apps/ans/frontend/src/__tests__/setup/config.ts +++ b/apps/ans/frontend/src/__tests__/setup/config.ts @@ -1,7 +1,7 @@ // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -// TODO(#7579) -- remove duplication from default config +// TODO(#986) -- remove duplication from default config const config = { auth: { diff --git a/apps/ans/frontend/src/context/ValidatorScanProxyContext.tsx b/apps/ans/frontend/src/context/ValidatorScanProxyContext.tsx index a213cf26bc..e93b25ce38 100644 --- a/apps/ans/frontend/src/context/ValidatorScanProxyContext.tsx +++ b/apps/ans/frontend/src/context/ValidatorScanProxyContext.tsx @@ -15,7 +15,7 @@ import { ResponseContext, } from 'scan-proxy-openapi'; -//TODO(#8571) deduplicate this and reuse from specific libraries instead of all on common frontend +//TODO(DACH-NY/canton-network-node#8571) deduplicate this and reuse from specific libraries instead of all on common frontend const ValidatorScanProxyContext = React.createContext(undefined); export interface ValidatorScanProxyProps { diff --git a/apps/ans/frontend/src/hooks/queries/usePrimaryParty.ts b/apps/ans/frontend/src/hooks/queries/usePrimaryParty.ts index 450ef73da0..3999b690c3 100644 --- a/apps/ans/frontend/src/hooks/queries/usePrimaryParty.ts +++ b/apps/ans/frontend/src/hooks/queries/usePrimaryParty.ts @@ -1,10 +1,10 @@ // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -// TODO(#8515) - reuse this from wallet UI +// TODO(DACH-NY/canton-network-node#8515) - reuse this from wallet UI import { useUserStatus } from './useUserStatus'; // A hook to fetch the primary party ID via the wallet userStatus API -// TODO(#5176) -- consider querying the json ledger API instead to avoid having more than 1 primary party hook +// TODO(DACH-NY/canton-network-node#5176) -- consider querying the json ledger API instead to avoid having more than 1 primary party hook export const usePrimaryParty = (): string | undefined => { const userStatusQuery = useUserStatus(); return userStatusQuery.data?.partyId; diff --git a/apps/ans/frontend/src/hooks/queries/useUserStatus.ts b/apps/ans/frontend/src/hooks/queries/useUserStatus.ts index 766da388cf..fba859d415 100644 --- a/apps/ans/frontend/src/hooks/queries/useUserStatus.ts +++ b/apps/ans/frontend/src/hooks/queries/useUserStatus.ts @@ -1,6 +1,6 @@ // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -// TODO(#8515) - reuse this from wallet UI +// TODO(DACH-NY/canton-network-node#8515) - reuse this from wallet UI import { useUserState } from '@lfdecentralizedtrust/splice-common-frontend'; import { useQuery, UseQueryResult } from '@tanstack/react-query'; diff --git a/apps/ans/frontend/src/hooks/scan-proxy/useGetAnsRules.ts b/apps/ans/frontend/src/hooks/scan-proxy/useGetAnsRules.ts index 1013cb5845..e111ab1027 100644 --- a/apps/ans/frontend/src/hooks/scan-proxy/useGetAnsRules.ts +++ b/apps/ans/frontend/src/hooks/scan-proxy/useGetAnsRules.ts @@ -8,7 +8,7 @@ import { AnsRules } from '@daml.js/ans/lib/Splice/Ans/'; import { useValidatorScanProxyClient } from '../../context/ValidatorScanProxyContext'; -//TODO(#8571) deduplicate this and reuse from specific libraries instead of all on common frontend +//TODO(DACH-NY/canton-network-node#8571) deduplicate this and reuse from specific libraries instead of all on common frontend const useGetAnsRules = (): UseQueryResult> => { const scanClient = useValidatorScanProxyClient(); return useGetAnsRulesFromResponse(() => scanClient.getAnsRules({})); diff --git a/apps/ans/frontend/src/hooks/scan-proxy/useLookupAnsEntryByName.ts b/apps/ans/frontend/src/hooks/scan-proxy/useLookupAnsEntryByName.ts index 9dd4a26568..3b39da7df3 100644 --- a/apps/ans/frontend/src/hooks/scan-proxy/useLookupAnsEntryByName.ts +++ b/apps/ans/frontend/src/hooks/scan-proxy/useLookupAnsEntryByName.ts @@ -6,7 +6,7 @@ import { AnsEntry } from 'scan-openapi'; import { useValidatorScanProxyClient } from '../../context/ValidatorScanProxyContext'; -//TODO(#8571) deduplicate this and reuse from specific libraries instead of all on common frontend +//TODO(DACH-NY/canton-network-node#8571) deduplicate this and reuse from specific libraries instead of all on common frontend const useLookupAnsEntryByName = ( name: string, enabled: boolean = true, diff --git a/apps/ans/frontend/vite.config.mjs b/apps/ans/frontend/vite.config.mjs index 8faff5edb2..2eae6d17c8 100644 --- a/apps/ans/frontend/vite.config.mjs +++ b/apps/ans/frontend/vite.config.mjs @@ -22,7 +22,7 @@ export default defineConfig(({ mode }) => { }, build: { outDir: 'build', - // TODO(#7672): reduce/remove this limit + // TODO(#854): reduce/remove this limit chunkSizeWarningLimit: 4800, commonjsOptions: { transformMixedEsModules: true, diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/SpliceApp.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/SpliceApp.scala index 9fbcb2a2a4..1502a0cfcc 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/SpliceApp.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/SpliceApp.scala @@ -13,7 +13,7 @@ import com.digitalasset.canton.CantonAppDriver import com.digitalasset.canton.config.ConfigErrors.CantonConfigError import com.digitalasset.canton.environment.EnvironmentFactory -// TODO(#736): generalize. e.g. custom Cli class for Splice Node for the console +// TODO(DACH-NY/canton-network-node#736): generalize. e.g. custom Cli class for Splice Node for the console object SpliceApp extends CantonAppDriver { override type Config = SpliceConfig diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala index 75cfd329c8..c5473cbc8d 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala @@ -107,7 +107,7 @@ case class SpliceConfig( override def withDefaults(defaults: DefaultPorts, edition: CantonEdition): SpliceConfig = this - // TODO(#736): we want to remove all of the configurations options below: + // TODO(DACH-NY/canton-network-node#736): we want to remove all of the configurations options below: override val participants: Map[InstanceName, ParticipantNodeConfig] = Map.empty override val remoteParticipants: Map[InstanceName, RemoteParticipantConfig] = Map.empty override val mediators: Map[InstanceName, MediatorNodeConfig] = Map.empty diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/LedgerApiExtensions.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/LedgerApiExtensions.scala index 0954074486..d83995e5b0 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/LedgerApiExtensions.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/LedgerApiExtensions.scala @@ -87,7 +87,7 @@ trait LedgerApiExtensions extends AppendedClues with Matchers { // We often have duplicates when merging choice contexts from multiple off-ledger APIs. // Cull them here to avoid sending them twice; and because the Ledger API server // currently errors out on them. - // TODO(#18566): remove the note wrt the error once that's no longer the case + // TODO(#560): remove the note wrt the error once that's no longer the case .distinctBy(_.getContractId) .map(DisclosedContract.fromJavaProto), synchronizerId = synchronizerId, @@ -187,7 +187,7 @@ trait LedgerApiExtensions extends AppendedClues with Matchers { // We often have duplicates when merging choice contexts from multiple off-ledger APIs. // Cull them here to avoid sending them twice; and because the Ledger API server // currently errors out on them. - // TODO(#18566): remove the note wrt the error once that's no longer the case + // TODO(#560): remove the note wrt the error once that's no longer the case .distinctBy(_.getContractId) .map(DisclosedContract.fromJavaProto), synchronizerId = synchronizerId, diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/SpliceInstanceReference.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/SpliceInstanceReference.scala index b711eee097..f7f94dffe8 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/SpliceInstanceReference.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/console/SpliceInstanceReference.scala @@ -64,7 +64,7 @@ trait AppReference extends InstanceReference { override type Status = SpliceStatus - // TODO(#736): remove/cleanup all the uninteresting console commands copied from Canton. + // TODO(DACH-NY/canton-network-node#736): remove/cleanup all the uninteresting console commands copied from Canton. @Help.Summary("Health and diagnostic related commands") @Help.Group("Health") // Doesn't make sense for splice @@ -102,7 +102,7 @@ trait HttpAppReference extends AppReference with HttpCommandRunner { def basePath: String - // TODO (#4606): Refactor so that these two methods don't need to be implemented + // TODO (DACH-NY/canton-network-node#4606): Refactor so that these two methods don't need to be implemented override def keys: KeyAdministrationGroup = noGrpcError() override def adminCommand[Result]( @@ -245,7 +245,7 @@ class ParticipantClientReference( override val config: RemoteParticipantConfig, ) extends RemoteParticipantReference(consoleEnvironment, name) { - // TODO(#5141) Consider removing this once Canton no longer explodes + // TODO(DACH-NY/canton-network-node#5141) Consider removing this once Canton no longer explodes // when uploading the same DAR twice. def upload_dar_unless_exists( path: String diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ScanApps.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ScanApps.scala index 7a1c2bc6fb..a3a44e992c 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ScanApps.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ScanApps.scala @@ -22,7 +22,7 @@ class ScanApps( _loggerFactory: NamedLoggerFactory, )(implicit protected val executionContext: ExecutionContextIdlenessExecutorService -) extends ManagedNodes[ // TODO(#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from +) extends ManagedNodes[ // TODO(DACH-NY/canton-network-node#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from // this trait. ScanApp, ScanAppBackendConfig, diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceConsoleEnvironment.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceConsoleEnvironment.scala index 0a4b2cc7bd..1baeb45c45 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceConsoleEnvironment.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceConsoleEnvironment.scala @@ -26,7 +26,7 @@ import org.lfdecentralizedtrust.splice.wallet.config.WalletAppClientConfig class SpliceConsoleEnvironment( override val environment: SpliceEnvironment, val consoleOutput: ConsoleOutput = StandardConsoleOutput, -) extends ConsoleEnvironment // TODO(#736): Generalize this. +) extends ConsoleEnvironment // TODO(DACH-NY/canton-network-node#736): Generalize this. { override type Config = SpliceConfig diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SplitwellApps.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SplitwellApps.scala index 97d11d6094..f4113581fb 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SplitwellApps.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SplitwellApps.scala @@ -22,7 +22,7 @@ class SplitwellApps( _loggerFactory: NamedLoggerFactory, )(implicit protected val executionContext: ExecutionContextIdlenessExecutorService -) extends ManagedNodes[ // TODO(#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from +) extends ManagedNodes[ // TODO(DACH-NY/canton-network-node#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from // this trait. SplitwellApp, SplitwellAppBackendConfig, diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SvApps.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SvApps.scala index d0de372269..e0135b7106 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SvApps.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/SvApps.scala @@ -22,7 +22,7 @@ class SvApps( _loggerFactory: NamedLoggerFactory, )(implicit protected val executionContext: ExecutionContextIdlenessExecutorService -) extends ManagedNodes[ // TODO(#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from +) extends ManagedNodes[ // TODO(DACH-NY/canton-network-node#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from // this trait. SvApp, SvAppBackendConfig, diff --git a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ValidatorApps.scala b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ValidatorApps.scala index 09bd71a3fb..fbe1c1eb0b 100644 --- a/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ValidatorApps.scala +++ b/apps/app/src/main/scala/org/lfdecentralizedtrust/splice/environment/ValidatorApps.scala @@ -22,7 +22,7 @@ class ValidatorApps( _loggerFactory: NamedLoggerFactory, )(implicit protected val executionContext: ExecutionContextIdlenessExecutorService -) extends ManagedNodes[ // TODO(#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from +) extends ManagedNodes[ // TODO(DACH-NY/canton-network-node#736): We should remove the CantonNode/CantonNodeBootstrap type requirements from // this trait. ValidatorApp, ValidatorAppBackendConfig, diff --git a/apps/app/src/test/resources/include/participants.conf b/apps/app/src/test/resources/include/participants.conf index 0af242a44f..81fcd08c9f 100644 --- a/apps/app/src/test/resources/include/participants.conf +++ b/apps/app/src/test/resources/include/participants.conf @@ -23,7 +23,7 @@ _participant_template { journal-garbage-collection-delay = 24h } - # TODO(#8331) Tune cache sizes + # TODO(DACH-NY/canton-network-node#8331) Tune cache sizes # from https://docs.daml.com/2.8.0/canton/usermanual/performance.html#configuration # tune caching configs of the ledger api server ledger-api { diff --git a/apps/app/src/test/resources/include/svs/_sv.conf b/apps/app/src/test/resources/include/svs/_sv.conf index c13a186cc3..2110791f7b 100644 --- a/apps/app/src/test/resources/include/svs/_sv.conf +++ b/apps/app/src/test/resources/include/svs/_sv.conf @@ -31,7 +31,7 @@ enable-expire-validator-faucet = true - # TODO(#7649) revise and/or remove + # TODO(DACH-NY/canton-network-node#7649) revise and/or remove enable-dso-delegate-replacement-trigger = true # CometBFT reconciliation is disabled by default as it would destabilize the CometBFT network by reflecting the diff --git a/apps/app/src/test/resources/local-sv-node/canton-participant/canton.conf b/apps/app/src/test/resources/local-sv-node/canton-participant/canton.conf index 8f8090a8d1..fb07f1ca49 100644 --- a/apps/app/src/test/resources/local-sv-node/canton-participant/canton.conf +++ b/apps/app/src/test/resources/local-sv-node/canton-participant/canton.conf @@ -44,7 +44,7 @@ canton { journal-garbage-collection-delay = 24h } - # TODO(#8331) Tune cache sizes + # TODO(DACH-NY/canton-network-node#8331) Tune cache sizes # from https://docs.daml.com/2.8.0/canton/usermanual/performance.html#configuration # tune caching configs of the ledger api server ledger-api { diff --git a/apps/app/src/test/resources/total-supply-bigquery-import.sql b/apps/app/src/test/resources/total-supply-bigquery-import.sql index f77ce8cbe9..f17f7d7087 100644 --- a/apps/app/src/test/resources/total-supply-bigquery-import.sql +++ b/apps/app/src/test/resources/total-supply-bigquery-import.sql @@ -1,4 +1,4 @@ --- TODO (#18620) put this file somewhere that makes sense +-- TODO (DACH-NY/canton-network-internal#362) put this file somewhere that makes sense -- in this example: -- experiment_dataset is the name of the BigQuery dataset diff --git a/apps/app/src/test/resources/total-supply-bigquery.sql b/apps/app/src/test/resources/total-supply-bigquery.sql index 44ce929d4b..b98834c776 100644 --- a/apps/app/src/test/resources/total-supply-bigquery.sql +++ b/apps/app/src/test/resources/total-supply-bigquery.sql @@ -1,4 +1,4 @@ --- TODO (#18620) put this file somewhere that makes sense +-- TODO (DACH-NY/canton-network-internal#362) put this file somewhere that makes sense DECLARE as_of_record_time timestamp; DECLARE diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/Ans4SvsIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/Ans4SvsIntegrationTest.scala index 9ac1ad3ec1..531fdbb1b5 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/Ans4SvsIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/Ans4SvsIntegrationTest.scala @@ -19,7 +19,7 @@ class Ans4SvsIntegrationTest extends IntegrationTest with WalletTestUtil with Tr EnvironmentDefinition .simpleTopology4Svs(this.getClass.getSimpleName) - // TODO(#11927): incorporate this test into AnsIntegrationTest + // TODO(#787): incorporate this test into AnsIntegrationTest "ans" should { "terminated subscriptions are archived" in { implicit env => setTriggersWithin[Assertion]( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AnsIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AnsIntegrationTest.scala index c6baaeb8a3..8a1c35c735 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AnsIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AnsIntegrationTest.scala @@ -42,7 +42,7 @@ class AnsIntegrationTest extends IntegrationTest with WalletTestUtil with Trigge override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition - // TODO(#11927): make AnsIntegrationTest use simpleTopology4Svs + // TODO(#787): make AnsIntegrationTest use simpleTopology4Svs .simpleTopology1Sv(this.getClass.getSimpleName) .addConfigTransforms((_, config) => updateAutomationConfig(ConfigurableApp.Sv)( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala index 1f868009b8..5be5a7dfa4 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/AppUpgradeIntegrationTest.scala @@ -69,7 +69,7 @@ class AppUpgradeIntegrationTest .withInitializedNodes() .withTrafficTopupsEnabled .withManualStart - // TODO(#8300) Consider removing this once domain config updates are less disruptive, particularly + // TODO(#979) Consider removing this once domain config updates are less disruptive, particularly // to the tests after SVs 2 and 3 have been upgraded .withSequencerConnectionsFromScanDisabled() .addConfigTransforms((_, config) => @@ -252,7 +252,7 @@ class AppUpgradeIntegrationTest java.util.Optional.empty(), java.util.Optional.empty(), ) - // TODO(#16139): adaptation to this test required + // TODO(#925): adaptation to this test required val upgradeAction = new ARC_AmuletRules( new CRARC_AddFutureAmuletConfigSchedule( new AmuletRules_AddFutureAmuletConfigSchedule( @@ -652,7 +652,7 @@ object AppUpgradeIntegrationTest { val result = Process( Seq("bash", "-c", cmd), None, - // TODO(#10595): consider reading these from config files: + // TODO(DACH-NY/canton-network-node#10595): consider reading these from config files: "SV1_URL" -> "http://127.0.0.1:5114", "SV1_SCAN_URL" -> "http://127.0.0.1:5012", "SV2_SCAN_URL" -> "http://127.0.0.1:5112", diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BftManualStartIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BftManualStartIntegrationTest.scala index 2ea5a3abd0..7163ebfa8b 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BftManualStartIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/BftManualStartIntegrationTest.scala @@ -31,7 +31,7 @@ class BftManualStartIntegrationTest extends IntegrationTest { "start with the bft sequencers" in { implicit env => sv1Backend.startSync() sv1ScanBackend.startSync() - // TODO(#19670) if possible, don't require parallel start of sv app and scan + // TODO(#893) if possible, don't require parallel start of sv app and scan startAllSync(sv2Backend, sv2ScanBackend) startAllSync(sv3Backend, sv3ScanBackend) forAll(Seq(sv1Backend, sv2Backend, sv3Backend)) { sv => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DecentralizedSynchronizerMigrationIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DecentralizedSynchronizerMigrationIntegrationTest.scala index 965e37ca16..030b104d65 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DecentralizedSynchronizerMigrationIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DecentralizedSynchronizerMigrationIntegrationTest.scala @@ -403,7 +403,7 @@ class DecentralizedSynchronizerMigrationIntegrationTest Some((migrationDumpDir(name) / "domain_migration_dump.json").path) ) )(conf), - // TODO(#9014) Consider keeping this running and instead + // TODO(DACH-NY/canton-network-node#9014) Consider keeping this running and instead // making the test check history instead of balance once our // stores handle hard domain migrations properly. (_, conf) => @@ -412,10 +412,10 @@ class DecentralizedSynchronizerMigrationIntegrationTest )(conf), ) .withManualStart - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures .withAmuletPrice(walletAmuletPrice) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures override def walletAmuletPrice = SpliceUtil.damlDecimal(1.0) "migrate global domain to new nodes with downtime" in { implicit env => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DisasterRecoveryIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DisasterRecoveryIntegrationTest.scala index 0cbcce829b..d69b99edb4 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DisasterRecoveryIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DisasterRecoveryIntegrationTest.scala @@ -382,7 +382,7 @@ class DisasterRecoveryIntegrationTest // Note: the dumps contain data from the sequencers, need to get // the dumps before shutting down canton nodes. - // TODO(#11099): Once taking the migration dump does not need sequencers to be running, move this further down. + // TODO(DACH-NY/canton-network-node#11099): Once taking the migration dump does not need sequencers to be running, move this further down. withClueAndLog("Getting and writing disaster recovery dumps") { getAndWriteDumps(identities, timestampBeforeDisaster) } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DsoElectionTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DsoElectionTimeBasedIntegrationTest.scala index 6492d69f7a..a5c4062274 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DsoElectionTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/DsoElectionTimeBasedIntegrationTest.scala @@ -20,7 +20,7 @@ class DsoElectionTimeBasedIntegrationTest private val dummyDsoSynchronizerId = SynchronizerId.tryFromString("domain1::domain") - // TODO(#7649): once flow is fixed add test to check that SVs can elect a new delegate (currently locked contract issue) + // TODO(DACH-NY/canton-network-node#7649): once flow is fixed add test to check that SVs can elect a new delegate (currently locked contract issue) "SVs can elect a new delegate and if a delegate gets offboarded a new delegate is chosen while current ElectionRequests are archived" in { implicit env => clue("Initialize DSO with 4 SVs") { @@ -143,7 +143,7 @@ class DsoElectionTimeBasedIntegrationTest } } - // TODO(#7649): enable test back if automatic delegate election is re-enabled in new flow + // TODO(DACH-NY/canton-network-node#7649): enable test back if automatic delegate election is re-enabled in new flow "detect an inactive delegate" ignore { implicit env => val dsoRulesBeforeElection = clue("Initialize DSO with 4 SVs") { startAllSync( @@ -204,7 +204,7 @@ class DsoElectionTimeBasedIntegrationTest advanceTime(tickDurationWithBuffer) }, entries => { - // TODO(#6856) Consider reverting this to a `forExactly` + // TODO(DACH-NY/canton-network-internal#495) Consider reverting this to a `forExactly` forAtLeast(3, entries) { line => line.message should include( "Starting check for delegate inactivity" diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala index f29309d733..f78d5ce439 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala @@ -51,7 +51,7 @@ import java.util.UUID import scala.jdk.CollectionConverters.* import scala.jdk.OptionConverters.* -// TODO(#14568) Merge this into ExternallySignedPartyOnboardingTest +// TODO(DACH-NY/canton-network-node#14568) Merge this into ExternallySignedPartyOnboardingTest class ExternalPartySetupProposalIntegrationTest extends IntegrationTest with HasExecutionContext @@ -603,7 +603,7 @@ class ExternalPartySetupProposalIntegrationTest } } - // TODO(#15468): Simplify this test to not require a ledger submission + // TODO(DACH-NY/canton-network-node#15468): Simplify this test to not require a ledger submission "TransferPreapprovals get expired by SV automation" in { implicit env => val onboarding = onboardExternalParty(aliceValidatorBackend) val externalParty = onboarding.party diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ParticipantKmsIdentitiesIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ParticipantKmsIdentitiesIntegrationTest.scala index 5873de5193..5d68515cc0 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ParticipantKmsIdentitiesIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ParticipantKmsIdentitiesIntegrationTest.scala @@ -128,7 +128,7 @@ class ParticipantKmsIdentitiesIntegrationTest extends IntegrationTest with Stand // better.files.File(aliceParticipantDumpFile).write(dumpFromValidator.toJson.spaces2) // uncomment all of this to write out new dumps for KmsMigrationDumpImportIntegrationTest - // TODO(#16277): Add KmsMigrationDumpImportIntegrationTest and/or remove this + // TODO(DACH-NY/canton-network-node#16277): Add KmsMigrationDumpImportIntegrationTest and/or remove this // import io.circe.syntax.EncoderOps // val someTimestamp = java.time.Instant.now() // // sv1 diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanFrontendTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanFrontendTimeBasedIntegrationTest.scala index f90a86bf9f..856354acb2 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanFrontendTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanFrontendTimeBasedIntegrationTest.scala @@ -102,7 +102,7 @@ class ScanFrontendTimeBasedIntegrationTest }, ) - // TODO(#2930): consider de-hard-coding the expected values here somehow, e.g. by only checking them relative to each other + // TODO(DACH-NY/canton-network-node#2930): consider de-hard-coding the expected values here somehow, e.g. by only checking them relative to each other clue("Compare app leaderboard values") { compareLeaderboardTable( "app-leaderboard-row", @@ -592,7 +592,7 @@ class ScanFrontendTimeBasedIntegrationTest closeVoteModalsIfOpen reviewButton.underlying.click() - // TODO(#14813): needs to be changed by using parseAmuletConfigValue() once the diff exists for the first change + // TODO(#934): needs to be changed by using parseAmuletConfigValue() once the diff exists for the first change try { val newScheduleItem = webDriver.findElement(By.id("accordion-details")) val json = newScheduleItem.findElement(By.tagName("pre")).getText diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanHistoryBackfillingIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanHistoryBackfillingIntegrationTest.scala index 4f44bc9e91..1c759bc85b 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanHistoryBackfillingIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanHistoryBackfillingIntegrationTest.scala @@ -495,7 +495,7 @@ class ScanHistoryBackfillingIntegrationTest val sv2Transactions = sv2ScanBackend.listTransactions(None, SortOrder.Asc, 1000).map(shortDebugDescription) - // TODO(#16798): switch to theSameElementsInOrderAs once the endpoint sorts by record time instead of row id. + // TODO(#666): switch to theSameElementsInOrderAs once the endpoint sorts by record time instead of row id. sv1Transactions should contain theSameElementsAs sv2Transactions } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanIntegrationTest.scala index 457557bf85..7d3f0fce57 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanIntegrationTest.scala @@ -531,7 +531,7 @@ class ScanIntegrationTest extends IntegrationTest with WalletTestUtil with TimeT } } - // TODO (#13038) reenable + // TODO (DACH-NY/canton-network-node#13038) reenable "list collected app and validator and SV rewards" ignore { implicit env => val (alice, _) = onboardAliceAndBob() waitForWalletUser(aliceValidatorWalletClient) @@ -587,7 +587,7 @@ class ScanIntegrationTest extends IntegrationTest with WalletTestUtil with TimeT _ => { bobValidatorWalletClient .listAppRewardCoupons() should have size 1 - // TODO(#13038) Add asserts back for listValidatorRewardCoupons + // TODO(DACH-NY/canton-network-node#13038) Add asserts back for listValidatorRewardCoupons // bobValidatorWalletClient.listValidatorRewardCoupons() should // have size (if (bobToppedUp) 2 else 1) @@ -613,7 +613,7 @@ class ScanIntegrationTest extends IntegrationTest with WalletTestUtil with TimeT } } } - // TODO(#13038) Add asserts back for listValidatorRewardCoupons + // TODO(DACH-NY/canton-network-node#13038) Add asserts back for listValidatorRewardCoupons // replace _ with validatorRewardAmount val (appRewardAmount, _) = getRewardCouponsValue(appRewardCoupons, validatorRewardCoupons, featured = false) @@ -622,7 +622,7 @@ class ScanIntegrationTest extends IntegrationTest with WalletTestUtil with TimeT eventually() { bobValidatorWalletClient .listAppRewardCoupons() should have size 0 - // TODO(#13038) Add asserts back for listValidatorRewardCoupons + // TODO(DACH-NY/canton-network-node#13038) Add asserts back for listValidatorRewardCoupons // bobValidatorWalletClient // .listValidatorRewardCoupons() should have size 0 @@ -638,7 +638,7 @@ class ScanIntegrationTest extends IntegrationTest with WalletTestUtil with TimeT val inputAppRewardAmount = inputAppRewardAmounts.loneElement inputAppRewardAmount shouldBe appRewardAmount - // TODO(#13038) Add asserts back for listValidatorRewardCoupons + // TODO(DACH-NY/canton-network-node#13038) Add asserts back for listValidatorRewardCoupons // val inputValidatorAmounts = bobTransfers // .flatMap(_.sender.inputValidatorRewardAmount) diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanTimeBasedIntegrationTest.scala index 6e46c5de91..9ed7794701 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanTimeBasedIntegrationTest.scala @@ -51,8 +51,8 @@ class ScanTimeBasedIntegrationTest } "return correct amulet configs" in { implicit env => - // TODO(#2930) test also with changing amulet prices. - // TODO(#2930) Currently we are not guaranteed that the first three rounds are correctly + // TODO(DACH-NY/canton-network-node#2930) test also with changing amulet prices. + // TODO(DACH-NY/canton-network-node#2930) Currently we are not guaranteed that the first three rounds are correctly // captured in the tx log, so for now we first advance a round, and query only on that // round and beyond. Once that is fixed, we should make sure that querying for round 0 is reliable as well. @@ -224,7 +224,7 @@ class ScanTimeBasedIntegrationTest sv1ScanBackend.automation.trigger[ScanAggregationTrigger].runOnce().futureValue sv1ScanBackend.getRoundOfLatestData() should be((baseRoundWithLatestData + 5, ledgerTime)) - // TODO(#10941): consider de-hard-coding the expected values here somehow, e.g. by only checking them relative to each other + // TODO(#805): consider de-hard-coding the expected values here somehow, e.g. by only checking them relative to each other val appRewardsBobR3 = BigDecimal(4.2000000000) val appRewardsAliceR3 = BigDecimal(3.8400000000) val validatorRewardsBobR3 = BigDecimal(1.4000000000) @@ -286,7 +286,7 @@ class ScanTimeBasedIntegrationTest compareLeaderboard( sv1ScanBackend.getTopProvidersByAppRewards(baseRoundWithLatestData + 4, 10), Seq( - // TODO(#10941): consider de-hard-coding the expected values here + // TODO(#805): consider de-hard-coding the expected values here (bobValidatorWalletClient, BigDecimal(8.4060000000)), (aliceValidatorWalletClient, BigDecimal(7.6860000000)), ), @@ -296,7 +296,7 @@ class ScanTimeBasedIntegrationTest compareLeaderboard( sv1ScanBackend.getTopValidatorsByValidatorRewards(baseRoundWithLatestData + 4, 10), Seq( - // TODO(#10941): consider de-hard-coding the expected values here + // TODO(#805): consider de-hard-coding the expected values here (bobValidatorWalletClient, BigDecimal(2.8020000000)), (aliceValidatorWalletClient, BigDecimal(2.5620000000)), ), diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanWithGradualStartsTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanWithGradualStartsTimeBasedIntegrationTest.scala index 4cb92a575d..1cf2bd77c0 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanWithGradualStartsTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ScanWithGradualStartsTimeBasedIntegrationTest.scala @@ -25,7 +25,7 @@ class ScanWithGradualStartsTimeBasedIntegrationTest updateAutomationConfig(ConfigurableApp.Sv)( // SVs's sequencer connection choice is not relevant to this test // but the reconciliation can cause flakiness - // TODO(#8300): Unpause again once this reconciliation is less disruptive + // TODO(#979): Unpause again once this reconciliation is less disruptive _.withPausedTrigger[LocalSequencerConnectionsTrigger] )(config) ) @@ -73,7 +73,7 @@ class ScanWithGradualStartsTimeBasedIntegrationTest aliceWalletClient.tap(3) } - // TODO(#2930): Since we are reporting in getRoundOfLatestData() only the latest round that is aggregated (fully closed), + // TODO(DACH-NY/canton-network-node#2930): Since we are reporting in getRoundOfLatestData() only the latest round that is aggregated (fully closed), // we must advance rounds until round 3 closes, which is the first round that sv2's scan is guaranteed to have seen. (firstOpenRound.payload.round.number.toInt to (firstOpenRound.payload.round.number.toInt + 6)) .foreach { n => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SpliceTests.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SpliceTests.scala index c08c9cb6cb..ecd5b6f8af 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SpliceTests.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SpliceTests.scala @@ -418,7 +418,7 @@ object SpliceTests extends LazyLogging { value should beWithin(range._1, range._2) // Upper bound for fees in any of the above transfers - // TODO(#10898): Figure out something better for upper bounds of fees + // TODO(#806): Figure out something better for upper bounds of fees val smallAmount: BigDecimal = BigDecimal(1.0) def beWithin(lower: BigDecimal, upper: BigDecimal): Matcher[BigDecimal] = be >= lower and be <= upper diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellFrontendIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellFrontendIntegrationTest.scala index b5bed4ff95..28da46f64e 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellFrontendIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellFrontendIntegrationTest.scala @@ -35,7 +35,7 @@ class SplitwellFrontendIntegrationTest aliceValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) bobValidatorBackend.participantClient.upload_dar_unless_exists(splitwellDarPath) }) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "A splitwell UI" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala index 4e6d9bd4ed..3460b5e932 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellIntegrationTest.scala @@ -26,7 +26,7 @@ class SplitwellIntegrationTest aliceValidatorBackend.participantClient.upload_dar_unless_exists(darPath) bobValidatorBackend.participantClient.upload_dar_unless_exists(darPath) }) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "splitwell" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeFrontendIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeFrontendIntegrationTest.scala index 7032dda7f2..e30a5fba6b 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeFrontendIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeFrontendIntegrationTest.scala @@ -36,7 +36,7 @@ class SplitwellUpgradeFrontendIntegrationTest validator <- Seq(aliceValidatorBackend, bobValidatorBackend) } validator.participantClient.upload_dar_unless_exists(darPath) }) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "splitwell frontend with upgraded domain" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeIntegrationTest.scala index 3c15a68586..7d3bf62451 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SplitwellUpgradeIntegrationTest.scala @@ -32,7 +32,7 @@ class SplitwellUpgradeIntegrationTest aliceValidatorBackend.participantClient.upload_dar_unless_exists(darPath) bobValidatorBackend.participantClient.upload_dar_unless_exists(darPath) }) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "splitwell with upgraded domain" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvCometBftIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvCometBftIntegrationTest.scala index 296852991f..0d573df880 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvCometBftIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvCometBftIntegrationTest.scala @@ -85,7 +85,7 @@ class SvCometBftIntegrationTest extends IntegrationTestWithSharedEnvironment wit }) ), ) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() .withManualStart diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvFrontendTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvFrontendTimeBasedIntegrationTest.scala index 808c9510de..64f04c7bbc 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvFrontendTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvFrontendTimeBasedIntegrationTest.scala @@ -53,7 +53,7 @@ class SvFrontendTimeBasedIntegrationTest } "SV UIs" should { - // TODO(#7649): enable test back if automatic delegate election is re-enabled in new flow + // TODO(DACH-NY/canton-network-node#7649): enable test back if automatic delegate election is re-enabled in new flow "see election results reflected in the UI" ignore { implicit env => withFrontEnd("sv1") { implicit webDriver => actAndCheck( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvIdentitiesDumpIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvIdentitiesDumpIntegrationTest.scala index ffd7a221fe..8e24b68268 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvIdentitiesDumpIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvIdentitiesDumpIntegrationTest.scala @@ -43,7 +43,7 @@ class SvIdentitiesDumpIntegrationTest extends IntegrationTestWithSharedEnvironme .fromHttp(io.circe.parser.decode[http.SynchronizerNodeIdentities](jsonString).value) .value // The authorized store snapshots are not always byte-for-byte equal - // TODO(#11611): Figure out why and if we can improve the checking here + // TODO(#794): Figure out why and if we can improve the checking here scrubAuthorizedStoreSnapshots(ids) shouldBe scrubAuthorizedStoreSnapshots( parsed ) withClue s"Identities dump for sv ${backend.name} is consistent with identities fetched through the endpoint" diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvOnboardingAddlIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvOnboardingAddlIntegrationTest.scala index c665a3f409..f5cc1b28b8 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvOnboardingAddlIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvOnboardingAddlIntegrationTest.scala @@ -159,7 +159,7 @@ class SvOnboardingAddlIntegrationTest }) } // higher time required to account for possible domain reconnections when the sequencer is changed from the onboarding sv1 to it's own sv2 - // TODO(#13405) remove increased timeout when canton fails fast during sequencer changes + // TODO(DACH-NY/canton-network-node#13405) remove increased timeout when canton fails fast during sequencer changes actAndCheck(timeUntilSuccess = 2.minute)("SV2 comes back online", sv2Backend.startSync())( "SV4's onboarding gathers sufficient confirmations and is completed", { _ => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala index acaaa3bdbf..e9c8cd2b92 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvStateManagementIntegrationTest.scala @@ -43,10 +43,10 @@ import java.util.Optional import scala.jdk.CollectionConverters.MapHasAsScala import scala.jdk.OptionConverters.* -//TODO(#16139): adapt this test to work only with SetConfig +//TODO(#925): adapt this test to work only with SetConfig class SvStateManagementIntegrationTest extends SvIntegrationTestBase with TriggerTestUtil { - // TODO(#16139): change tests to work with current version + // TODO(#925): change tests to work with current version private val initialPackageConfig = InitialPackageConfig( amuletVersion = "0.1.7", amuletNameServiceVersion = "0.1.7", @@ -55,7 +55,7 @@ class SvStateManagementIntegrationTest extends SvIntegrationTestBase with Trigge walletVersion = "0.1.7", walletPaymentsVersion = "0.1.7", ) - // TODO(#16139): when using the latest version, this can be removed + // TODO(#925): when using the latest version, this can be removed override protected def runTokenStandardCliSanityCheck: Boolean = false override def environmentDefinition: EnvironmentDefinition = diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedPruneAmuletConfigScheduleIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedPruneAmuletConfigScheduleIntegrationTest.scala index 319bdfbd2c..867adacf62 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedPruneAmuletConfigScheduleIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/SvTimeBasedPruneAmuletConfigScheduleIntegrationTest.scala @@ -13,7 +13,7 @@ import org.lfdecentralizedtrust.splice.util.WalletTestUtil import scala.jdk.CollectionConverters.* -//TODO(#16139): remove this test +//TODO(#925): remove this test class SvTimeBasedPruneAmuletConfigScheduleIntegrationTest extends IntegrationTestWithSharedEnvironment with SvTimeBasedIntegrationTestUtil diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TimeBasedTreasuryIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TimeBasedTreasuryIntegrationTest.scala index dc32db36a8..d736fd2482 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TimeBasedTreasuryIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TimeBasedTreasuryIntegrationTest.scala @@ -28,10 +28,10 @@ class TimeBasedTreasuryIntegrationTest _.withPausedTrigger[ReceiveFaucetCouponTrigger] )(config) ) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures .withAmuletPrice(walletAmuletPrice) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures override def walletAmuletPrice = SpliceUtil.damlDecimal(1.0) "automatically merge transfer inputs when the automation is triggered" in { implicit env => diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala index 18338624d6..5febbae93a 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardAllocationIntegrationTest.scala @@ -89,7 +89,7 @@ class TokenStandardAllocationIntegrationTest bob: PartyId, ): tradingapp.OTCTradeProposal = { val aliceLeg = mkTransferLeg(dso, alice, bob, aliceTransferAmount) - // TODO(#18559): swap against a token from the token reference implementation + // TODO(#561): swap against a token from the token reference implementation val bobLeg = mkTransferLeg(dso, bob, alice, bobTransferAmount) new tradingapp.OTCTradeProposal( venue.toProtoPrimitive, @@ -443,7 +443,7 @@ class TokenStandardAllocationIntegrationTest } private def setupAllocatedOtcTrade()(implicit env: SpliceTestConsoleEnvironment) = { - // TODO(#18561): use external parties for all of them + // TODO(DACH-NY/canton-network-node#18561): use external parties for all of them val aliceParty = onboardWalletUser(aliceWalletClient, aliceValidatorBackend) val bobParty = onboardWalletUser(bobWalletClient, bobValidatorBackend) // Allocate venue on separate participant node, we still go through the validator API instead of parties.enable diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardCliIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardCliIntegrationTest.scala index 212c44bff2..62fb403d4a 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardCliIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/TokenStandardCliIntegrationTest.scala @@ -122,7 +122,7 @@ class TokenStandardCliIntegrationTest "dummyUser", // Doesn't actually matter what we put here as the admin token ignores the user. ) val exitCode = Process(args, cwd).!(logProcessor) - // TODO (#18610): check that recordtime and updateid are present + // TODO (#908): check that recordtime and updateid are present inside(readLines) { case _ :+ last => last should be("{}") } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletAppRewardsTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletAppRewardsTimeBasedIntegrationTest.scala index 7fceaed94c..b111bce0b5 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletAppRewardsTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletAppRewardsTimeBasedIntegrationTest.scala @@ -30,10 +30,10 @@ class WalletAppRewardsTimeBasedIntegrationTest _.copy(miningRoundsCacheTimeToLiveOverride = Some(NonNegativeFiniteDuration.ofMillis(1))) )(config) ) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures .withAmuletPrice(walletAmuletPrice) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures override def walletAmuletPrice = SpliceUtil.damlDecimal(1.0) "A wallet" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletIntegrationTest.scala index d909ccef59..2d46b69b04 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletIntegrationTest.scala @@ -71,7 +71,7 @@ class WalletIntegrationTest ) ) ) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentFrontendIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentFrontendIntegrationTest.scala index 14b06029e4..b6c74fc603 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentFrontendIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentFrontendIntegrationTest.scala @@ -28,7 +28,7 @@ class WalletPaymentFrontendIntegrationTest .simpleTopology1Sv(this.getClass.getSimpleName) .withoutAutomaticRewardsCollectionAndAmuletMerging .withAmuletPrice(amuletPrice) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "A wallet payments UI" should { @@ -558,7 +558,7 @@ class WalletPaymentFrontendIntegrationTest expectedProvider ) - // TODO (#3492): test with fee + // TODO (#878): test with fee element.childElement(className("payment-total-amulet")).text should matchTextMixedWithNumbers( raw"([0-9.,]+) $amuletNameAcronym".r, Seq(expectedTotalCC), diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentIntegrationTest.scala index a1d177726b..88b8c82233 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletPaymentIntegrationTest.scala @@ -19,7 +19,7 @@ class WalletPaymentIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "A wallet" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletRewardsTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletRewardsTimeBasedIntegrationTest.scala index da136f1af9..2090f3e7f9 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletRewardsTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletRewardsTimeBasedIntegrationTest.scala @@ -13,10 +13,10 @@ class WalletRewardsTimeBasedIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1SvWithSimTime(this.getClass.getSimpleName) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures .withAmuletPrice(walletAmuletPrice) - // TODO (#10859) remove and fix test failures + // TODO (#965) remove and fix test failures override def walletAmuletPrice = SpliceUtil.damlDecimal(1.0) "A wallet" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsFrontendIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsFrontendIntegrationTest.scala index 2d52d437a2..8b0cd24f08 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsFrontendIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsFrontendIntegrationTest.scala @@ -22,7 +22,7 @@ class WalletSubscriptionsFrontendIntegrationTest EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) .withAmuletPrice(walletAmuletPrice) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "A wallet UI" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsIntegrationTest.scala index 853764e513..b98e2a7782 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSubscriptionsIntegrationTest.scala @@ -20,7 +20,7 @@ class WalletSubscriptionsIntegrationTest override def environmentDefinition: SpliceEnvironmentDefinition = EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() "A wallet" should { diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSurviveCantonRestartIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSurviveCantonRestartIntegrationTest.scala index b98c721470..2ab0dfc2db 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSurviveCantonRestartIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletSurviveCantonRestartIntegrationTest.scala @@ -43,7 +43,7 @@ class WalletSurviveCantonRestartIntegrationTest // Do not allocate validator users here, as we deal with all of them manually .withAllocatedUsers(extraIgnoredValidatorPrefixes = Seq("")) .withManualStart - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() } diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTimeBasedIntegrationTest.scala index 43139ebea0..c3327d7d68 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTimeBasedIntegrationTest.scala @@ -110,7 +110,7 @@ class WalletTimeBasedIntegrationTest // To reach the renewal period of alice1 subscription, we need to advance (90 - 30 days) = 60 days // We have already advanced by 30 days previously (10 days * 3) // So we will have to advance (90 - 30 - 30 days) = 30 days to make alice1 subscription expired - // TODO (#7609): consider replacing with stopping and starting triggers + // TODO (#996): consider replacing with stopping and starting triggers advanceTimeAndWaitForRoundAutomation(Duration.ofDays(30)) advanceTimeToRoundOpen }, @@ -133,7 +133,7 @@ class WalletTimeBasedIntegrationTest } } - // TODO(#8376): this one was trickier to make a non-time-based test + // TODO(#977): this one was trickier to make a non-time-based test "auto-expire locked amulet" in { implicit env => val aliceUserParty = onboardWalletUser(aliceWalletClient, aliceValidatorBackend) val aliceValidatorParty = aliceValidatorBackend.getValidatorPartyId() @@ -272,7 +272,7 @@ class WalletTimeBasedIntegrationTest actAndCheck( "Advance time until ANS entry is up for renewal", { // We time the advances so that automation doesn't trigger before payments can be made. - // TODO (#7609): consider replacing with stopping and starting triggers + // TODO (#996): consider replacing with stopping and starting triggers advanceTimeAndWaitForRoundAutomation(Duration.ofDays(89).minus(Duration.ofMinutes(17))) advanceTimeToRoundOpen }, diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransactionHistoryFrontendTimeBasedIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransactionHistoryFrontendTimeBasedIntegrationTest.scala index 8f94b35d54..7e8c145ee6 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransactionHistoryFrontendTimeBasedIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransactionHistoryFrontendTimeBasedIntegrationTest.scala @@ -66,7 +66,7 @@ class WalletTransactionHistoryFrontendTimeBasedIntegrationTest // Advance so we're within the renewalInterval + make sure that we have // an open round that we can use. We time the advances so that // automation doesn't trigger before payments can be made. - // TODO (#7609): consider replacing with stopping and starting triggers + // TODO (#996): consider replacing with stopping and starting triggers advanceTimeAndWaitForRoundAutomation(Duration.ofDays(89).minus(Duration.ofMinutes(1))) advanceTimeToRoundOpen }, diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransfersFrontendIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransfersFrontendIntegrationTest.scala index a53c47951b..c740076a2d 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransfersFrontendIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTransfersFrontendIntegrationTest.scala @@ -29,7 +29,7 @@ abstract class BaseWalletTransfersFrontendIntegrationTest EnvironmentDefinition .simpleTopology1Sv(this.getClass.getSimpleName) .withAmuletPrice(amuletPrice) - // TODO(#8300) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. + // TODO(#979) Consider removing this once domain config updates are less disruptive to carefully-timed batching tests. .withSequencerConnectionsFromScanDisabled() protected def createTransferOfferViaBackend(walletClient: WalletAppClientReference)( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala index be398245a4..ebbc9e3496 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/WalletTxLogIntegrationTest.scala @@ -1449,7 +1449,7 @@ class WalletTxLogIntegrationTest // Automation will attempt to make the payment at any time after collecting the accepted subscription request, // each of these attempts will fail due to insufficient funds, and automation will retry the payment forever. // Each failed attempt will produce one WARN and one ERROR log entry, which we need to suppress. - // TODO(#2034): simplify this test once automation stops retrying forever + // TODO(DACH-NY/canton-network-node#2034): simplify this test once automation stops retrying forever loggerFactory.assertLogsSeq(SuppressionRule.LevelAndAbove(Level.WARN))( { val (subscriptionResult, _) = actAndCheck( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/offlinekey/ValidatorOfflineRootNamespaceKeyIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/offlinekey/ValidatorOfflineRootNamespaceKeyIntegrationTest.scala index 62249908eb..34eefa4f71 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/offlinekey/ValidatorOfflineRootNamespaceKeyIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/offlinekey/ValidatorOfflineRootNamespaceKeyIntegrationTest.scala @@ -9,7 +9,7 @@ import org.lfdecentralizedtrust.splice.integration.EnvironmentDefinition import org.lfdecentralizedtrust.splice.integration.tests.SpliceTests.IntegrationTest import org.lfdecentralizedtrust.splice.util.{PostgresAroundEach, ProcessTestUtil, WalletTestUtil} -// TODO(#17027) use KMS for this test; whoever goes through the trouble of offline root namespace keys probably also uses KMS +// TODO(#917) use KMS for this test; whoever goes through the trouble of offline root namespace keys probably also uses KMS class ValidatorOfflineRootNamespaceKeyIntegrationTest extends IntegrationTest with ProcessTestUtil diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/runbook/ValidatorPreflightIntegrationTest.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/runbook/ValidatorPreflightIntegrationTest.scala index 6dfba115d1..863474cb3b 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/runbook/ValidatorPreflightIntegrationTest.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/runbook/ValidatorPreflightIntegrationTest.scala @@ -488,7 +488,7 @@ abstract class ValidatorPreflightIntegrationTestBase () => find(id("onboard-button")) should not be empty, ) - // TODO(#12457): This is a workaround to bypass slowness of wallet user onboarding + // TODO(DACH-NY/canton-network-internal#485): This is a workaround to bypass slowness of wallet user onboarding actAndCheck(timeUntilSuccess = 2.minute)( "Onboard wallet user", { click on "onboard-button" @@ -525,7 +525,7 @@ class RunbookValidatorPreflightIntegrationTest extends ValidatorPreflightIntegra override protected val validatorWalletUser = sys.env("SPLICE_OAUTH_TEST_VALIDATOR_WALLET_USER") - // TODO(#8300): remove this check once canton handles sequencer connections more gracefully + // TODO(#979): remove this check once canton handles sequencer connections more gracefully override def checkValidatorIsConnectedToSvRunbook() = "Validator is connected to SV runbook" in { implicit env => val sv = sv_client("sv") diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/CommonAppInstanceReferences.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/CommonAppInstanceReferences.scala index 978c3d0b85..0e760a798c 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/CommonAppInstanceReferences.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/CommonAppInstanceReferences.scala @@ -18,7 +18,7 @@ import org.lfdecentralizedtrust.splice.integration.tests.SpliceTests.SpliceTestC import com.digitalasset.canton.topology.{PartyId, SynchronizerId} import com.digitalasset.canton.SynchronizerAlias -// TODO(#736): these should eventually be defined analogue to Canton's `participant1` references etc +// TODO(DACH-NY/canton-network-node#736): these should eventually be defined analogue to Canton's `participant1` references etc // however, this is likely only possible once we depend on Canton as a library trait CommonAppInstanceReferences { def decentralizedSynchronizerId(implicit env: SpliceTestConsoleEnvironment): SynchronizerId = diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/ConfigScheduleUtil.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/ConfigScheduleUtil.scala index 7d9c4c7d0b..1cb028a7e1 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/ConfigScheduleUtil.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/ConfigScheduleUtil.scala @@ -29,7 +29,7 @@ import org.lfdecentralizedtrust.splice.util.SpliceUtil.defaultAmuletConfig import java.time.{Duration, Instant} import scala.jdk.CollectionConverters.* -//TODO(#16139): remove this utility +//TODO(#925): remove this utility trait ConfigScheduleUtil extends TestCommon { /** Helper function to create AmuletConfig's in tests for amulet config changes. Uses the `currentSchedule` as a reference diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/TimeTestUtil.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/TimeTestUtil.scala index 63180d0f04..d76385b665 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/TimeTestUtil.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/TimeTestUtil.scala @@ -160,8 +160,8 @@ trait TimeTestUtil extends TestCommon { * for arbitrary number of rounds to be ingested by the store in between the two calls to the Scan API, resulting in * test failures. * - * TODO(#5317): Modify this to be less susceptible to flakes. - * TODO (#7609): consider using automation control + * TODO(DACH-NY/canton-network-node#5317): Modify this to be less susceptible to flakes. + * TODO (#996): consider using automation control */ @nowarn("msg=match may not be exhaustive") def advanceTimeAndWaitForRoundAutomation( diff --git a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/WalletTestUtil.scala b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/WalletTestUtil.scala index e5d2a55a9d..43b7318c49 100644 --- a/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/WalletTestUtil.scala +++ b/apps/app/src/test/scala/org/lfdecentralizedtrust/splice/util/WalletTestUtil.scala @@ -489,7 +489,7 @@ trait WalletTestUtil extends TestCommon with AnsTestUtil { entryUrl: String = testEntryUrl, entryDescription: String = testEntryDescription, ) = { - // TODO(#8300) global domain can be disconnected and reconnected after config of sequencer connections changed + // TODO(#979) global domain can be disconnected and reconnected after config of sequencer connections changed retryCommandSubmission( ansExternalApp.createAnsEntry(entryName, entryUrl, entryDescription) ) @@ -573,7 +573,7 @@ trait WalletTestUtil extends TestCommon with AnsTestUtil { val receiverAmounts = Seq( receiverAmount(userParty, amount, unit) ) - // TODO(#8300) global domain can be disconnected and reconnected after config of sequencer connections changed + // TODO(#979) global domain can be disconnected and reconnected after config of sequencer connections changed retryCommandSubmission( createPaymentRequest( participantClientWithAdminToken, diff --git a/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts b/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts index db0511a655..bcc6db2bb4 100644 --- a/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts +++ b/apps/common/frontend-test-handlers/src/mocks/helpers/dso-config-helper.ts @@ -34,7 +34,7 @@ export function getDsoRulesConfig( { state: 'DS_Operational', cometBftGenesisJson: - 'TODO(#4900): share CometBFT genesis.json of sv1 via DsoRules config.', + 'TODO(DACH-NY/canton-network-node#4900): share CometBFT genesis.json of sv1 via DsoRules config.', acsCommitmentReconciliationInterval: acsCommitmentReconciliationInterval, }, ], @@ -124,7 +124,7 @@ export function getExpectedDsoRulesConfigDiffsHTML( return ( '
  • actionConfirmationTimeout
    {\n' +
         '  "microseconds": "3600000000"\n' +
    -    `}
  • decentralizedSynchronizer
    • activeSynchronizerId
      "global-domain::1220d57d4ce92ad14bb5647b453f2ba69c721e69810ca7d376d2c1455323a6763c37"
    • lastSynchronizerId
      "global-domain::1220d57d4ce92ad14bb5647b453f2ba69c721e69810ca7d376d2c1455323a6763c37"
    • synchronizers
      • 0
        • 0
          "global-domain::1220d57d4ce92ad14bb5647b453f2ba69c721e69810ca7d376d2c1455323a6763c37"
        • 1
          • acsCommitmentReconciliationInterval
            "${originalAcsCommitmentReconciliationInterval}"
            "${replacementAcsCommitmentReconciliationInterval}"
          • cometBftGenesisJson
            "TODO(#4900): share CometBFT genesis.json of sv1 via DsoRules config."
          • state
            "DS_Operational"
        • dsoDelegateInactiveTimeout
          {\n` +
          +    `}
        • decentralizedSynchronizer
          • activeSynchronizerId
            "global-domain::1220d57d4ce92ad14bb5647b453f2ba69c721e69810ca7d376d2c1455323a6763c37"
          • lastSynchronizerId
            "global-domain::1220d57d4ce92ad14bb5647b453f2ba69c721e69810ca7d376d2c1455323a6763c37"
          • synchronizers
            • 0
              • 0
                "global-domain::1220d57d4ce92ad14bb5647b453f2ba69c721e69810ca7d376d2c1455323a6763c37"
              • 1
                • acsCommitmentReconciliationInterval
                  "${originalAcsCommitmentReconciliationInterval}"
                  "${replacementAcsCommitmentReconciliationInterval}"
                • cometBftGenesisJson
                  "TODO(DACH-NY/canton-network-node#4900): share CometBFT genesis.json of sv1 via DsoRules config."
                • state
                  "DS_Operational"
                • dsoDelegateInactiveTimeout
                  {\n` +
                       '  "microseconds": "70000000"\n' +
                       '}
                • maxTextLength
                  "1024"
                • nextScheduledSynchronizerUpgrade
                  null
                • numMemberTrafficContractsThreshold
                  "5"
                • numUnclaimedRewardsThreshold
                  "10"
                • svOnboardingConfirmedTimeout
                  {\n' +
                       '  "microseconds": "3600000000"\n' +
                  diff --git a/apps/common/frontend/src/__tests__/votes/votes.test.tsx b/apps/common/frontend/src/__tests__/votes/votes.test.tsx
                  index c1c9150a27..e559d73050 100644
                  --- a/apps/common/frontend/src/__tests__/votes/votes.test.tsx
                  +++ b/apps/common/frontend/src/__tests__/votes/votes.test.tsx
                  @@ -146,7 +146,7 @@ describe('Votes list should', () => {
                       const actionNeeded = await screen.findByText('Action Needed');
                       expect(actionNeeded).toBeDefined();
                       fireEvent.click(actionNeeded);
                  -    // TODO(#15151): Test diffs for SRARC_UpdateSvRewardWeight
                  +    // TODO(#712): Test diffs for SRARC_UpdateSvRewardWeight
                       const actionNeededRows = await screen.findAllByText('SRARC_UpdateSvRewardWeight');
                       expect(actionNeededRows).toHaveLength(2);
                     });
                  diff --git a/apps/common/frontend/src/components/votes/ActionView.tsx b/apps/common/frontend/src/components/votes/ActionView.tsx
                  index 57b3414618..f196464eda 100644
                  --- a/apps/common/frontend/src/components/votes/ActionView.tsx
                  +++ b/apps/common/frontend/src/components/votes/ActionView.tsx
                  @@ -106,7 +106,7 @@ function findAmuletRulesScheduleItemToCompareAgainst(
                     if (isExecutedOrRejected) {
                       if (!latestAddAction) {
                         if (!latestUpdateAction) {
                  -        //TODO(#14813): Store a copy of the initial DsoRules and AmuletRules to diff against initial configs
                  +        //TODO(#934): Store a copy of the initial DsoRules and AmuletRules to diff against initial configs
                           return ['initial', defaultConfig];
                         } else {
                           return parseAmuletRulesAction(latestUpdateAction);
                  @@ -253,7 +253,7 @@ export const ActionView: React.FC<{
                             
                           );
                         }
                  -      // TODO(#15151): implement diffs for UpdateSvRewardWeight
                  +      // TODO(#712): implement diffs for UpdateSvRewardWeight
                         case 'SRARC_UpdateSvRewardWeight': {
                           return (
                             <>
                  @@ -481,7 +481,7 @@ const AddFutureConfigValueTable: React.FC<{
                     const confirmationDialogPropsWithDiffs = confirmationDialogProps
                       ? {
                           ...confirmationDialogProps,
                  -        // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +        // TODO(#904): Fix inflight requests diffs or completely remove them
                           children: ,
                         }
                       : undefined;
                  @@ -501,7 +501,7 @@ const AddFutureConfigValueTable: React.FC<{
                           }}
                           accordionList={{
                             unfoldedAccordions: unfoldedAccordions,
                  -          // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +          // TODO(#904): Fix inflight requests diffs or completely remove them
                             foldedAccordions: [],
                           }}
                         />
                  @@ -554,7 +554,7 @@ const RemoveFutureConfigValueTable: React.FC<{
                         )
                       : undefined;
                   
                  -  // TODO(#15154): Implement config diffs of CRARC_RemoveFutureAmuletConfigSchedule action
                  +  // TODO(DACH-NY/canton-network-node#15154): Implement config diffs of CRARC_RemoveFutureAmuletConfigSchedule action
                     return (
                       <>
                         {amuletConfigToCompareWith && (
                  @@ -684,7 +684,7 @@ const UpdateFutureConfigValueTable: React.FC<{
                                   },
                                 ]
                               : [],
                  -          // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +          // TODO(#904): Fix inflight requests diffs or completely remove them
                             foldedAccordions: [],
                           }}
                         />
                  @@ -785,7 +785,7 @@ const SetAmuletConfigValueTable: React.FC<{
                     const confirmationDialogPropsWithDiffs = confirmationDialogProps
                       ? {
                           ...confirmationDialogProps,
                  -        // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +        // TODO(#904): Fix inflight requests diffs or completely remove them
                           children: ,
                         }
                       : undefined;
                  @@ -797,7 +797,7 @@ const SetAmuletConfigValueTable: React.FC<{
                           actionName={amuletAction.tag}
                           accordionList={{
                             unfoldedAccordions: unfoldedAccordions,
                  -          // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +          // TODO(#904): Fix inflight requests diffs or completely remove them
                             foldedAccordions: [],
                           }}
                         />
                  @@ -897,7 +897,7 @@ const SetDsoConfigValueTable: React.FC<{
                     const confirmationDialogPropsWithDiffs = confirmationDialogProps
                       ? {
                           ...confirmationDialogProps,
                  -        // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +        // TODO(#904): Fix inflight requests diffs or completely remove them
                           children: ,
                         }
                       : undefined;
                  @@ -909,7 +909,7 @@ const SetDsoConfigValueTable: React.FC<{
                           actionName={dsoAction.tag}
                           accordionList={{
                             unfoldedAccordions: unfoldedAccordions,
                  -          // TODO(#18846): Fix inflight requests diffs or completely remove them
                  +          // TODO(#904): Fix inflight requests diffs or completely remove them
                             foldedAccordions: [],
                           }}
                         />
                  diff --git a/apps/common/frontend/src/utils/auth.ts b/apps/common/frontend/src/utils/auth.ts
                  index 8f7be7c457..f98ec09dbe 100644
                  --- a/apps/common/frontend/src/utils/auth.ts
                  +++ b/apps/common/frontend/src/utils/auth.ts
                  @@ -11,7 +11,7 @@ export const oidcAuthToProviderProps = (config: AuthConfig): AuthProviderProps =
                   
                       // We include the `openid` scope to comply with the OIDC spec, which requires this scope to be present:
                       // see https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest.
                  -    // TODO(#16509): we don't do that for tokens that access the Ledger API server as the Ledger API server does not like the multiple audiences returned by Auth0 when also requesting the openid scope.
                  +    // TODO(DACH-NY/canton-network-node#16509): we don't do that for tokens that access the Ledger API server as the Ledger API server does not like the multiple audiences returned by Auth0 when also requesting the openid scope.
                       const openid_scope = token_scope !== 'daml_ledger_api' ? 'openid' : null;
                   
                       // We include the `offline_access` scope to tell auth0 we want refresh tokens when we first authenticate.
                  diff --git a/apps/common/frontend/src/utils/voteRequests.ts b/apps/common/frontend/src/utils/voteRequests.ts
                  index 912070b8f6..5e9ae30362 100644
                  --- a/apps/common/frontend/src/utils/voteRequests.ts
                  +++ b/apps/common/frontend/src/utils/voteRequests.ts
                  @@ -90,7 +90,7 @@ export function getDsoConfigToCompareWith(
                     dsoAction: { tag: 'SRARC_SetConfig'; value: DsoRules_SetConfig },
                     dsoInfosQuery: UseQueryResult
                   ): [string, DsoRulesConfig | undefined] {
                  -  // TODO(#15180): Implement effectivity on all actions
                  +  // TODO(DACH-NY/canton-network-node#15180): Implement effectivity on all actions
                     // we need to subtract 1 second because the effectiveAt differs slightly from the completedAt in DsoRules-based actions
                     const latestConfig =
                       effectiveAt && tableType
                  @@ -127,7 +127,7 @@ export function getAmuletConfigToCompareWith(
                     amuetAction: { tag: 'CRARC_SetConfig'; value: AmuletRules_SetConfig },
                     dsoInfosQuery: UseQueryResult
                   ): [string, AmuletConfig] | undefined {
                  -  // TODO(#15180): Implement effectivity on all actions
                  +  // TODO(DACH-NY/canton-network-node#15180): Implement effectivity on all actions
                     // we need to subtract 1 second because the effectiveAt differs slightly from the completedAt in DsoRules-based actions
                     const latestConfig =
                       effectiveAt && tableType
                  diff --git a/apps/common/frontend/vite.config.mjs b/apps/common/frontend/vite.config.mjs
                  index cb427580c7..bcaa0942b4 100644
                  --- a/apps/common/frontend/vite.config.mjs
                  +++ b/apps/common/frontend/vite.config.mjs
                  @@ -16,7 +16,7 @@ export default defineConfig(({ mode }) => {
                       },
                       build: {
                         outDir: 'build',
                  -      // TODO(#7672): reduce/remove this limit
                  +      // TODO(#854): reduce/remove this limit
                         chunkSizeWarningLimit: 4800,
                         commonjsOptions: {
                           transformMixedEsModules: true,
                  diff --git a/apps/common/src/main/resources/db/migration/README.md b/apps/common/src/main/resources/db/migration/README.md
                  index cac55eb392..7a637a85c9 100644
                  --- a/apps/common/src/main/resources/db/migration/README.md
                  +++ b/apps/common/src/main/resources/db/migration/README.md
                  @@ -87,7 +87,7 @@ def fromCreatedEvent(
                                         createdEvent: CreatedEvent,
                                         createdEventBlob: ByteString,
                                       ): Either[String, ScanAcsStoreRowData] = {
                  -  // TODO(#8125) Switch to map lookups instead
                  +  // TODO(DACH-NY/canton-network-node#8125) Switch to map lookups instead
                     // [omitted the match and many branches, you'd add your own]
                     case t if t == QualifiedName(TheContract.TEMPLATE_ID_WITH_PACKAGE_ID) =>
                       tryToDecode(TheContract.COMPANION, createdEvent, createdEventBlob) {
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/admin/api/client/ApiClientRequestLogger.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/admin/api/client/ApiClientRequestLogger.scala
                  index e81cbcf3f2..5504d05962 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/admin/api/client/ApiClientRequestLogger.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/admin/api/client/ApiClientRequestLogger.scala
                  @@ -67,7 +67,7 @@ class ApiClientRequestLogger(
                         }
                       } else {
                         val tidInfo =
                  -        // TODO(#9754): consider flushing out empty and missing trace contexts, as they typically indicate missed opportunities to simplify debugging
                  +        // TODO(#969): consider flushing out empty and missing trace contexts, as they typically indicate missed opportunities to simplify debugging
                           if (optCallerContext.isEmpty) "no caller tid".unquoted
                           else if (callerTraceContext == requestTraceContext) "empty caller tid".unquoted
                           else requestTraceContext.showTraceId
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingParallelTaskExecutionTrigger.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingParallelTaskExecutionTrigger.scala
                  index 27c997dba0..a66549c1ff 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingParallelTaskExecutionTrigger.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingParallelTaskExecutionTrigger.scala
                  @@ -33,7 +33,7 @@ abstract class PollingParallelTaskExecutionTrigger[T: Pretty]()(implicit
                     protected def retrieveTasks()(implicit tc: TraceContext): Future[Seq[T]]
                   
                     /** Returns whether some useful work was done, i.e., at least one task completed. */
                  -  // TODO(#6856): Reconsider/adapt this logic w.r.t. SV task-based triggers that can busy-loop for followers.
                  +  // TODO(DACH-NY/canton-network-internal#495): Reconsider/adapt this logic w.r.t. SV task-based triggers that can busy-loop for followers.
                     override def performWorkIfAvailable()(implicit traceContext: TraceContext): Future[Boolean] =
                       for {
                         tasks <- retrieveTasks()
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingTrigger.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingTrigger.scala
                  index 540ec87279..494eb94c92 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingTrigger.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/PollingTrigger.scala
                  @@ -66,7 +66,7 @@ trait PollingTrigger extends Trigger with FlagCloseableAsync {
                               "performWorkIfNotPaused may not be called concurrently",
                             )
                             runningTaskFinishedVar = Some(Promise())
                  -          // TODO(#8526) refactor for better latency reporting
                  +          // TODO(#842) refactor for better latency reporting
                             val latencyTimer = metrics.latency.startAsync()
                             metrics.iterations.mark()
                             waitForReadyToWork()
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/TaskbasedTrigger.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/TaskbasedTrigger.scala
                  index f388159c98..8c8f744556 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/TaskbasedTrigger.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/TaskbasedTrigger.scala
                  @@ -77,7 +77,7 @@ abstract class TaskbasedTrigger[T: Pretty](
                       // Creating a new trace here, as multiple requests can be processed in parallel.
                       withNewTrace(this.getClass.getSimpleName) { implicit traceContext => _ =>
                         def processTaskWithStalenessCheck(): Future[TaskOutcome] =
                  -        // TODO(#8526) refactor for better latency reporting
                  +        // TODO(#842) refactor for better latency reporting
                           metrics.latency
                             .timeFuture(completeTask(task))
                             .recoverWith { case ex =>
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/UpdateIngestionService.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/UpdateIngestionService.scala
                  index 21822b525b..f188272ab5 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/UpdateIngestionService.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/automation/UpdateIngestionService.scala
                  @@ -100,7 +100,7 @@ class UpdateIngestionService(
                         offset: Long
                     )(implicit traceContext: TraceContext): Future[Unit] = {
                       for {
                  -      // TODO(#5534): stream contracts instead of ingesting them as a single Seq
                  +      // TODO(#863): stream contracts instead of ingesting them as a single Seq
                         (acs, incompleteOut, incompleteIn) <- connection.activeContracts(filter, offset)
                         _ <- ingestionSink.ingestAcs(
                           offset,
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/AutomationConfig.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/AutomationConfig.scala
                  index 4043cd6005..cb5c4403ff 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/AutomationConfig.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/AutomationConfig.scala
                  @@ -54,7 +54,7 @@ case class AutomationConfig(
                       enableAutomaticRewardsCollectionAndAmuletMerging: Boolean = true,
                       /** Allows disabling expiration of validator faucets. This is currently required
                         * as this does not work with unavailable validators.
                  -      * TODO(#11828) Remove this option
                  +      * TODO(DACH-NY/canton-network-node#11828) Remove this option
                         */
                       enableExpireValidatorFaucet: Boolean = false,
                       /** Only intended for testing. Disables the expiration of Amulet.
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala
                  index b786d5d2b0..9095e308ce 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/config/SpliceConfig.scala
                  @@ -49,7 +49,7 @@ case class SharedSpliceAppParameters(
                       override val processingTimeouts: ProcessingTimeout,
                       requestTimeout: NonNegativeDuration,
                       upgradesConfig: UpgradesConfig = UpgradesConfig(),
                  -    // TODO(#736): likely remove all of the following:
                  +    // TODO(DACH-NY/canton-network-node#736): likely remove all of the following:
                       override val cachingConfigs: CachingConfigs,
                       override val enableAdditionalConsistencyChecks: Boolean,
                       override val enablePreviewFeatures: Boolean,
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBase.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBase.scala
                  index aa41535927..960b900eaa 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBase.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBase.scala
                  @@ -226,7 +226,7 @@ abstract class NodeBase[State <: AutoCloseable & HasHealth](
                   
                     override type Status = NodeBase.NodeStatus
                   
                  -  // TODO(#736): fork or generalize status definition.
                  +  // TODO(DACH-NY/canton-network-node#736): fork or generalize status definition.
                     override final def status = {
                       NodeBase.NodeStatus(
                         uid = UniqueIdentifier.tryFromProtoPrimitive(s"amulet::$name"),
                  @@ -313,7 +313,7 @@ abstract class NodeBase[State <: AutoCloseable & HasHealth](
                         _ => {
                           val startTime = Instant.now()
                           logger.debug(s"$appInitMessage: $description started")(tc)
                  -        // TODO(#5419): here we could pass on the trace context to inner function to make sure all log lines
                  +        // TODO(DACH-NY/canton-network-node#5419): here we could pass on the trace context to inner function to make sure all log lines
                           // produced by this initialization step are tagged with the same trace id.
                           // However, some of our helper methods hold onto the trace context and use it for all future
                           // operations. This would mean that the trace context would be used for operations that are
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBootstrapBase.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBootstrapBase.scala
                  index 43a7820595..624aac2b01 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBootstrapBase.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/NodeBootstrapBase.scala
                  @@ -33,7 +33,9 @@ object NodeBootstrap {
                   /** Modelled after CantonNodeBootstrap
                     */
                   trait NodeBootstrap[+N <: CantonNode]
                  -    extends CantonNodeBootstrap[N] // TODO(#736): remove the dependency on this trait.
                  +    extends CantonNodeBootstrap[
                  +      N
                  +    ] // TODO(DACH-NY/canton-network-node#736): remove the dependency on this trait.
                       {
                   
                     def name: InstanceName
                  @@ -49,7 +51,7 @@ trait NodeBootstrap[+N <: CantonNode]
                   
                     def getNode: Option[N]
                   
                  -  // TODO(#736): following methods are only here because of the CantonNodeBootstrap trait
                  +  // TODO(DACH-NY/canton-network-node#736): following methods are only here because of the CantonNodeBootstrap trait
                     def crypto: Option[Crypto] = ???
                   
                   }
                  @@ -143,7 +145,7 @@ abstract class NodeBootstrapBase[
                     def getNode: Option[T] = ref.get()
                     def isInitialized: Boolean = ref.get().isDefined
                   
                  -  // TODO(#736): obviously we don't need this. however, removing this likely requires a Canton upstream change.
                  +  // TODO(DACH-NY/canton-network-node#736): obviously we don't need this. however, removing this likely requires a Canton upstream change.
                     // This absolutely must be a "def", because it is used during class initialization.
                     protected def connectionPoolForParticipant: Boolean = false
                   
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminConnection.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminConnection.scala
                  index c2fd8326f9..3448b5600c 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminConnection.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminConnection.scala
                  @@ -293,7 +293,7 @@ class ParticipantAdminConnection(
                         show"Downloading ACS snapshot from domain $filterSynchronizerId, for parties $parties at timestamp $timestamp"
                       )
                       val requestComplete = Promise[ByteString]()
                  -    // TODO(#3298) just concatenate the byteString here. Make it scale to 2M contracts.
                  +    // TODO(DACH-NY/canton-network-node#3298) just concatenate the byteString here. Make it scale to 2M contracts.
                       val observer = new GrpcByteChunksToByteArrayObserver[ExportAcsOldResponse](requestComplete)
                       runCmd(
                         ParticipantAdminCommands.ParticipantRepairManagement.ExportAcsOld(
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminDarsConnection.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminDarsConnection.scala
                  index 04caad8a9e..39acf7f757 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminDarsConnection.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminDarsConnection.scala
                  @@ -236,7 +236,7 @@ trait ParticipantAdminDarsConnection {
                             logger.warn(
                               s"Vetted state contains multiple entries on domain $domain for $participantId: $other. Will use the last entry"
                             )
                  -          // TODO(#18175) - remove once canton can handle this and fixed the issue
                  +          // TODO(DACH-NY/canton-network-node#18175) - remove once canton can handle this and fixed the issue
                             other.maxBy(_.base.serial)
                         }
                       }
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/RetryProvider.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/RetryProvider.scala
                  index f47bb29568..cf9522da1b 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/RetryProvider.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/RetryProvider.scala
                  @@ -63,7 +63,7 @@ final class RetryProvider(
                   
                     // Keep track of promises directly to avoid the promise accumulating references to stale futures that it should complete.
                     // For more details check https://github.com/DACH-NY/canton-network-node/issues/9178
                  -  // TODO(#4405) Derive from FlagCloseable isClosing state.
                  +  // TODO(DACH-NY/canton-network-node#4405) Derive from FlagCloseable isClosing state.
                     private val promisesRunningThatAreShutdownAware: java.util.Set[Promise[UnlessShutdown[?]]] =
                       Collections.synchronizedSet(
                         Collections.newSetFromMap(
                  @@ -608,7 +608,7 @@ object RetryProvider {
                                 case _
                                     if retryableStatusCodes.contains(statusCode) ||
                                       (
                  -                      // TODO(#3933) This is temporarily added to retry on INVALID_ARGUMENT errors when submitting transactions during topology change.
                  +                      // TODO(DACH-NY/canton-network-node#3933) This is temporarily added to retry on INVALID_ARGUMENT errors when submitting transactions during topology change.
                                         statusCode == Status.Code.INVALID_ARGUMENT && description.contains(
                                           "An error occurred. Please contact the operator and inquire about the request"
                                         ) ||
                  @@ -621,7 +621,7 @@ object RetryProvider {
                                           statusCode == Status.Code.INVALID_ARGUMENT &&
                                           raw"The following stakeholders are not active on the target synchronizer".r
                                             .findFirstMatchIn(description)
                  -                          .isDefined || // TODO(#10160) Remove this once Canton fixes the error code.
                  +                          .isDefined || // TODO(#822) Remove this once Canton fixes the error code.
                                           (statusCode == Status.Code.INVALID_ARGUMENT &&
                                             description.contains(
                                               SequencerErrors.MaxSequencingTimeTooFar.id
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SequencerAdminConnection.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SequencerAdminConnection.scala
                  index 1126e7dcf6..9d60a27544 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SequencerAdminConnection.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SequencerAdminConnection.scala
                  @@ -98,7 +98,7 @@ class SequencerAdminConnection(
                     )(implicit traceContext: TraceContext): Future[InitializeSequencerResponse] =
                       runCmd(
                         SequencerAdminCommands.InitializeFromGenesisState(
                  -        // TODO(#10953) Stop doing that.
                  +        // TODO(DACH-NY/canton-network-node#10953) Stop doing that.
                           topologySnapshot.toByteString(domainParameters.protocolVersion),
                           domainParameters,
                         )
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceLedgerConnection.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceLedgerConnection.scala
                  index bd32c45651..1f6963df6f 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceLedgerConnection.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceLedgerConnection.scala
                  @@ -1150,7 +1150,7 @@ class SpliceLedgerConnection(
                                  completionOffsetCallback(offset).map(_ => ())
                                )
                              } else {
                  -             // TODO(#14568) Once we ingest data for external parties, block on the offset in all cases
                  +             // TODO(DACH-NY/canton-network-node#14568) Once we ingest data for external parties, block on the offset in all cases
                                FutureUnlessShutdown.unit
                              }).map(_ => completion.updateId)
                           }
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceStatus.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceStatus.scala
                  index 486da503ce..d8e261c202 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceStatus.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/SpliceStatus.scala
                  @@ -21,7 +21,7 @@ case class SpliceStatus(
                       ports: Map[String, Port],
                       active: Boolean,
                   ) extends NodeStatus.Status {
                  -  // TODO(#3859) Set this to something useful.
                  +  // TODO(DACH-NY/canton-network-node#3859) Set this to something useful.
                     override def components: Seq[ComponentStatus] = Seq.empty
                   
                     private[environment] def portsString(ports: Map[String, Port]): String =
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TopologyAdminConnection.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TopologyAdminConnection.scala
                  index 7ca4b668db..b3bfe26aeb 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TopologyAdminConnection.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TopologyAdminConnection.scala
                  @@ -1275,7 +1275,7 @@ abstract class TopologyAdminConnection(
                           member.filterString,
                         )
                       ).map(
                  -      // TODO(#14815) Canton currently compares member IDs by string prefix instead of strict equality of
                  +      // TODO(#720) Canton currently compares member IDs by string prefix instead of strict equality of
                         // member IDs in ListSynchronizerTrustCertificate, so we apply another filter for equality of the member ID
                         _.filter(r => r.item.participantId.member.filterString == member.filterString)
                           .map(r =>
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TrafficBalanceService.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TrafficBalanceService.scala
                  index a150b93550..08fa3f84a3 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TrafficBalanceService.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/TrafficBalanceService.scala
                  @@ -56,7 +56,7 @@ object TrafficBalanceService {
                         //
                         // This is why we translate the NOT_FOUND into a None here and just ignore the traffic balance
                         // check in this case.
                  -      // TODO(#6644): Revisit this once Canton initializes the traffic state on sequencer connection.
                  +      // TODO(DACH-NY/canton-network-node#6644): Revisit this once Canton initializes the traffic state on sequencer connection.
                         participantAdminConnection
                           .getParticipantTrafficState(synchronizerId: SynchronizerId)
                           .transform {
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/LedgerClient.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/LedgerClient.scala
                  index a2788b3aea..0af8ea05c1 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/LedgerClient.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/LedgerClient.scala
                  @@ -803,7 +803,7 @@ object LedgerClient {
                             )
                   
                           case TU.Reassignment(x) =>
                  -          // TODO(#18782) Support reassignment batching
                  +          // TODO(DACH-NY/canton-network-internal#361) Support reassignment batching
                             val event: lapi.reassignment.ReassignmentEvent = x.events match {
                               case Seq(event) => event
                               case events =>
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/Reassignment.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/Reassignment.scala
                  index 64637eb619..9435b21242 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/Reassignment.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ledger/api/Reassignment.scala
                  @@ -27,7 +27,7 @@ object Reassignment {
                     private[splice] def fromProto(
                         proto: multidomain.Reassignment
                     ): Reassignment[ReassignmentEvent] = {
                  -    // TODO(#18782) Support reassignment batching
                  +    // TODO(DACH-NY/canton-network-internal#361) Support reassignment batching
                       val singleEvent = proto.events match {
                         case Seq(e) => e
                         case events =>
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/history/AmuletEvent.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/history/AmuletEvent.scala
                  index 847fa1789a..1f84d35585 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/history/AmuletEvent.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/history/AmuletEvent.scala
                  @@ -271,7 +271,7 @@ object AmuletExpire
                         choice = amuletCodegen.Amulet.CHOICE_Amulet_Expire,
                       )
                   
                  -// TODO(#2930): This is not really a Amulet event - consider either renaming the file, or splitting it into different ones based on event "types"
                  +// TODO(DACH-NY/canton-network-node#2930): This is not really a Amulet event - consider either renaming the file, or splitting it into different ones based on event "types"
                   object OpenMiningRoundCreate {
                     type TCid = OpenMiningRound.ContractId
                     type T = OpenMiningRound
                  @@ -285,7 +285,7 @@ object OpenMiningRoundCreate {
                     }
                   }
                   
                  -// TODO(#2930): This is not really a Amulet event - consider either renaming the file, or splitting it into different ones based on event "types"
                  +// TODO(DACH-NY/canton-network-node#2930): This is not really a Amulet event - consider either renaming the file, or splitting it into different ones based on event "types"
                   object ClosedMiningRoundCreate {
                     type TCid = ClosedMiningRound.ContractId
                     type T = ClosedMiningRound
                  @@ -299,7 +299,7 @@ object ClosedMiningRoundCreate {
                     }
                   }
                   
                  -// TODO(#2930): This is not really a Amulet event - consider either renaming the file, or splitting it into different ones based on event "types"
                  +// TODO(DACH-NY/canton-network-node#2930): This is not really a Amulet event - consider either renaming the file, or splitting it into different ones based on event "types"
                   object AppRewardCreate {
                     type TCid = amuletCodegen.AppRewardCoupon.ContractId
                     type T = amuletCodegen.AppRewardCoupon
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/setup/NodeInitializer.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/setup/NodeInitializer.scala
                  index 8b8a743b92..82d70eae22 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/setup/NodeInitializer.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/setup/NodeInitializer.scala
                  @@ -64,7 +64,7 @@ class NodeInitializer(
                         namespaceKey <- connection.generateKeyPair("namespace", SigningKeyUsage.NamespaceOnly)
                   
                         // All nodes need a signing key
                  -      // TODO(#16017) consider splitting keys instead of using `All`
                  +      // TODO(DACH-NY/canton-network-internal#392) consider splitting keys instead of using `All`
                         signingKey <- connection.generateKeyPair("signing", SigningKeyUsage.All)
                   
                         // Only participants need an encryption key, but for simplicity every node gets one
                  @@ -168,7 +168,7 @@ class NodeInitializer(
                         _ <- ownerToKeyMapping match {
                           case Some(mapping) =>
                             for {
                  -            // TODO(#16017) consider splitting keys instead of using `All`
                  +            // TODO(DACH-NY/canton-network-internal#392) consider splitting keys instead of using `All`
                               newSigningKey <- connection.generateKeyPair("signing", SigningKeyUsage.All)
                               _ <- connection.ensureOwnerToKeyMapping(
                                 member = nodeIdentity(id),
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/DsoRulesStore.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/DsoRulesStore.scala
                  index a2a81259d8..592aab70b3 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/DsoRulesStore.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/DsoRulesStore.scala
                  @@ -183,7 +183,7 @@ object DsoRulesStore {
                   
                       def currentSynchronizerNodeConfigs()
                           : Seq[splice.dso.decentralizedsynchronizer.SynchronizerNodeConfig] = {
                  -      // TODO(#4906): make its callers work with soft-domain migration
                  +      // TODO(#998): make its callers work with soft-domain migration
                         svNodeStates.values
                           .flatMap(_.payload.state.synchronizerNodes.asScala.get(dsoRules.domain.toProtoPrimitive))
                           .toSeq
                  @@ -248,7 +248,7 @@ object DsoRulesStore {
                           store: MultiDomainAcsStore
                       )(implicit tc: TraceContext, ec: ExecutionContext): Future[Boolean] =
                         for {
                  -        // TODO(#4906): check whether we also need to compare the domain-id to detect staleness
                  +        // TODO(#998): check whether we also need to compare the domain-id to detect staleness
                           checkDsoRules <- store.lookupContractById(splice.dsorules.DsoRules.COMPANION)(
                             dsoRules.contractId
                           )
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/Limit.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/Limit.scala
                  index 4cf0c467e4..3478d017a7 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/Limit.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/Limit.scala
                  @@ -14,7 +14,7 @@ sealed trait Limit {
                   
                   object Limit {
                   
                  -  // TODO (#12610): make configurable
                  +  // TODO (#767): make configurable
                     val MaxPageSize: Int = 1000
                     val DefaultLimit: Limit = HardLimit.tryCreate(MaxPageSize)
                   
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/MultiDomainAcsStore.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/MultiDomainAcsStore.scala
                  index f72245729a..079d3bee10 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/MultiDomainAcsStore.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/MultiDomainAcsStore.scala
                  @@ -346,7 +346,7 @@ object MultiDomainAcsStore {
                         ],
                     ) extends ContractFilter[R] {
                   
                  -    // TODO(#9197) Drop this once the ledger API exposes package names
                  +    // TODO(#829) Drop this once the ledger API exposes package names
                       // on the read path.
                       private val templateFiltersWithoutPackageNames =
                         templateFilters.view.map { case (name, filter) =>
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/TransferInputStore.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/TransferInputStore.scala
                  index f484646b2e..6f42648737 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/TransferInputStore.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/TransferInputStore.scala
                  @@ -65,7 +65,7 @@ trait TransferInputStore extends AppStore with LimitHelpers {
                       } yield applyLimit(
                         "listSortedValidatorRewards",
                         limit,
                  -      // TODO(#6119) Perform filter, sort, and limit in the database query
                  +      // TODO(DACH-NY/canton-network-node#6119) Perform filter, sort, and limit in the database query
                         rewards.view
                           .filter(rw =>
                             activeIssuingRoundsO match {
                  @@ -95,7 +95,7 @@ trait TransferInputStore extends AppStore with LimitHelpers {
                         "listSortedAppRewards",
                         limit,
                         rewards
                  -        // TODO(#6119) Perform filter, sort, and limit in the database query
                  +        // TODO(DACH-NY/canton-network-node#6119) Perform filter, sort, and limit in the database query
                           .flatMap { rw =>
                             val issuingO = issuingRoundsMap.get(rw.payload.round)
                             issuingO
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/UpdateHistory.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/UpdateHistory.scala
                  index 53db43bad2..6d52ce4033 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/UpdateHistory.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/UpdateHistory.scala
                  @@ -110,7 +110,7 @@ class UpdateHistory(
                           includeCreatedEventBlob = false,
                         )
                   
                  -      // TODO(#12780): This can be removed eventually
                  +      // TODO(#948): This can be removed eventually
                         def issue12777Workaround()(implicit tc: TraceContext): Future[Unit] = {
                           val action = for {
                             oldHistoryIdOpt <- sql"""
                  @@ -1410,7 +1410,7 @@ class UpdateHistory(
                           Integer.valueOf(EventId.nodeIdFromEventId(row.eventId)) -> row.toCreatedEvent.event
                         )
                         .toMap
                  -    // TODO(#17370) - remove this conversion as it's costly
                  +    // TODO(#640) - remove this conversion as it's costly
                       val nodesWithChildren = exerciseRows
                         .map(exercise =>
                           EventId.nodeIdFromEventId(exercise.eventId) -> exercise.childEventIds
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/VotesStore.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/VotesStore.scala
                  index fb2313f72b..458fedf2f1 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/VotesStore.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/VotesStore.scala
                  @@ -86,7 +86,7 @@ trait ActiveVotesStore extends AppStore with DsoRulesStore with HasAmuletRules {
                               if (dsoGovernanceVersion >= DarResources.dsoGovernance_0_1_11.metadata.version) {
                                 majorityRejected || majorityAccepted
                               } else {
                  -              // TODO(#16139): get rid of this case
                  +              // TODO(#925): get rid of this case
                                 votes.size >= dsoRules.payload.svs.size()
                               }
                           }
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/db/DbMultiDomainAcsStore.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/db/DbMultiDomainAcsStore.scala
                  index ef97d8a178..8f8bb7af52 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/db/DbMultiDomainAcsStore.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/store/db/DbMultiDomainAcsStore.scala
                  @@ -222,7 +222,7 @@ final class DbMultiDomainAcsStore[TXE](
                     def hasArchived(ids: Seq[ContractId[?]])(implicit
                         traceContext: TraceContext
                     ): Future[Boolean] =
                  -    // TODO(#6458): implement this as a single DB query
                  +    // TODO(#838): implement this as a single DB query
                       Future.sequence(ids.map(lookupContractStateById)).map(_.exists(_.isEmpty))
                   
                     override def listContracts[C, TCid <: ContractId[_], T](
                  @@ -654,7 +654,7 @@ final class DbMultiDomainAcsStore[TXE](
                     ): Source[SelectFromAcsTableWithStateResult, NotUsed] = {
                       Source
                         .future(
                  -        // TODO(#5534): this is currently waiting until the whole ACS has been ingested.
                  +        // TODO(#863): this is currently waiting until the whole ACS has been ingested.
                           //  After switching to streaming ACS ingestion, we could start streaming contracts while
                           //  the ACS is being ingested.
                           waitUntilAcsIngested()
                  @@ -1062,7 +1062,7 @@ final class DbMultiDomainAcsStore[TXE](
                                   offset,
                                   DBIO
                                     .sequence(
                  -                    // TODO (#5643): batch inserts
                  +                    // TODO (#989): batch inserts
                                       todoAcs.map { ac =>
                                         for {
                                           _ <- doIngestAcsInsert(
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/ContractCompanions.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/ContractCompanions.scala
                  index 7a445ca7ba..4717425b6d 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/ContractCompanions.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/ContractCompanions.scala
                  @@ -27,7 +27,7 @@ import org.lfdecentralizedtrust.splice.codegen.java.{
                   
                   import scala.jdk.CollectionConverters.*
                   
                  -// TODO (#17282): Replace with usage of com.digitalasset.transcode
                  +// TODO (#916): Replace with usage of com.digitalasset.transcode
                   object ContractCompanions {
                     type C = Contract.Companion.Template[_ <: ContractId[?], _ <: DamlRecord[?]]
                     type I = Contract.Companion.Interface[_ <: ContractId[?], _ <: JavaGenContract[_ <: ContractId[
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/DisclosedContracts.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/DisclosedContracts.scala
                  index 6185536991..571bb505b5 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/DisclosedContracts.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/DisclosedContracts.scala
                  @@ -38,7 +38,7 @@ sealed abstract class DisclosedContracts {
                   
                     /** Overwrite the domain id with the domain id of the disclosed contracts as those cannot be reassigned.
                       */
                  -  // TODO(#13713) Remove this once our domain selection logic works properly with soft domain migrations
                  +  // TODO(DACH-NY/canton-network-node#13713) Remove this once our domain selection logic works properly with soft domain migrations
                     private[splice] def overwriteDomain(target: SynchronizerId): SynchronizerId
                   
                     /** Throw if any contracts with known state are not assigned to `synchronizerId`.
                  @@ -48,7 +48,7 @@ sealed abstract class DisclosedContracts {
                       this match {
                         case Empty | NE(_, `synchronizerId`) => this
                         case NE(contracts, otherSynchronizerId) =>
                  -        // TODO (#8135) invalidate contracts
                  +        // TODO (#980) invalidate contracts
                           retryableError(
                             s"disclosed contracts are not on expected domain $synchronizerId, but on $otherSynchronizerId: $contracts"
                           )
                  @@ -144,7 +144,7 @@ object DisclosedContracts {
                         }
                         if (inOtherStates.isEmpty)
                           NE(contracts ++ other.map(_.contract.toDisclosedContract), assignedDomain)
                  -      else // TODO (#8135) invalidate contracts and other
                  +      else // TODO (#980) invalidate contracts and other
                           retryableError(
                             show"contracts must match the domain of other disclosed contracts, $assignedDomain, to be disclosed: $other"
                           )
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/EventId.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/EventId.scala
                  index db740cda3a..7316051e09 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/EventId.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/EventId.scala
                  @@ -28,7 +28,7 @@ object EventId {
                       }
                     }
                   
                  -  // TODO(#17370) - remove this conversion as it's costly
                  +  // TODO(#640) - remove this conversion as it's costly
                     def lastDescendedNodeFromChildNodeIds(
                         nodeId: Int,
                         nodesWithChildren: Map[Int, Seq[Int]],
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/K8sUtil.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/K8sUtil.scala
                  index 6fd91d455f..f30dcdd1b4 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/K8sUtil.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/K8sUtil.scala
                  @@ -89,7 +89,7 @@ object K8sUtil {
                       def getPreflightToken(clientId: String)(implicit logger: Logger): Option[AuthToken] = {
                         readSecretField(preflightTokenSecretName, clientId) match {
                           case Some(secretData) =>
                  -          // TODO (#8039): remove try catch, logging and fallback to None (let it crash, which shouldn't happen)
                  +          // TODO (#852): remove try catch, logging and fallback to None (let it crash, which shouldn't happen)
                             try {
                               val token =
                                 circeDecode[Auth0PreflightTokenData](secretData).fold(throw _, identity).toAuthToken
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/LegacyOffset.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/LegacyOffset.scala
                  index 7c9fcd9e4f..cade4a4334 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/LegacyOffset.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/LegacyOffset.scala
                  @@ -47,11 +47,11 @@ object LegacyOffset {
                   
                       def assertFromString(s: String): LegacyOffset = tryFromString(s).fold(throw _, identity)
                   
                  -    // TODO(#18685) remove converter as it should be unused
                  +    // TODO(DACH-NY/canton-network-node#18685) remove converter as it should be unused
                       def assertFromStringToLongO(s: String): Option[Long] =
                         Option.unless(s.isEmpty)(assertFromString(s).toLong)
                   
                  -    // TODO(#18685) remove converter as it should be unused
                  +    // TODO(DACH-NY/canton-network-node#18685) remove converter as it should be unused
                       def assertFromStringToLong(s: String): Long =
                         assertFromStringToLongO(s).getOrElse(0L)
                   
                  diff --git a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala
                  index 1f92c2a0e3..9f0af1dece 100644
                  --- a/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala
                  +++ b/apps/common/src/main/scala/org/lfdecentralizedtrust/splice/util/SpliceUtil.scala
                  @@ -246,7 +246,7 @@ object SpliceUtil {
                     private val dummyReadVsWriteScalingFactor = 4
                   
                     // TODO(tech-debt) revisit naming here. "default" and "initial" are two things that are no longer accurate (these are used for other things as well), and consider adding more default values to methods here
                  -  // TODO(#16139) get rid of this method
                  +  // TODO(#925) get rid of this method
                     def defaultAmuletConfigSchedule(
                         initialTickDuration: NonNegativeFiniteDuration,
                         initialMaxNumInputs: Int,
                  @@ -313,7 +313,7 @@ object SpliceUtil {
                         Map(
                           dummyDomain.toProtoPrimitive -> new SynchronizerConfig(
                             dso.decentralizedsynchronizer.SynchronizerState.DS_OPERATIONAL,
                  -          "TODO(#4900): share CometBFT genesis.json of sv1 via DsoRules config.",
                  +          "TODO(DACH-NY/canton-network-node#4900): share CometBFT genesis.json of sv1 via DsoRules config.",
                             Optional.empty(),
                           )
                         ).asJava,
                  diff --git a/apps/common/src/test/scala/org/lfdecentralizedtrust/splice/store/UpdateHistoryTestBase.scala b/apps/common/src/test/scala/org/lfdecentralizedtrust/splice/store/UpdateHistoryTestBase.scala
                  index 620668c8a6..fb4d9c5ff3 100644
                  --- a/apps/common/src/test/scala/org/lfdecentralizedtrust/splice/store/UpdateHistoryTestBase.scala
                  +++ b/apps/common/src/test/scala/org/lfdecentralizedtrust/splice/store/UpdateHistoryTestBase.scala
                  @@ -343,7 +343,7 @@ object UpdateHistoryTestBase {
                     }
                   
                     private def withoutLostData(tree: TransactionTree, mode: LostDataMode): TransactionTree = {
                  -    // TODO(#17370) - remove this data loss
                  +    // TODO(#640) - remove this data loss
                       // we recalculate the last descendant id because it's lost during the ingestion and it's recalculated based on the visible events
                       val nodesWithChildren = tree.getEventsById.asScala.view.map {
                         case (nodeId, event: ExercisedEvent) =>
                  diff --git a/apps/scan/frontend/src/__tests__/setup/config.ts b/apps/scan/frontend/src/__tests__/setup/config.ts
                  index 4ee8d60fb5..c1cfbe6e6b 100644
                  --- a/apps/scan/frontend/src/__tests__/setup/config.ts
                  +++ b/apps/scan/frontend/src/__tests__/setup/config.ts
                  @@ -1,7 +1,7 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                   
                  -// TODO(#7579) -- remove duplication from default config
                  +// TODO(#986) -- remove duplication from default config
                   
                   const config = {
                     services: {
                  diff --git a/apps/scan/frontend/src/components/AppLeaderboardTable.tsx b/apps/scan/frontend/src/components/AppLeaderboardTable.tsx
                  index ef6f64bee9..d6f2724d73 100644
                  --- a/apps/scan/frontend/src/components/AppLeaderboardTable.tsx
                  +++ b/apps/scan/frontend/src/components/AppLeaderboardTable.tsx
                  @@ -26,7 +26,7 @@ export const AppLeaderboardTable: React.FC = () => {
                       case 'success': {
                         const appProviders = topAppProvidersQuery.data.providersAndRewards.map(provider => ({
                           name: provider.provider,
                  -        // TODO(#5280) - add transfer totals to API response
                  +        // TODO(DACH-NY/canton-network-node#5280) - add transfer totals to API response
                           totalRewards: BigNumber(provider.rewards),
                         }));
                   
                  diff --git a/apps/scan/frontend/src/components/ValidatorLeaderboardTable.tsx b/apps/scan/frontend/src/components/ValidatorLeaderboardTable.tsx
                  index 1470454fcd..065ae127f2 100644
                  --- a/apps/scan/frontend/src/components/ValidatorLeaderboardTable.tsx
                  +++ b/apps/scan/frontend/src/components/ValidatorLeaderboardTable.tsx
                  @@ -26,7 +26,7 @@ export const ValidatorLeaderboardTable: React.FC = () => {
                       case 'success': {
                         const topValidators = topValidatorsQuery.data.validatorsAndRewards.map(validator => ({
                           name: validator.provider,
                  -        // TODO(#5280) - add transfer totals to API response
                  +        // TODO(DACH-NY/canton-network-node#5280) - add transfer totals to API response
                           totalRewards: BigNumber(validator.rewards),
                         }));
                   
                  diff --git a/apps/scan/frontend/src/hooks/useListVotes.tsx b/apps/scan/frontend/src/hooks/useListVotes.tsx
                  index 7576085e08..350b0bbae8 100644
                  --- a/apps/scan/frontend/src/hooks/useListVotes.tsx
                  +++ b/apps/scan/frontend/src/hooks/useListVotes.tsx
                  @@ -1,6 +1,6 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                  -// TODO(#7675) - do we need this model?
                  +// TODO(DACH-NY/canton-network-node#7675) - do we need this model?
                   import { SvVote } from '@lfdecentralizedtrust/splice-common-frontend';
                   import { Contract } from '@lfdecentralizedtrust/splice-common-frontend-utils';
                   import { useScanClient } from '@lfdecentralizedtrust/splice-common-frontend/scan-api';
                  diff --git a/apps/scan/frontend/vite.config.mjs b/apps/scan/frontend/vite.config.mjs
                  index bcfec0a24a..200708baf9 100644
                  --- a/apps/scan/frontend/vite.config.mjs
                  +++ b/apps/scan/frontend/vite.config.mjs
                  @@ -16,7 +16,7 @@ export default defineConfig(({ mode }) => {
                       },
                       build: {
                         outDir: 'build',
                  -      // TODO(#7672): reduce/remove this limit
                  +      // TODO(#854): reduce/remove this limit
                         chunkSizeWarningLimit: 4800,
                         commonjsOptions: {
                           transformMixedEsModules: true,
                  diff --git a/apps/scan/src/main/openapi/scan.yaml b/apps/scan/src/main/openapi/scan.yaml
                  index a7302d1ddc..f8d5e62e7b 100644
                  --- a/apps/scan/src/main/openapi/scan.yaml
                  +++ b/apps/scan/src/main/openapi/scan.yaml
                  @@ -862,7 +862,7 @@ paths:
                           "404":
                             description: "No migration scheduled"
                   
                  -  # TODO(#13386) Move to SV app
                  +  # TODO(DACH-NY/canton-network-internal#418) Move to SV app
                     /v0/synchronizer-identities/{domain_id_prefix}:
                       get:
                         tags: [internal, scan]
                  @@ -884,7 +884,7 @@ paths:
                           "404":
                             $ref: "../../../../common/src/main/openapi/common-external.yaml#/components/responses/404"
                   
                  -  # TODO(#13386) Move to SV app
                  +  # TODO(DACH-NY/canton-network-internal#418) Move to SV app
                     /v0/synchronizer-bootstrapping-transactions/{domain_id_prefix}:
                       get:
                         tags: [internal, scan]
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/BftScanConnection.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/BftScanConnection.scala
                  index edb476ca75..08cd890eb0 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/BftScanConnection.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/BftScanConnection.scala
                  @@ -929,7 +929,7 @@ object BftScanConnection {
                               }
                               (newScansFailedConnections ++ retriedScansFailedConnections).foreach {
                                 case (url, (err, svName)) =>
                  -                // TODO(#10660): abstract this pattern into the RetryProvider
                  +                // TODO(#815): abstract this pattern into the RetryProvider
                                   if (retryProvider.isClosing)
                                     logger.info(
                                       s"Suppressed warning, as we're shutting down: Failed to connect to scan of $svName ($url).",
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/commands/HttpScanAppClient.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/commands/HttpScanAppClient.scala
                  index cde52db0c5..10c5f51ebb 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/commands/HttpScanAppClient.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/api/client/commands/HttpScanAppClient.scala
                  @@ -876,7 +876,7 @@ object HttpScanAppClient {
                       override def handleOk()(implicit decoder: TemplateJsonDecoder) = {
                         case http.ListDsoSequencersResponse.OK(response) =>
                           response.domainSequencers.traverse { domain =>
                  -          // TODO (#9309): malicious scans can make these decoding fail
                  +          // TODO (DACH-NY/canton-network-internal#449): malicious scans can make these decoding fail
                             Codec.decode(Codec.SynchronizerId)(domain.domainId).flatMap { synchronizerId =>
                               domain.sequencers
                                 .traverse { s =>
                  @@ -947,7 +947,7 @@ object HttpScanAppClient {
                       override def handleOk()(implicit decoder: TemplateJsonDecoder) = {
                         case http.ListDsoScansResponse.OK(response) =>
                           response.scans.traverse { domain =>
                  -          // TODO (#9309): malicious scans can make this decoding fail
                  +          // TODO (DACH-NY/canton-network-internal#449): malicious scans can make this decoding fail
                             Codec.decode(Codec.SynchronizerId)(domain.domainId).map { synchronizerId =>
                               // all SVs validate the Uri, so this should only fail to parse for malicious SVs.
                               val (malformed, scanList) =
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/http/HttpScanHandler.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/http/HttpScanHandler.scala
                  index 2a1b01c423..dbe8d90695 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/http/HttpScanHandler.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/admin/http/HttpScanHandler.scala
                  @@ -501,7 +501,7 @@ class HttpScanHandler(
                     )(extracted: TraceContext): Future[v0.ScanResource.GetTopProvidersByAppRewardsResponse] = {
                       implicit val tc = extracted
                       withSpan(s"$workflowId.getTopProvidersByAppRewards") { _ => _ =>
                  -      // TODO(#4965): Provide an upper bound for limit
                  +      // TODO(DACH-NY/canton-network-internal#459): Provide an upper bound for limit
                         store
                           .getTopProvidersByAppRewards(asOfEndOfRound, limit)
                           .map(res =>
                  @@ -527,7 +527,7 @@ class HttpScanHandler(
                     )(extracted: TraceContext): Future[v0.ScanResource.GetTopValidatorsByValidatorRewardsResponse] = {
                       implicit val tc = extracted
                       withSpan(s"$workflowId.getTopValidatorsByValidatorRewards") { _ => _ =>
                  -      // TODO(#4965): Provide an upper bound for limit
                  +      // TODO(DACH-NY/canton-network-internal#459): Provide an upper bound for limit
                         store
                           .getTopValidatorsByValidatorRewards(asOfEndOfRound, limit)
                           .map(res =>
                  @@ -574,7 +574,7 @@ class HttpScanHandler(
                     )(extracted: TraceContext): Future[ScanResource.GetTopValidatorsByPurchasedTrafficResponse] = {
                       implicit val tc = extracted
                       withSpan(s"$workflowId.getTopValidatorsByPurchasedTraffic") { _ => _ =>
                  -      // TODO(#4965): Provide an upper bound for limit
                  +      // TODO(DACH-NY/canton-network-internal#459): Provide an upper bound for limit
                         store
                           .getTopValidatorsByPurchasedTraffic(asOfEndOfRound, limit)
                           .map(validatorTraffic =>
                  @@ -1146,7 +1146,7 @@ class HttpScanHandler(
                     }
                   
                     /** Filter the given ACS snapshot to contracts the given party is a stakeholder on */
                  -  // TODO(#9340) Move this logic inside a Canton gRPC API.
                  +  // TODO(#828) Move this logic inside a Canton gRPC API.
                     private def filterAcsSnapshot(input: ByteString, stakeholder: PartyId): ByteString = {
                       val contracts = ActiveContract
                         .loadFromByteString(input)
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/config/ScanAppConfig.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/config/ScanAppConfig.scala
                  index 48b47fa35f..83e768615c 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/config/ScanAppConfig.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/config/ScanAppConfig.scala
                  @@ -37,7 +37,7 @@ case class ScanAppBackendConfig(
                       miningRoundsCacheTimeToLiveOverride: Option[NonNegativeFiniteDuration] = None,
                       acsSnapshotPeriodHours: Int = 3,
                       enableForcedAcsSnapshots: Boolean = false,
                  -    // TODO(#9731): get migration id from sponsor sv / scan instead of configuring here
                  +    // TODO(DACH-NY/canton-network-node#9731): get migration id from sponsor sv / scan instead of configuring here
                       domainMigrationId: Long = 0L,
                       parameters: SpliceParametersConfig = SpliceParametersConfig(batching = BatchingConfig()),
                       spliceInstanceNames: SpliceInstanceNamesConfig,
                  @@ -47,7 +47,7 @@ case class ScanAppBackendConfig(
                       txLogBackfillBatchSize: Int = 100,
                       bftSequencers: Seq[BftSequencerConfig] = Seq.empty,
                   ) extends SpliceBackendConfig
                  -    with BaseScanAppConfig // TODO(#736): fork or generalize this trait.
                  +    with BaseScanAppConfig // TODO(DACH-NY/canton-network-node#736): fork or generalize this trait.
                       {
                     override val nodeTypeName: String = "scan"
                   
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/ScanTxLogParser.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/ScanTxLogParser.scala
                  index de97861c39..610c2ddfd4 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/ScanTxLogParser.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/ScanTxLogParser.scala
                  @@ -57,7 +57,7 @@ class ScanTxLogParser(
                     private def parseTree(tree: TransactionTree, synchronizerId: SynchronizerId, root: TreeEvent)(
                         implicit tc: TraceContext
                     ): State = {
                  -    // TODO(#2930) add more checks on the nodes, at least that the DSO party is correct
                  +    // TODO(DACH-NY/canton-network-node#2930) add more checks on the nodes, at least that the DSO party is correct
                       root match {
                         case exercised: ExercisedEvent =>
                           val eventId = EventId.prefixedFromUpdateIdAndNodeId(
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/DbScanStore.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/DbScanStore.scala
                  index 1e18c91e4a..2a05564662 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/DbScanStore.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/DbScanStore.scala
                  @@ -109,7 +109,7 @@ class DbScanStore(
                         // Any change in the store descriptor will lead to previously deployed applications
                         // forgetting all persisted data once they upgrade to the new version.
                         acsStoreDescriptor = StoreDescriptor(
                  -        version = 2, // TODO (#13454): bump when it will backfill.
                  +        version = 2, // TODO (DACH-NY/canton-network-node#13454): bump when it will backfill.
                           name = "DbScanStore",
                           party = key.dsoParty,
                           participant = participantId,
                  @@ -464,7 +464,7 @@ class DbScanStore(
                             (sql" < ", sql""" order by entry_number desc limit ${sqlLimit(limit)};""")
                         }
                   
                  -      // TODO (#11200): don't use the event id for pagination, use the entry number
                  +      // TODO (#960): don't use the event id for pagination, use the entry number
                         for {
                           rows <- storage.query(
                             pageEndEventId.fold(
                  @@ -590,7 +590,7 @@ class DbScanStore(
                         metrics = Some(storeMetrics.cache),
                       )(logger, "amuletBalanceCache")
                     }
                  -  // TODO(#11312) remove when amulet expiry works again
                  +  // TODO(#800) remove when amulet expiry works again
                     def getTotalAmuletBalance(asOfEndOfRound: Long): Future[BigDecimal] = {
                       totalAmuletBalanceCache.get(asOfEndOfRound)
                     }
                  @@ -606,7 +606,7 @@ class DbScanStore(
                             // and sum the most recent total_amulet_balances for all parties.
                             // using greatest(0, ...) to handle negative balances caused by amulets never expiring.
                             storage.query(
                  -            // TODO(#11312) change to query from round_totals when amulet expiry works again
                  +            // TODO(#800) change to query from round_totals when amulet expiry works again
                               sql"""
                                 with most_recent as (
                                   select   max(closed_round) as closed_round,
                  @@ -1097,7 +1097,7 @@ class DbScanStore(
                                   templateId.getEntityName
                                 )} and package_name = ${lengthLimited(packageName)}
                                 and record_time > $recordTime""",
                  -            // TODO(#14813): Order by row_id is suspicious
                  +            // TODO(#934): Order by row_id is suspicious
                               orderLimit = sql"""order by row_id asc limit 1""",
                             ).headOption,
                             s"lookup[$templateId]",
                  diff --git a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/ScanAggregator.scala b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/ScanAggregator.scala
                  index a9dd89abcf..6ba69219a2 100644
                  --- a/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/ScanAggregator.scala
                  +++ b/apps/scan/src/main/scala/org/lfdecentralizedtrust/splice/scan/store/db/ScanAggregator.scala
                  @@ -405,7 +405,7 @@ final class ScanAggregator(
                           val roundsReported = rounds.mkString(", ")
                           s"Closed mining rounds since last aggregated: $roundsReported"
                         }
                  -      // TODO (#11316): find a different approach for finding in-flight closed rounds
                  +      // TODO (#799): find a different approach for finding in-flight closed rounds
                         roundsIncomplete <- getIncompleteRoundsByContract(
                           rounds.collect { case (round, Some(cId)) =>
                             (round, cId)
                  @@ -496,7 +496,7 @@ final class ScanAggregator(
                         .query(
                           sql"""
                               select   round,
                  -                     -- TODO (#11316) This query was using the deprecated acs_contract_id which ends up always being null
                  +                     -- TODO (#799) This query was using the deprecated acs_contract_id which ends up always being null
                                        null
                               from     scan_txlog_store
                               where    store_id = $txLogStoreId
                  diff --git a/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala b/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala
                  index 4a9de2d020..7d1110e3e6 100644
                  --- a/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala
                  +++ b/apps/scan/src/test/scala/org/lfdecentralizedtrust/splice/store/db/ScanStoreTest.scala
                  @@ -1989,7 +1989,7 @@ trait AmuletTransferUtil { self: StoreTest =>
                       // the validator faucet amount is already included in the `inputValidatorRewardAmount`,
                       // We'll set this here once we add support for showing faucet coupon rewards separately
                       // from the usage-based validator rewards.
                  -    // TODO(#9824): track faucet coupon inputs separately
                  +    // TODO(#968): track faucet coupon inputs separately
                       java.util.Optional.empty(),
                     )
                   
                  @@ -2049,7 +2049,7 @@ trait AmuletTransferUtil { self: StoreTest =>
                         mkTransferSummary(
                           inputAppRewardAmount,
                           inputValidatorRewardAmount,
                  -        // TODO (#9173): also test for sv rewards once the scan store supports them
                  +        // TODO (DACH-NY/canton-network-node#9173): also test for sv rewards once the scan store supports them
                           0.0,
                           inputAmuletAmount,
                           balanceChanges,
                  diff --git a/apps/splitwell/frontend/src/__tests__/setup/config.ts b/apps/splitwell/frontend/src/__tests__/setup/config.ts
                  index 8df8b9eef5..8980a05c90 100644
                  --- a/apps/splitwell/frontend/src/__tests__/setup/config.ts
                  +++ b/apps/splitwell/frontend/src/__tests__/setup/config.ts
                  @@ -1,7 +1,7 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                   
                  -// TODO(#7579) -- remove duplication from default config
                  +// TODO(#986) -- remove duplication from default config
                   
                   const config = {
                     auth: {
                  diff --git a/apps/splitwell/frontend/vite.config.mjs b/apps/splitwell/frontend/vite.config.mjs
                  index 362e6cbd85..1a23a62d60 100644
                  --- a/apps/splitwell/frontend/vite.config.mjs
                  +++ b/apps/splitwell/frontend/vite.config.mjs
                  @@ -22,7 +22,7 @@ export default defineConfig(({ mode }) => {
                       },
                       build: {
                         outDir: 'build',
                  -      // TODO(#7672): reduce/remove this limit
                  +      // TODO(#854): reduce/remove this limit
                         chunkSizeWarningLimit: 4800,
                         commonjsOptions: {
                           transformMixedEsModules: true,
                  diff --git a/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/SplitwellApp.scala b/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/SplitwellApp.scala
                  index a1bdf45044..d1c14bc809 100644
                  --- a/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/SplitwellApp.scala
                  +++ b/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/SplitwellApp.scala
                  @@ -114,7 +114,7 @@ class SplitwellApp(
                         participantAdminConnection.getParticipantId()
                       }
                       storeKey = SplitwellStore.Key(providerParty = partyId)
                  -    // TODO(#9731): get migration id from sponsor sv / scan instead of configuring here
                  +    // TODO(DACH-NY/canton-network-node#9731): get migration id from sponsor sv / scan instead of configuring here
                       migrationInfo = DomainMigrationInfo(
                         config.domainMigrationId,
                         None,
                  diff --git a/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/config/SplitwellAppConfig.scala b/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/config/SplitwellAppConfig.scala
                  index dfa146e4b7..e77be4d633 100644
                  --- a/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/config/SplitwellAppConfig.scala
                  +++ b/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/config/SplitwellAppConfig.scala
                  @@ -36,11 +36,11 @@ case class SplitwellAppBackendConfig(
                       participantClient: ParticipantClientConfig,
                       scanClient: ScanAppClientConfig,
                       override val automation: AutomationConfig = AutomationConfig(),
                  -    // TODO(#9731): get migration id from sponsor sv / scan instead of configuring here
                  +    // TODO(DACH-NY/canton-network-node#9731): get migration id from sponsor sv / scan instead of configuring here
                       domainMigrationId: Long = 0L,
                       domains: SplitwellSynchronizerConfig,
                       parameters: SpliceParametersConfig = SpliceParametersConfig(batching = BatchingConfig()),
                  -) extends SpliceBackendConfig // TODO(#736): fork or generalize this trait.
                  +) extends SpliceBackendConfig // TODO(DACH-NY/canton-network-node#736): fork or generalize this trait.
                       {
                     override val nodeTypeName: String = "splitwell"
                   
                  diff --git a/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/store/db/DbSplitwellStore.scala b/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/store/db/DbSplitwellStore.scala
                  index f50da22932..384c590848 100644
                  --- a/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/store/db/DbSplitwellStore.scala
                  +++ b/apps/splitwell/src/main/scala/org/lfdecentralizedtrust/splice/splitwell/store/db/DbSplitwellStore.scala
                  @@ -169,7 +169,7 @@ class DbSplitwellStore(
                               splitwellCodegen.Group.COMPANION
                             )(_)
                           )
                  -        // TODO(#9249): filter on the database side
                  +        // TODO(DACH-NY/canton-network-node#9249): filter on the database side
                           filteredResult = result.filter(c => groupMembers(c.payload).contains(user.toProtoPrimitive))
                         } yield filteredResult
                       }
                  @@ -256,7 +256,7 @@ class DbSplitwellStore(
                             splitwellCodegen.BalanceUpdate.COMPANION
                           )(_)
                         )
                  -      // TODO(#9249): filter on the database side
                  +      // TODO(DACH-NY/canton-network-node#9249): filter on the database side
                         filteredResult = result.filter(c =>
                           groupMembers(c.payload.group).contains(user.toProtoPrimitive)
                         )
                  @@ -288,7 +288,7 @@ class DbSplitwellStore(
                           splitwellCodegen.SplitwellInstall.COMPANION,
                           preferredId,
                         )
                  -      // TODO(#9249): filter on the database side
                  +      // TODO(DACH-NY/canton-network-node#9249): filter on the database side
                         .map(_.filter(co => allGroupMembers(co.payload.user)))
                         .map(_.view.map(_.payload.user).toSet)
                     } yield othersGroups.collect(Function unlift { case (otherId, groups) =>
                  diff --git a/apps/sv/frontend/src/__tests__/config-diffs.test.tsx b/apps/sv/frontend/src/__tests__/config-diffs.test.tsx
                  index 87ece081f6..b67e6b67de 100644
                  --- a/apps/sv/frontend/src/__tests__/config-diffs.test.tsx
                  +++ b/apps/sv/frontend/src/__tests__/config-diffs.test.tsx
                  @@ -87,7 +87,7 @@ describe('SV can see AmuletRules config diffs', () => {
                   
                       await goToGovernanceTabAndClickOnAction('Executed', deprecatedAction, user);
                   
                  -    //TODO(#14813): when an action is executed, the AmuletConfigSchedule is updated and actualized to now, therefore the diff is empty for the first change
                  +    //TODO(#934): when an action is executed, the AmuletConfigSchedule is updated and actualized to now, therefore the diff is empty for the first change
                       await screen.findByTestId('stringify-display');
                   
                       // current comparison against vote result
                  diff --git a/apps/sv/frontend/src/__tests__/setup/config.ts b/apps/sv/frontend/src/__tests__/setup/config.ts
                  index 79c7ff7634..548dde92b6 100644
                  --- a/apps/sv/frontend/src/__tests__/setup/config.ts
                  +++ b/apps/sv/frontend/src/__tests__/setup/config.ts
                  @@ -1,7 +1,7 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                   
                  -// TODO(#7579) -- remove duplication from default config
                  +// TODO(#986) -- remove duplication from default config
                   
                   const config = {
                     // URL of SV API.
                  diff --git a/apps/sv/frontend/src/components/ElectionRequest.tsx b/apps/sv/frontend/src/components/ElectionRequest.tsx
                  index 609112fb5a..34167df553 100644
                  --- a/apps/sv/frontend/src/components/ElectionRequest.tsx
                  +++ b/apps/sv/frontend/src/components/ElectionRequest.tsx
                  @@ -92,7 +92,7 @@ const ElectionRequests: React.FC = () => {
                       return ;
                     }
                   
                  -  // TODO (#4966): add a popup to ask confirmation
                  +  // TODO (DACH-NY/canton-network-node#4966): add a popup to ask confirmation
                     return (
                       
                         
                  diff --git a/apps/sv/frontend/src/components/votes/VoteRequest.tsx b/apps/sv/frontend/src/components/votes/VoteRequest.tsx
                  index 18902efd4e..65758a2433 100644
                  --- a/apps/sv/frontend/src/components/votes/VoteRequest.tsx
                  +++ b/apps/sv/frontend/src/components/votes/VoteRequest.tsx
                  @@ -173,7 +173,7 @@ export const CreateVoteRequest: React.FC = () => {
                       },
                   
                       onError: error => {
                  -      // TODO (#5491): show an error to the user.
                  +      // TODO (DACH-NY/canton-network-node#5491): show an error to the user.
                         console.error(`Failed to send vote request to dso`, error);
                       },
                     });
                  diff --git a/apps/sv/frontend/src/components/votes/actions/AddFutureAmuletConfigSchedule.tsx b/apps/sv/frontend/src/components/votes/actions/AddFutureAmuletConfigSchedule.tsx
                  index 2dab038aa4..1e63dfa456 100644
                  --- a/apps/sv/frontend/src/components/votes/actions/AddFutureAmuletConfigSchedule.tsx
                  +++ b/apps/sv/frontend/src/components/votes/actions/AddFutureAmuletConfigSchedule.tsx
                  @@ -24,14 +24,14 @@ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
                   
                   dayjs.extend(utc);
                   
                  -// TODO(#16139): Retire this file
                  +// TODO(#925): Retire this file
                   const AddFutureAmuletConfigSchedule: React.FC<{
                     chooseAction: (action: ActionFromForm) => void;
                   }> = ({ chooseAction }) => {
                     const dsoInfosQuery = useDsoInfos();
                   
                     const [date, setDate] = useState(dayjs());
                  -  // TODO (#10209): remove this intermediate state by lifting it to VoteRequest.tsx
                  +  // TODO (#967): remove this intermediate state by lifting it to VoteRequest.tsx
                     const [configuration, setConfiguration] = useState>();
                   
                     useEffect(() => {
                  diff --git a/apps/sv/frontend/src/components/votes/actions/SetAmuletRulesConfig.tsx b/apps/sv/frontend/src/components/votes/actions/SetAmuletRulesConfig.tsx
                  index fd36beb5a0..ac0f2f0f3a 100644
                  --- a/apps/sv/frontend/src/components/votes/actions/SetAmuletRulesConfig.tsx
                  +++ b/apps/sv/frontend/src/components/votes/actions/SetAmuletRulesConfig.tsx
                  @@ -20,7 +20,7 @@ const SetAmuletRulesConfig: React.FC<{
                   }> = ({ chooseAction }) => {
                     const dsoInfosQuery = useDsoInfos();
                   
                  -  // TODO (#10209): remove this intermediate state by lifting it to VoteRequest.tsx
                  +  // TODO (#967): remove this intermediate state by lifting it to VoteRequest.tsx
                     const [configuration, setConfiguration] = useState>();
                   
                     if (dsoInfosQuery.isLoading) {
                  diff --git a/apps/sv/frontend/src/components/votes/actions/SetDsoRulesConfig.tsx b/apps/sv/frontend/src/components/votes/actions/SetDsoRulesConfig.tsx
                  index 5b5d7f7a0b..cd90388eed 100644
                  --- a/apps/sv/frontend/src/components/votes/actions/SetDsoRulesConfig.tsx
                  +++ b/apps/sv/frontend/src/components/votes/actions/SetDsoRulesConfig.tsx
                  @@ -24,7 +24,7 @@ const SetDsoRulesConfig: React.FC<{
                     isEffective: boolean;
                   }> = ({ chooseAction, setIsValidSynchronizerPauseTime, expiration, effectivity, isEffective }) => {
                     const dsoInfosQuery = useDsoInfos();
                  -  // TODO (#10209): remove this intermediate state by lifting it to VoteRequest.tsx
                  +  // TODO (#967): remove this intermediate state by lifting it to VoteRequest.tsx
                     const [configuration, setConfiguration] = useState | undefined>(
                       undefined
                     );
                  diff --git a/apps/sv/frontend/src/hooks/useAmuletPriceVotes.tsx b/apps/sv/frontend/src/hooks/useAmuletPriceVotes.tsx
                  index 7381e5e1e6..06d48238c7 100644
                  --- a/apps/sv/frontend/src/hooks/useAmuletPriceVotes.tsx
                  +++ b/apps/sv/frontend/src/hooks/useAmuletPriceVotes.tsx
                  @@ -1,6 +1,6 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                  -// TODO(#7675) - do we need this model?
                  +// TODO(DACH-NY/canton-network-node#7675) - do we need this model?
                   import { AmuletPriceVote as CPVModel } from '@lfdecentralizedtrust/splice-common-frontend';
                   import { Contract } from '@lfdecentralizedtrust/splice-common-frontend-utils';
                   import { useQuery, UseQueryResult } from '@tanstack/react-query';
                  diff --git a/apps/sv/frontend/src/hooks/useListVotes.tsx b/apps/sv/frontend/src/hooks/useListVotes.tsx
                  index 405e8ec302..18bbe5da4d 100644
                  --- a/apps/sv/frontend/src/hooks/useListVotes.tsx
                  +++ b/apps/sv/frontend/src/hooks/useListVotes.tsx
                  @@ -1,6 +1,6 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                  -// TODO(#7675) - do we need this model?
                  +// TODO(DACH-NY/canton-network-node#7675) - do we need this model?
                   import { SvVote } from '@lfdecentralizedtrust/splice-common-frontend';
                   import { Contract } from '@lfdecentralizedtrust/splice-common-frontend-utils';
                   import { useQuery, UseQueryResult } from '@tanstack/react-query';
                  diff --git a/apps/sv/frontend/src/utils/DropdownSchedules.tsx b/apps/sv/frontend/src/utils/DropdownSchedules.tsx
                  index ba9c0e4e0f..f4ae6b7530 100644
                  --- a/apps/sv/frontend/src/utils/DropdownSchedules.tsx
                  +++ b/apps/sv/frontend/src/utils/DropdownSchedules.tsx
                  @@ -30,7 +30,7 @@ function stateHasValue(
                   ): state is { label: string; value: Record } {
                     return state.label !== 'No Selection';
                   }
                  -// TODO (#10209): this component is handling both the PrettyPrint and the JsonEditor. Split into two components.
                  +// TODO (#967): this component is handling both the PrettyPrint and the JsonEditor. Split into two components.
                   export const DropdownSchedules: React.FC<{
                     futureValues: Tuple2>[];
                     initialValue?: AmuletConfig;
                  @@ -42,7 +42,7 @@ export const DropdownSchedules: React.FC<{
                       label: string;
                     }
                   
                  -  // TODO (#10209): remove this intermediate state by lifting it to VoteRequest.tsx
                  +  // TODO (#967): remove this intermediate state by lifting it to VoteRequest.tsx
                     const [selectedOption, setSelectedOption] = useState({ label: 'No Selection' });
                   
                     const dropdownOptions: DropdownOption[] = [
                  diff --git a/apps/sv/frontend/src/utils/validations.tsx b/apps/sv/frontend/src/utils/validations.tsx
                  index 04481951ea..cd35478d6d 100644
                  --- a/apps/sv/frontend/src/utils/validations.tsx
                  +++ b/apps/sv/frontend/src/utils/validations.tsx
                  @@ -13,7 +13,7 @@ export interface VoteRequestValidity {
                     isValid: boolean;
                     alertMessage: object;
                   }
                  -// TODO(#16139): retire deprecated code
                  +// TODO(#925): retire deprecated code
                   function validateScheduleDateTime(
                     data: Contract[],
                     formattedUTCtime: string
                  diff --git a/apps/sv/frontend/vite.config.mjs b/apps/sv/frontend/vite.config.mjs
                  index fd3b8d8071..193e86174a 100644
                  --- a/apps/sv/frontend/vite.config.mjs
                  +++ b/apps/sv/frontend/vite.config.mjs
                  @@ -18,7 +18,7 @@ export default defineConfig(({ mode }) => {
                       },
                       build: {
                         outDir: 'build',
                  -      // TODO(#7672): reduce/remove this limit
                  +      // TODO(#854): reduce/remove this limit
                         chunkSizeWarningLimit: 4800,
                         commonjsOptions: {
                           transformMixedEsModules: true,
                  diff --git a/apps/sv/src/main/openapi/sv-internal.yaml b/apps/sv/src/main/openapi/sv-internal.yaml
                  index 28053367a5..ad96b6e376 100644
                  --- a/apps/sv/src/main/openapi/sv-internal.yaml
                  +++ b/apps/sv/src/main/openapi/sv-internal.yaml
                  @@ -587,7 +587,7 @@ paths:
                                 schema:
                                   "$ref": "../../../../common/src/main/openapi/common-internal.yaml#/components/schemas/GetDsoInfoResponse"
                   
                  -  # TODO(#13301) Replace by automation
                  +  # TODO(DACH-NY/canton-network-node#13301) Replace by automation
                     /v0/synchronizer/{domain_id_prefix}/reconcile-daml-state:
                       post:
                         tags: [sv]
                  @@ -603,7 +603,7 @@ paths:
                           "200":
                             description: ok
                   
                  -  # TODO(#13301) Replace by automation
                  +  # TODO(DACH-NY/canton-network-node#13301) Replace by automation
                     /v0/synchronizer/{domain_id_prefix}/sign_dso_party_to_participant:
                       post:
                         tags: [sv]
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/ExtraSynchronizerNode.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/ExtraSynchronizerNode.scala
                  index c1ac8f91e0..9121e2e3ad 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/ExtraSynchronizerNode.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/ExtraSynchronizerNode.scala
                  @@ -20,7 +20,7 @@ import com.digitalasset.canton.sequencing.SubmissionRequestAmplification
                   import java.time.Duration
                   import scala.concurrent.ExecutionContextExecutor
                   
                  -// TODO(#13301) Unify this with LocalSynchronizerNode
                  +// TODO(DACH-NY/canton-network-node#13301) Unify this with LocalSynchronizerNode
                   final class ExtraSynchronizerNode(
                       override val sequencerAdminConnection: SequencerAdminConnection,
                       override val mediatorAdminConnection: MediatorAdminConnection,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/LocalSynchronizerNode.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/LocalSynchronizerNode.scala
                  index 8959c04786..a855c6dfb2 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/LocalSynchronizerNode.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/LocalSynchronizerNode.scala
                  @@ -42,7 +42,7 @@ import scala.concurrent.{ExecutionContextExecutor, Future}
                   
                   /** Connections to the domain node (composed of sequencer + mediator) operated by the SV running this SV app.
                     * Note that this is optional. An SV app can run without a dedicated domain node.
                  -  * TODO(#5195) Consider making this mandatory.
                  +  * TODO(DACH-NY/canton-network-node#5195) Consider making this mandatory.
                     */
                   final class LocalSynchronizerNode(
                       participantAdminConnection: ParticipantAdminConnection,
                  @@ -375,7 +375,7 @@ final class LocalSynchronizerNode(
                           "onboarding_sequencer",
                           "Onbarding sequencer through sponsoring SV",
                           svConnection.onboardSvSequencer(sequencerId).recover {
                  -          // TODO(#13410) - remove once canton returns a retryable error
                  +          // TODO(DACH-NY/canton-network-node#13410) - remove once canton returns a retryable error
                             case HttpCommandException(_, StatusCodes.BadRequest, message)
                                 if message.contains("SNAPSHOT_NOT_FOUND") =>
                               throw Status.NOT_FOUND
                  @@ -468,7 +468,7 @@ final class LocalSynchronizerNode(
                   object LocalSynchronizerNode {
                     def toEndpoint(config: ClientConfig): Endpoint = Endpoint(config.address, config.port)
                   
                  -  // TODO(#5107) Consider using something other than a ClientConfig in the config file
                  +  // TODO(DACH-NY/canton-network-node#5107) Consider using something other than a ClientConfig in the config file
                     // to simplify conversion to GrpcSequencerConnection.
                     private def toEndpoints(config: ClientConfig): NonEmpty[Seq[Endpoint]] =
                       NonEmpty.mk(Seq, toEndpoint(config))
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/SvApp.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/SvApp.scala
                  index 6710b00b2d..da0491c78c 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/SvApp.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/SvApp.scala
                  @@ -234,7 +234,7 @@ class SvApp(
                         localSynchronizerNode,
                       )
                         .recoverWith { case err =>
                  -        // TODO(#3474) Replace this by a more general solution for closing resources on
                  +        // TODO(#879) Replace this by a more general solution for closing resources on
                           // init failures.
                           participantAdminConnection.close()
                           localSynchronizerNode.foreach(_.close())
                  @@ -778,7 +778,7 @@ object SvApp {
                         )
                     }
                   
                  -  // TODO(#5364): move this and like functions into appropriate utility namespaces
                  +  // TODO(DACH-NY/canton-network-node#5364): move this and like functions into appropriate utility namespaces
                     def prepareValidatorOnboarding(
                         secret: ValidatorOnboardingSecret,
                         expiresIn: NonNegativeFiniteDuration,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/confirmation/SvOnboardingRequestTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/confirmation/SvOnboardingRequestTrigger.scala
                  index 13a0883544..2c64e1a032 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/confirmation/SvOnboardingRequestTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/confirmation/SvOnboardingRequestTrigger.scala
                  @@ -93,7 +93,7 @@ class SvOnboardingRequestTrigger(
                         (party, name, weightBps) <- approval match {
                           case Left(reason) => {
                             // we fail so that the task is retried; it's possible that an approval happens eventually
                  -          // TODO(#4073) Add a warning log
                  +          // TODO(#990) Add a warning log
                             Future.failed(
                               Status.NOT_FOUND
                                 .withDescription(s"Could not match with an approved SV identity; reason: $reason")
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/CompletedSvOnboardingTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/CompletedSvOnboardingTrigger.scala
                  index 1d88f1379e..fc4465b80d 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/CompletedSvOnboardingTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/CompletedSvOnboardingTrigger.scala
                  @@ -20,7 +20,7 @@ import io.opentelemetry.api.trace.Tracer
                   import scala.concurrent.{ExecutionContext, Future}
                   import CompletedSvOnboardingTrigger.*
                   
                  -//TODO(#3756) reconsider this trigger
                  +//TODO(DACH-NY/canton-network-node#3756) reconsider this trigger
                   class CompletedSvOnboardingTrigger(
                       override protected val context: TriggerContext,
                       override protected val svTaskContext: SvTaskBasedTrigger.Context,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/ExecuteConfirmedActionTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/ExecuteConfirmedActionTrigger.scala
                  index f905633101..525c853b9e 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/ExecuteConfirmedActionTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/ExecuteConfirmedActionTrigger.scala
                  @@ -101,7 +101,7 @@ class ExecuteConfirmedActionTrigger(
                                         java.util.Optional.of(amuletRulesId),
                                         uniqueConfirmations
                                           .map(_.contractId)
                  -                        .asJava, // TODO(#3300) report duplicated and add test cases to make sure no duplicated confirmations here
                  +                        .asJava, // TODO(DACH-NY/canton-network-node##3300) report duplicated and add test cases to make sure no duplicated confirmations here
                                         controllerArgument,
                                       )
                                     )
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/SvTaskBasedTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/SvTaskBasedTrigger.scala
                  index 64984ea022..338a5952ec 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/SvTaskBasedTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/delegatebased/SvTaskBasedTrigger.scala
                  @@ -82,7 +82,7 @@ trait SvTaskBasedTrigger[T <: PrettyPrinting] {
                               monitorTaskAsFollower(task)
                             }
                           } else {
                  -          // TODO(#6856) Could this be busy-looping as well, if we are a polling trigger?
                  +          // TODO(DACH-NY/canton-network-internal#495) Could this be busy-looping as well, if we are a polling trigger?
                             Future.successful(
                               TaskSuccess(
                                 s"Skipping because current epoch ${dsoRules.payload.epoch} is not the same as trigger registration epoch ${svTaskContext.epoch}"
                  @@ -244,7 +244,7 @@ trait SvTaskBasedTrigger[T <: PrettyPrinting] {
                                   )
                                 )
                               } else if (isLeaderInactive) {
                  -              // TODO(#6856) Resolve the busy loop in a more elegant way.
                  +              // TODO(DACH-NY/canton-network-internal#495) Resolve the busy loop in a more elegant way.
                                 if (enableAutomaticDsoDelegateElection) {
                                   voteForNewDsoDelegate(dsoRules, monitoredLeader)
                                 } else {
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/LocalSequencerConnectionsTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/LocalSequencerConnectionsTrigger.scala
                  index 68e1e9e73c..16f00fc13b 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/LocalSequencerConnectionsTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/LocalSequencerConnectionsTrigger.scala
                  @@ -50,7 +50,7 @@ class LocalSequencerConnectionsTrigger(
                     override def performWorkIfAvailable()(implicit traceContext: TraceContext): Future[Boolean] = {
                       for {
                         rulesAndState <- store.getDsoRulesWithSvNodeState(svParty)
                  -      // TODO(#4906): double-check that the right domain-ids are used in the right place to make this work with soft-domain migration
                  +      // TODO(#998): double-check that the right domain-ids are used in the right place to make this work with soft-domain migration
                         synchronizerId <- participantAdminConnection.getSynchronizerId(decentralizedSynchronizerAlias)
                         domainTimeLb <- participantAdminConnection.getDomainTimeLowerBound(
                           synchronizerId,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishLocalCometBftNodeConfigTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishLocalCometBftNodeConfigTrigger.scala
                  index 98bbf2f8e9..18616a4688 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishLocalCometBftNodeConfigTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishLocalCometBftNodeConfigTrigger.scala
                  @@ -52,7 +52,7 @@ class PublishLocalCometBftNodeConfigTrigger(
                           store,
                           store.key.svParty,
                         )
                  -      // TODO (#4901) reconcile cometBft networks for multiple domains instead using one default domain id here.
                  +      // TODO (DACH-NY/canton-network-node#4901) reconcile cometBft networks for multiple domains instead using one default domain id here.
                         // create a task if the local config is different than the one we have published to the DSO
                         // or if no domain bft is configured
                         if !synchronizerNodeConfig
                  @@ -111,7 +111,7 @@ object PublishLocalCometBftNodeConfigTrigger {
                         param("localSvNodeConfig", _.localSvNodeConfig),
                       )
                   
                  -    // TODO(#5889): unify or align with CometBftNode.getLocalNodeConfig and the functions backing `diffNetworkConfig`
                  +    // TODO(DACH-NY/canton-network-node#5889): unify or align with CometBftNode.getLocalNodeConfig and the functions backing `diffNetworkConfig`
                       val damlSvNodeConfig: daml.dso.decentralizedsynchronizer.SynchronizerNodeConfig =
                         getNewSynchronizerNodeConfig(synchronizerNodeConfig, localSvNodeConfig)
                     }
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishScanConfigTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishScanConfigTrigger.scala
                  index 74b1dfb482..1f98ed6270 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishScanConfigTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/PublishScanConfigTrigger.scala
                  @@ -105,7 +105,7 @@ class PublishScanConfigTrigger(
                         rulesAndState,
                         synchronizerNodeConfig,
                         damlScanConfig,
                  -      // TODO(#4906): this domain-id is likely the wrong one to use in a soft-domain migration context
                  +      // TODO(#998): this domain-id is likely the wrong one to use in a soft-domain migration context
                         synchronizerId,
                       )).value
                         .map(_.toList)
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/SequencerPruningTrigger.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/SequencerPruningTrigger.scala
                  index 690c704159..29e5955462 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/SequencerPruningTrigger.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/SequencerPruningTrigger.scala
                  @@ -57,7 +57,7 @@ class SequencerPruningTrigger(
                               if (latest - earliest).compareTo(retentionPeriod.asJava) > 0 =>
                             for {
                               rulesAndState <- store.getDsoRulesWithSvNodeState(store.key.svParty)
                  -            // TODO(#4906): check whether are passing the right domain-id to make this work with soft-domain migration
                  +            // TODO(#998): check whether are passing the right domain-id to make this work with soft-domain migration
                               dsoRulesActiveSequencerConfig = rulesAndState.lookupSequencerConfigFor(
                                 rulesAndState.dsoRules.domain,
                                 clock.now.toInstant,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/scan/AggregatingScanConnection.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/scan/AggregatingScanConnection.scala
                  index b9cf288caf..864a86216d 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/scan/AggregatingScanConnection.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/automation/singlesv/scan/AggregatingScanConnection.scala
                  @@ -49,7 +49,7 @@ class AggregatingScanConnection(
                         dsoRulesWithSvNodeStates <- dsoStore.getDsoRulesWithSvNodeStates()
                       } yield {
                         val svNodes = dsoRulesWithSvNodeStates.svNodeStates.values
                  -      // TODO(#13301) We should use the internal URL for the SV’s own scan to avoid a loopback requirement
                  +      // TODO(DACH-NY/canton-network-node#13301) We should use the internal URL for the SV’s own scan to avoid a loopback requirement
                         (if (includeSelf)
                            svNodes
                          else svNodes.filterNot(_.payload.sv == dsoStore.key.svParty.filterString))
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftClient.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftClient.scala
                  index 4879cb41e0..27f7215ae3 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftClient.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftClient.scala
                  @@ -126,7 +126,7 @@ class CometBftClient(client: CometBftHttpRpcClient, val loggerFactory: NamedLogg
                           Status.INTERNAL.withDescription(message)
                         case CometBftHttpRpcClient.CometBftAbciAppError(message) =>
                           // We use FAILED_PRECONDITION, as most problems will eventually go away; and iterated retries are visible in our logs
                  -        // TODO(#5897): raise different error codes once the ABCI app follows gRPC guidelines, currently it just always uses code 1
                  +        // TODO(DACH-NY/canton-network-node#5897): raise different error codes once the ABCI app follows gRPC guidelines, currently it just always uses code 1
                           Status.FAILED_PRECONDITION.withDescription(message)
                       }
                     }
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftHttpRpcClient.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftHttpRpcClient.scala
                  index b2df5d958d..af7a029ef5 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftHttpRpcClient.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftHttpRpcClient.scala
                  @@ -106,7 +106,7 @@ class CometBftHttpRpcClient(
                       })
                     }
                   
                  -  // TODO(#5428) add retries for failures
                  +  // TODO(DACH-NY/canton-network-node#5428) add retries for failures
                     private def callCometBftJsonHttp[T: Decoder](
                         method: String,
                         params: Map[String, Json],
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftNode.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftNode.scala
                  index 2a2297e12d..f371bd621c 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftNode.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/cometbft/CometBftNode.scala
                  @@ -292,7 +292,7 @@ class CometBftNode(
                                 cometBftRequestSigner.fingerprint,
                               )
                             ),
                  -          // TODO(#5882): add support for sequencing keys
                  +          // TODO(DACH-NY/canton-network-node#5882): add support for sequencing keys
                             sequencingKeys = List.empty,
                           )
                         }
                  @@ -486,7 +486,7 @@ object CometBftNode {
                         nodeState: daml.dso.svstate.SvNodeState,
                         synchronizerId: SynchronizerId,
                     ) = {
                  -    // TODO(#4901): reconcile all configured CometBFT networks
                  +    // TODO(DACH-NY/canton-network-node#4901): reconcile all configured CometBFT networks
                       nodeState.state.synchronizerNodes.asScala.get(synchronizerId.toProtoPrimitive)
                     }
                   
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala
                  index 5bfab542e5..00a078f8bc 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/config/SvAppConfig.scala
                  @@ -136,7 +136,7 @@ object SvOnboardingConfig {
                       }
                     }
                   
                  -  // TODO(#3232) Consider adding `JoinWithToken` based on an already signed token instead of the raw keys
                  +  // TODO(DACH-NY/canton-network-internal#498) Consider adding `JoinWithToken` based on an already signed token instead of the raw keys
                   
                     case class DomainMigration(
                         name: String,
                  @@ -232,7 +232,7 @@ case class SvAppBackendConfig(
                       participantBootstrappingDump: Option[ParticipantBootstrapDumpConfig] = None,
                       identitiesDump: Option[BackupDumpConfig] = None,
                       domainMigrationDumpPath: Option[Path] = None,
                  -    // TODO(#9731): get migration id from sponsor sv / scan instead of configuring here
                  +    // TODO(DACH-NY/canton-network-node#9731): get migration id from sponsor sv / scan instead of configuring here
                       domainMigrationId: Long = 0L,
                       onLedgerStatusReportInterval: NonNegativeFiniteDuration =
                         NonNegativeFiniteDuration.ofMinutes(1),
                  @@ -324,7 +324,7 @@ final case class SvSequencerConfig(
                       // does not have to serve requests that have been in flight before the sequencer's signing keys became valid.
                       // See also https://github.com/DACH-NY/canton-network-node/issues/5938#issuecomment-1677165109
                       // The default value of 60 seconds is based on Canton defaulting to 30s for each of those.
                  -    // TODO (#8282): consider reading config value from participant instead of configuring here
                  +    // TODO (#845): consider reading config value from participant instead of configuring here
                       sequencerAvailabilityDelay: NonNegativeFiniteDuration = NonNegativeFiniteDuration.ofSeconds(60),
                       pruning: Option[SequencerPruningConfig] = None,
                       isBftSequencer: Boolean = false,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshot.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshot.scala
                  index f68e38d9e8..8b8e37c037 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshot.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshot.scala
                  @@ -11,7 +11,7 @@ import com.google.protobuf.ByteString
                   import java.time.Instant
                   import java.util.Base64
                   
                  -// TODO(#11100) Split domain data snapshots for validators and SVs to avoid
                  +// TODO(DACH-NY/canton-network-node#11100) Split domain data snapshots for validators and SVs to avoid
                   // the optional mess.
                   final case class DomainDataSnapshot(
                       genesisState: Option[ByteString],
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshotGenerator.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshotGenerator.scala
                  index 8f58ffeb43..0b261ba1af 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshotGenerator.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshotGenerator.scala
                  @@ -28,7 +28,7 @@ import scala.concurrent.{ExecutionContext, Future}
                   
                   class DomainDataSnapshotGenerator(
                       participantAdminConnection: ParticipantAdminConnection,
                  -    // TODO(#11099) Read everything from the participant connection once the genesis state API is available there.
                  +    // TODO(DACH-NY/canton-network-node#11099) Read everything from the participant connection once the genesis state API is available there.
                       sequencerAdminConnection: Option[SequencerAdminConnection],
                       dsoStore: SvDsoStore,
                       acsExporter: AcsExporter,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/SynchronizerNodeReconciler.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/SynchronizerNodeReconciler.scala
                  index 3e8eb7323d..e78c564824 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/SynchronizerNodeReconciler.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/SynchronizerNodeReconciler.scala
                  @@ -65,7 +65,7 @@ class SynchronizerNodeReconciler(
                           .toJava
                         rulesAndState <- dsoStore.getDsoRulesWithSvNodeState(svParty)
                         nodeState = rulesAndState.svNodeState.payload
                  -      // TODO(#4901): do not use default, but reconcile all configured domains
                  +      // TODO(DACH-NY/canton-network-node#4901): do not use default, but reconcile all configured domains
                         synchronizerNodeConfig = nodeState.state.synchronizerNodes.asScala
                           .get(synchronizerId.toProtoPrimitive)
                         sequencerConfig = synchronizerNodeConfig.flatMap(_.sequencer.toScala)
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/domainmigration/DomainMigrationInitializer.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/domainmigration/DomainMigrationInitializer.scala
                  index 36c71d3620..4486b01964 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/domainmigration/DomainMigrationInitializer.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/domainmigration/DomainMigrationInitializer.scala
                  @@ -276,7 +276,7 @@ class DomainMigrationInitializer(
                         _ <- participantAdminConnection
                           .ensureDomainParameters(
                             domainMigrationDump.nodeIdentities.synchronizerId,
                  -          // TODO(#8761) hard code for now
                  +          // TODO(DACH-NY/canton-network-node#8761) hard code for now
                             _.tryUpdate(confirmationRequestsMaxRate =
                               DynamicSynchronizerParameters.defaultConfirmationRequestsMaxRate
                             ),
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/joining/JoiningNodeInitializer.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/joining/JoiningNodeInitializer.scala
                  index 2c038b9f7f..c4ae24e9b3 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/joining/JoiningNodeInitializer.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/joining/JoiningNodeInitializer.scala
                  @@ -863,7 +863,7 @@ class JoiningNodeInitializer(
                   
                       private def startHostingDsoPartyInParticipant(): Future[Unit] = {
                         dsoPartyHosting
                  -        // TODO(#5364): consider inlining the relevant parts from DsoPartyHosting
                  +        // TODO(DACH-NY/canton-network-node#5364): consider inlining the relevant parts from DsoPartyHosting
                           .hostPartyOnOwnParticipant(
                             config.domains.global.alias,
                             synchronizerId,
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala
                  index 9d6935f19a..8627b9bb13 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/sv1/SV1Initializer.scala
                  @@ -408,7 +408,7 @@ class SV1Initializer(
                           )
                           val initialValues = DynamicSynchronizerParameters.initialValues(clock, ProtocolVersion.v33)
                           val values = initialValues.tryUpdate(
                  -          // TODO(#6055) Consider increasing topology change delay again
                  +          // TODO(DACH-NY/canton-network-node#6055) Consider increasing topology change delay again
                             topologyChangeDelay = NonNegativeFiniteDuration.tryOfMillis(0),
                             trafficControlParameters = Some(initialTrafficControlParameters),
                             reconciliationInterval =
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/store/SvDsoStore.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/store/SvDsoStore.scala
                  index 59e6ae2626..19265f4659 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/store/SvDsoStore.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/store/SvDsoStore.scala
                  @@ -1259,7 +1259,7 @@ object SvDsoStore {
                               Some(Timestamp.assertFromInstant(contract.payload.nextPaymentDueAt)),
                           )
                         },
                  -      // TODO (#8782) revisit if it makes sense
                  +      // TODO (DACH-NY/canton-network-node#8782) revisit if it makes sense
                         mkFilter(sub.TerminatedSubscription.COMPANION)(co =>
                           co.payload.subscriptionData.dso == dso && co.payload.subscriptionData.provider == dso
                         ) { contract =>
                  diff --git a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala
                  index a058f48688..b7e444fbad 100644
                  --- a/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala
                  +++ b/apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/util/SvUtil.scala
                  @@ -136,7 +136,7 @@ object SvUtil {
                         Map(
                           synchronizerId.toProtoPrimitive -> new SynchronizerConfig(
                             dso.decentralizedsynchronizer.SynchronizerState.DS_OPERATIONAL,
                  -          "TODO(#4900): share CometBFT genesis.json of sv1 via DsoRules config.",
                  +          "TODO(DACH-NY/canton-network-node#4900): share CometBFT genesis.json of sv1 via DsoRules config.",
                             // TODO(M3-47): also share the Canton SynchronizerId of the decentralized domain here
                             Optional.of(defaultAcsCommitmentReconciliationInterval.duration.toSeconds),
                           )
                  diff --git a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/ValidatorApp.scala b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/ValidatorApp.scala
                  index 0a77cb8df7..2082887c87 100644
                  --- a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/ValidatorApp.scala
                  +++ b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/ValidatorApp.scala
                  @@ -213,7 +213,7 @@ class ValidatorApp(
                                       case Seq() =>
                                         sys.error("Expected at least one sequencer connection but got 0")
                                       case Seq(connections) => connections
                  -                    // TODO (#13301) handle this in a cleaner way (or just drop hard domain migration support at some point)
                  +                    // TODO (DACH-NY/canton-network-node#13301) handle this in a cleaner way (or just drop hard domain migration support at some point)
                                       case _ =>
                                         sys.error(
                                           s"Hard domain migrations and soft domain migrations are incompatible, got sequencer connections: $allSequencerConnections"
                  @@ -697,7 +697,7 @@ class ValidatorApp(
                             val acsTimestamp =
                               readRestoreDump.map(dump => CantonTimestamp.assertFromInstant(dump.acsTimestamp))
                             Future.successful(
                  -            // TODO(#9731): get migration id from sponsor sv / scan instead of configuring here
                  +            // TODO(DACH-NY/canton-network-node#9731): get migration id from sponsor sv / scan instead of configuring here
                               DomainMigrationInfo(
                                 config.domainMigrationId,
                                 acsTimestamp,
                  @@ -843,7 +843,7 @@ class ValidatorApp(
                         })
                         _ <- appInitStep(s"Onboard validator wallet users") {
                           val users = if (config.validatorWalletUsers.isEmpty) {
                  -          // TODO(#12764) also onboard ledgerApiUser if both users are set
                  +          // TODO(#760) also onboard ledgerApiUser if both users are set
                             Seq(config.ledgerApiUser)
                           } else {
                             config.validatorWalletUsers
                  diff --git a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/admin/http/HttpValidatorAdminHandler.scala b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/admin/http/HttpValidatorAdminHandler.scala
                  index ac98081731..3c8ea6f9b7 100644
                  --- a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/admin/http/HttpValidatorAdminHandler.scala
                  +++ b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/admin/http/HttpValidatorAdminHandler.scala
                  @@ -126,7 +126,7 @@ class HttpValidatorAdminHandler(
                     ] = {
                       implicit val TracedUser(_, tracedContext) = tuser
                       withSpan(s"$workflowId.listUsers") { _ => _ =>
                  -      // TODO(#12550): move away from tracking onboarded users via on-ledger contracts, and create only one WalletAppInstall per user-party
                  +      // TODO(DACH-NY/canton-network-node#12550): move away from tracking onboarded users via on-ledger contracts, and create only one WalletAppInstall per user-party
                         store.listUsers().map(us => definitions.ListUsersResponse(us.toVector))
                       }
                     }
                  @@ -174,7 +174,7 @@ class HttpValidatorAdminHandler(
                             .getDomainDataSnapshot(
                               Instant.parse(timestamp),
                               synchronizerId,
                  -            // TODO(#9731): get migration id from scan instead of configuring here
                  +            // TODO(DACH-NY/canton-network-node#9731): get migration id from scan instead of configuring here
                               migrationId getOrElse (config.domainMigrationId + 1),
                               force.getOrElse(false),
                             )
                  diff --git a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/automation/TopupMemberTrafficTrigger.scala b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/automation/TopupMemberTrafficTrigger.scala
                  index 13b4aac87b..a3ac96dbf0 100644
                  --- a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/automation/TopupMemberTrafficTrigger.scala
                  +++ b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/automation/TopupMemberTrafficTrigger.scala
                  @@ -83,7 +83,7 @@ class TopupMemberTrafficTrigger(
                           validatorTopupConfig.topupTriggerPollingInterval,
                         )
                         _ = assert(topupParameters.topupAmount > 0, "topupAmount must be positive")
                  -      // TODO(#13301) This switches over to purchasing traffic for the new synchronizer
                  +      // TODO(DACH-NY/canton-network-node#13301) This switches over to purchasing traffic for the new synchronizer
                         // as soon as it is active. This might be sufficient for Amulet where
                         // there a validator has a relatively small amount of contracts and everything is
                         // forced to switch over so the remaining extra traffic + the base rate might
                  diff --git a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/config/ValidatorAppConfig.scala b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/config/ValidatorAppConfig.scala
                  index 0ba82e7ea6..c107d3476d 100644
                  --- a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/config/ValidatorAppConfig.scala
                  +++ b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/config/ValidatorAppConfig.scala
                  @@ -71,7 +71,7 @@ final case class BuyExtraTrafficConfig(
                         * This is used to set the deadline for grpc calls to the participant.
                         * If the call takes longer than this, it will be cancelled and retried.
                         * This is only intended for testing purposes.
                  -      * TODO(#11501) block and unblock submissions on domain reconnect
                  +      * TODO(DACH-NY/canton-network-node#11501) block and unblock submissions on domain reconnect
                         */
                       grpcDeadline: Option[NonNegativeFiniteDuration] = None,
                   )
                  @@ -168,7 +168,7 @@ case class ValidatorAppBackendConfig(
                       svUser: Option[String] = None,
                       domainMigrationDumpPath: Option[Path] = None,
                       restoreFromMigrationDump: Option[Path] = None,
                  -    // TODO(#9731): get migration id from sponsor sv / scan instead of configuring here
                  +    // TODO(DACH-NY/canton-network-node#9731): get migration id from sponsor sv / scan instead of configuring here
                       domainMigrationId: Long = 0L,
                       parameters: SpliceParametersConfig = SpliceParametersConfig(),
                       ingestFromParticipantBegin: Boolean = true,
                  @@ -195,7 +195,7 @@ case class ValidatorAppBackendConfig(
                       deduplicationDuration: PositiveDurationSeconds = PositiveDurationSeconds.ofHours(24),
                       txLogBackfillEnabled: Boolean = true,
                       txLogBackfillBatchSize: Int = 100,
                  -) extends SpliceBackendConfig // TODO(#736): fork or generalize this trait.
                  +) extends SpliceBackendConfig // TODO(DACH-NY/canton-network-node#736): fork or generalize this trait.
                       {
                     override val nodeTypeName: String = "validator"
                   
                  diff --git a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/util/ValidatorUtil.scala b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/util/ValidatorUtil.scala
                  index 4cd5b25706..3a5d0969c6 100644
                  --- a/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/util/ValidatorUtil.scala
                  +++ b/apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/util/ValidatorUtil.scala
                  @@ -239,7 +239,7 @@ private[validator] object ValidatorUtil {
                           // Note: it's OK to skip off-boarding in this case, as on-boarding always creates an install contract first,
                           // and off-boarding archives the install contract jointly with the validator right. Thus we can't end up in a
                           // situation where there is a stray validator right.
                  -        // TODO(#12556): revisit the above statement in the context of removing the data races wrt validator user rights that do exist
                  +        // TODO(#772): revisit the above statement in the context of removing the data races wrt validator user rights that do exist
                           logger
                             .info(s"Skipping off-boarding of $endUserName, as no wallet install contract was found.")
                           Future.unit
                  diff --git a/apps/wallet/frontend/src/__tests__/setup/config.ts b/apps/wallet/frontend/src/__tests__/setup/config.ts
                  index 086cfe0259..2d4740710f 100644
                  --- a/apps/wallet/frontend/src/__tests__/setup/config.ts
                  +++ b/apps/wallet/frontend/src/__tests__/setup/config.ts
                  @@ -1,7 +1,7 @@
                   // Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
                   // SPDX-License-Identifier: Apache-2.0
                   
                  -// TODO(#7579) -- remove duplication from default config
                  +// TODO(#986) -- remove duplication from default config
                   
                   const config = {
                     // HMAC256-based auth with browser self-signed tokens
                  diff --git a/apps/wallet/frontend/src/components/Onboarding.tsx b/apps/wallet/frontend/src/components/Onboarding.tsx
                  index 7f09b32217..e56c520214 100644
                  --- a/apps/wallet/frontend/src/components/Onboarding.tsx
                  +++ b/apps/wallet/frontend/src/components/Onboarding.tsx
                  @@ -29,7 +29,7 @@ const Onboarding: React.FC = () => {
                         navigate('/transactions');
                       },
                       onError: error => {
                  -      // TODO (#5491): show an error to the user.
                  +      // TODO (DACH-NY/canton-network-node#5491): show an error to the user.
                         console.error(`Failed to onboard user`, error);
                       },
                       retry: 3,
                  diff --git a/apps/wallet/frontend/src/components/SendTransfer.tsx b/apps/wallet/frontend/src/components/SendTransfer.tsx
                  index 5d2b14f2c6..341c06280c 100644
                  --- a/apps/wallet/frontend/src/components/SendTransfer.tsx
                  +++ b/apps/wallet/frontend/src/components/SendTransfer.tsx
                  @@ -89,7 +89,7 @@ const SendTransfer: React.FC = () => {
                         navigate('/transactions');
                       },
                       onError: error => {
                  -      // TODO (#5491): show an error to the user.
                  +      // TODO (DACH-NY/canton-network-node#5491): show an error to the user.
                         console.error(
                           `Failed to create transfer offer to ${receiver} of ${ccAmount} CC with trackingId ${deduplicationId}`,
                           error
                  @@ -119,7 +119,7 @@ const SendTransfer: React.FC = () => {
                         navigate('/transactions');
                       },
                       onError: error => {
                  -      // TODO (#5491): show an error to the user.
                  +      // TODO (DACH-NY/canton-network-node#5491): show an error to the user.
                         console.error(
                           `Failed to send transfer to ${receiver} of ${ccAmount} CC with deduplicationId ${deduplicationId}`,
                           error
                  diff --git a/apps/wallet/frontend/src/components/TransactionHistory.tsx b/apps/wallet/frontend/src/components/TransactionHistory.tsx
                  index b9a5b6f1ca..2f59ca0fec 100644
                  --- a/apps/wallet/frontend/src/components/TransactionHistory.tsx
                  +++ b/apps/wallet/frontend/src/components/TransactionHistory.tsx
                  @@ -266,7 +266,7 @@ const TransactionSubtypeText: React.FC<{ transaction: Transaction; primaryPartyI
                         // ExtraTrafficPurchase
                         text = 'Extra Traffic Purchase';
                         break;
                  -    // TODO(#14568): Add frontend tests for the transfer pre-approval tx subtypes
                  +    // TODO(DACH-NY/canton-network-node#14568): Add frontend tests for the transfer pre-approval tx subtypes
                       case 'AmuletRules_CreateTransferPreapproval':
                         // TransferPreapprovalCreated
                         text = 'Transfer Preapproval Created';
                  @@ -361,7 +361,7 @@ const TransactionSubtypeText: React.FC<{ transaction: Transaction; primaryPartyI
                         break;
                       case 'TransferFactory_Transfer': {
                         const transfer = toTransfer(transaction);
                  -      // TODO(#19607) Improve display
                  +      // TODO(DACH-NY/canton-network-node#19607) Improve display
                         const target =
                           primaryPartyId == transfer.transferInstructionReceiver
                             ? `from ${shortenPartyId(transfer.senderId)}`
                  diff --git a/apps/wallet/frontend/src/components/TransferPreapproval.tsx b/apps/wallet/frontend/src/components/TransferPreapproval.tsx
                  index df059a39e5..8bb4577de1 100644
                  --- a/apps/wallet/frontend/src/components/TransferPreapproval.tsx
                  +++ b/apps/wallet/frontend/src/components/TransferPreapproval.tsx
                  @@ -31,7 +31,7 @@ const TransferPreapproval: React.FC = () => {
                         navigate('/transactions');
                       },
                       onError: error => {
                  -      // TODO (#5491): show an error to the user.
                  +      // TODO (DACH-NY/canton-network-node#5491): show an error to the user.
                         console.error(`Failed to create transfer preapproval`, error);
                       },
                     });
                  diff --git a/apps/wallet/frontend/src/hooks/usePrimaryParty.ts b/apps/wallet/frontend/src/hooks/usePrimaryParty.ts
                  index 6e21b5c707..eb268b0b68 100644
                  --- a/apps/wallet/frontend/src/hooks/usePrimaryParty.ts
                  +++ b/apps/wallet/frontend/src/hooks/usePrimaryParty.ts
                  @@ -3,7 +3,7 @@
                   import { useUserStatus } from './useUserStatus';
                   
                   // A hook to fetch the primary party ID via the wallet userStatus API
                  -// TODO(#5176) -- consider querying the json ledger API instead to avoid having more than 1 primary party hook
                  +// TODO(DACH-NY/canton-network-node#5176) -- consider querying the json ledger API instead to avoid having more than 1 primary party hook
                   export const usePrimaryParty = (): string | undefined => {
                     const userStatusQuery = useUserStatus();
                     return userStatusQuery.data?.partyId;
                  diff --git a/apps/wallet/frontend/src/routes/confirmPayment.tsx b/apps/wallet/frontend/src/routes/confirmPayment.tsx
                  index 19bb98a312..56c6a00638 100644
                  --- a/apps/wallet/frontend/src/routes/confirmPayment.tsx
                  +++ b/apps/wallet/frontend/src/routes/confirmPayment.tsx
                  @@ -273,7 +273,7 @@ const TotalPaymentContainer: React.FC = ({
                     const converted = convertCurrency(total.totalAmount, total.totalCurrency, amuletPrice);
                     const ccAmount = total.totalCurrency === 'AmuletUnit' ? total.totalAmount : converted.amount;
                   
                  -  const totalAmulet = ccAmount; // TODO (#3492): compute actual fee
                  +  const totalAmulet = ccAmount; // TODO (#878): compute actual fee
                     const totalUSDUnit = totalAmulet.times(amuletPrice);
                   
                     return (
                  diff --git a/apps/wallet/frontend/vite.config.mjs b/apps/wallet/frontend/vite.config.mjs
                  index bc0d3d6cdd..f3d5691893 100644
                  --- a/apps/wallet/frontend/vite.config.mjs
                  +++ b/apps/wallet/frontend/vite.config.mjs
                  @@ -16,7 +16,7 @@ export default defineConfig(({ mode }) => {
                       },
                       build: {
                         outDir: 'build',
                  -      // TODO(#7672): reduce/remove this limit
                  +      // TODO(#854): reduce/remove this limit
                         chunkSizeWarningLimit: 4800,
                         commonjsOptions: {
                           transformMixedEsModules: true,
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/UserWalletManager.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/UserWalletManager.scala
                  index 8eb08079e2..3d035155e5 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/UserWalletManager.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/UserWalletManager.scala
                  @@ -143,7 +143,7 @@ class UserWalletManager(
                       *
                       * Succeeds if the user has been onboarded and its wallet has been initialized.
                       */
                  -  // TODO(#12550): move away from tracking onboarded users via on-ledger contracts, and create only one WalletAppInstall per user-party
                  +  // TODO(DACH-NY/canton-network-node#12550): move away from tracking onboarded users via on-ledger contracts, and create only one WalletAppInstall per user-party
                     final def lookupUserWallet(
                         endUserName: String
                     )(implicit tc: TraceContext): Future[Option[UserWalletService]] = {
                  @@ -238,7 +238,7 @@ class UserWalletManager(
                         ingestFromParticipantBegin,
                         ingestUpdateHistoryFromParticipantBegin,
                         Option.when(endUserParty == store.walletKey.validatorParty)(validatorTopupConfig),
                  -      // TODO(#12554): make it easier to configure the sweep functionality and guard better against operator errors (typos, etc.)
                  +      // TODO(DACH-NY/canton-network-node#12554): make it easier to configure the sweep functionality and guard better against operator errors (typos, etc.)
                         walletSweep.get(endUserParty.toProtoPrimitive),
                         autoAcceptTransfers.get(endUserParty.toProtoPrimitive),
                         dedupDuration,
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpExternalWalletHandler.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpExternalWalletHandler.scala
                  index ae80018026..e886b237e3 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpExternalWalletHandler.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpExternalWalletHandler.scala
                  @@ -62,7 +62,7 @@ class HttpExternalWalletHandler(
                                 )
                               case QueryResult(dedupOffset, None) =>
                                 val sender = userWalletStore.key.endUserParty
                  -              // TODO(#8300) revisit if we want to retry here.
                  +              // TODO(#979) revisit if we want to retry here.
                                 retryProvider.retryForClientCalls(
                                   "createTransferOffer",
                                   "createTransferOffer",
                  @@ -211,7 +211,7 @@ class HttpExternalWalletHandler(
                                 )
                               case QueryResult(dedupOffset, None) =>
                                 val buyer = userWalletStore.key.endUserParty
                  -              // TODO(#8300) revisit if we want to retry here.
                  +              // TODO(#979) revisit if we want to retry here.
                                 retryProvider
                                   .retryForClientCalls(
                                     "createBuyTrafficRequest",
                  @@ -292,7 +292,7 @@ object HttpExternalWalletHandler {
                       override def determineExceptionErrorKind(exception: Throwable, logger: TracedLogger)(implicit
                           tc: TraceContext
                       ): ErrorKind = exception match {
                  -      // TODO(#8300) global domain can be disconnected and reconnected after config of sequencer connections changed
                  +      // TODO(#979) global domain can be disconnected and reconnected after config of sequencer connections changed
                         case ex: io.grpc.StatusRuntimeException
                             if (ex.getStatus.getCode == Status.Code.FAILED_PRECONDITION && ex.getStatus.getDescription
                               .contains("The domain id was not found")) =>
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpWalletHandlerUtil.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpWalletHandlerUtil.scala
                  index 903076f124..57c446f480 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpWalletHandlerUtil.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/admin/http/HttpWalletHandlerUtil.scala
                  @@ -97,7 +97,7 @@ trait HttpWalletHandlerUtil extends Spanning with NamedLogging {
                         userWallet <- getUserWallet(user)
                         userStore = userWallet.store
                         userParty = userStore.key.endUserParty
                  -      // TODO (#4906) pick install based on disclosed contracts' domain IDs
                  +      // TODO (#998) pick install based on disclosed contracts' domain IDs
                         install <- userStore.getInstall()
                         unadornedUpdate <- getUpdate(install.contractId, userStore)
                         update = install.exercise(_ => unadornedUpdate)
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/automation/SubscriptionReadyForPaymentTrigger.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/automation/SubscriptionReadyForPaymentTrigger.scala
                  index f6a29fdb97..7e59349251 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/automation/SubscriptionReadyForPaymentTrigger.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/automation/SubscriptionReadyForPaymentTrigger.scala
                  @@ -65,7 +65,7 @@ class SubscriptionReadyForPaymentTrigger(
                             val msg =
                               show"Failed making subscription payment due to Daml exception\n${failedOperation.toValue}"
                             // We're throwing this as INTERNAL to avoid that the polling trigger retries this task in a tight loop.
                  -          // TODO(#2034): INTERNAL is not the right option for a ITR_InsufficientFunds error. There we should actually try to create a marker on-ledger to reach out to the user for a decision on whether to continue trying to pay this subscription or not.
                  +          // TODO(DACH-NY/canton-network-node#2034): INTERNAL is not the right option for a ITR_InsufficientFunds error. There we should actually try to create a marker on-ledger to reach out to the user for a decision on whether to continue trying to pay this subscription or not.
                             throw Status.INTERNAL.withDescription(msg).asRuntimeException()
                   
                           case unknown =>
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/config/TreasuryConfig.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/config/TreasuryConfig.scala
                  index 0a38d46538..d21b719be0 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/config/TreasuryConfig.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/config/TreasuryConfig.scala
                  @@ -28,7 +28,7 @@ case class TreasuryConfig(
                         * This is used to set the deadline for grpc calls to the participant.
                         * If the call takes longer than this, it will be cancelled and retried.
                         * This is only intended for testing purposes.
                  -      * TODO(#11501) block and unblock submissions on domain reconnect
                  +      * TODO(DACH-NY/canton-network-node#11501) block and unblock submissions on domain reconnect
                         */
                       grpcDeadline: Option[NonNegativeFiniteDuration] = None,
                   )
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletStore.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletStore.scala
                  index fb4b183a67..a6aefd8879 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletStore.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletStore.scala
                  @@ -59,7 +59,7 @@ trait UserWalletStore extends TxLogAppStore[TxLogEntry] with TransferInputStore
                     ] =
                       // Note: a party can have WalletAppInstall contracts if there are multiple end-users that share the same party
                       // here we just take the first one, preferring an assigned one if available
                  -    // TODO(#12550): remove this confusing behavior and create only one WalletAppInstall per user-party
                  +    // TODO(DACH-NY/canton-network-node#12550): remove this confusing behavior and create only one WalletAppInstall per user-party
                       lookupArbitraryPreferAssigned(installCodegen.WalletAppInstall.COMPANION)
                   
                     final def getInstall()(implicit ec: ExecutionContext, tc: TraceContext): Future[
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletTxLogParser.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletTxLogParser.scala
                  index b9ea0f306d..190c9399f4 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletTxLogParser.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/UserWalletTxLogParser.scala
                  @@ -274,7 +274,7 @@ class UserWalletTxLogParser(
                   
                             // ------------------------------------------------------------------
                             // Transfer Offers
                  -          // TODO (#7153): these are not used for the Transaction History, and would benefit from being split off
                  +          // TODO (#837): these are not used for the Transaction History, and would benefit from being split off
                             // ------------------------------------------------------------------
                   
                             case WalletAppInstall_CreateTransferOffer(ex) =>
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/WalletAmuletEvent.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/WalletAmuletEvent.scala
                  index 993c778e28..8dc9757eb6 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/WalletAmuletEvent.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/WalletAmuletEvent.scala
                  @@ -12,7 +12,7 @@ import org.lfdecentralizedtrust.splice.codegen.java.splice.wallet.{
                   }
                   import org.lfdecentralizedtrust.splice.util.ExerciseNodeCompanion
                   
                  -// TODO(#3984): This entire file could have been generated by some codegen
                  +// TODO(DACH-NY/canton-network-node#3984): This entire file could have been generated by some codegen
                   
                   object WalletAppInstall_ExecuteBatch
                       extends ExerciseNodeCompanion.Mk(
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/db/DbUserWalletStore.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/db/DbUserWalletStore.scala
                  index d54a4572a3..5deefbbc89 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/db/DbUserWalletStore.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/store/db/DbUserWalletStore.scala
                  @@ -241,7 +241,7 @@ class DbUserWalletStore(
                     )(implicit
                         lc: TraceContext
                     ): Future[Seq[store.TxLogEntry.TransactionHistoryTxLogEntry]] = {
                  -    // TODO (#11200): don't use the event id for pagination, use the entry number
                  +    // TODO (#960): don't use the event id for pagination, use the entry number
                       waitUntilAcsIngested {
                         for {
                           rows <- storage
                  diff --git a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/util/TopupUtil.scala b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/util/TopupUtil.scala
                  index fec0be7b67..0f4195821b 100644
                  --- a/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/util/TopupUtil.scala
                  +++ b/apps/wallet/src/main/scala/org/lfdecentralizedtrust/splice/wallet/util/TopupUtil.scala
                  @@ -54,7 +54,7 @@ object TopupUtil {
                     )(implicit tc: TraceContext, ec: ExecutionContext, mat: Materializer) = {
                       scanConnection.getAmuletRulesWithState().flatMap { amuletRules =>
                         // Since we auto-tap CC for traffic purchases on DevNet, we always have sufficient funds
                  -      // TODO(#8046): Considering removing this once we remove auto-tapping in DevNet
                  +      // TODO(#851): Considering removing this once we remove auto-tapping in DevNet
                         if (amuletRules.payload.isDevNet) Future.successful(true)
                         else
                           for {
                  diff --git a/build-tools/find_latest_hard_migration_base_version.sh b/build-tools/find_latest_hard_migration_base_version.sh
                  index 630a129db7..6e458095f3 100755
                  --- a/build-tools/find_latest_hard_migration_base_version.sh
                  +++ b/build-tools/find_latest_hard_migration_base_version.sh
                  @@ -9,5 +9,5 @@
                   set -euo pipefail
                   
                   # latest_release=$(cat "$SPLICE_ROOT/LATEST_RELEASE")
                  -# TODO(#19695) Change this back to latest release after mainnet is on 0.4.x
                  +# TODO(#471) Change this back to latest release after mainnet is on 0.4.x
                   echo "release-line-0.3.21"
                  diff --git a/build-tools/lib/disaster-recovery-commands b/build-tools/lib/disaster-recovery-commands
                  index 5f50a33e35..e635a822b4 100644
                  --- a/build-tools/lib/disaster-recovery-commands
                  +++ b/build-tools/lib/disaster-recovery-commands
                  @@ -1,5 +1,5 @@
                   # -*- shell-script -*-
                  -# TODO(#9531): Currently, this is not tested regularly.
                  +# TODO(DACH-NY/canton-network-node#9531): Currently, this is not tested regularly.
                   subcommand_whitelist[disaster_recovery_test]='Test disaster recovery in a cluster'
                   
                   function subcmd_disaster_recovery_test() {
                  @@ -48,7 +48,7 @@ function subcmd_disaster_recovery_test() {
                     for ingressName in "${!taps[@]}"; do
                       _info "Tapping ${taps[$ingressName]} on ingress $ingressName with token labelled ${tapsTokenNamespace[$ingressName]}"
                       token=$(subcmd_get_token "${tapsTokenNamespace[$ingressName]}" validator)
                  -    # TODO(#12764) remove register when validator does it for us
                  +    # TODO(#760) remove register when validator does it for us
                       curl -sSL --fail-with-body "https://wallet.$ingressName.${GCP_CLUSTER_HOSTNAME}/api/validator/v0/register" \
                            -H "authorization: Bearer ${token}" \
                            -H "content-type: application/json" \
                  @@ -116,7 +116,7 @@ function subcmd_disaster_recovery_test() {
                       kubectl scale deployment -n sv-"$sv" --replicas=0 global-domain-0-cometbft
                     done
                   
                  -  # TODO(#11099): we cannot stop the sequencers here because they are currently needed for the data dumps, so for now we do it after taking the dumps
                  +  # TODO(DACH-NY/canton-network-node#11099): we cannot stop the sequencers here because they are currently needed for the data dumps, so for now we do it after taking the dumps
                   
                     earliest=$(sort -n "$tmpdir/acs_times" | head -1)
                     dump_timestamp=$(echo "$earliest" | xargs -I '&' date -d '@&' "$sortableDateFormat")
                  @@ -200,7 +200,7 @@ EOF
                       fi
                     done
                   
                  -  # TODO(#12123) Reenable this.
                  +  # TODO(#736) Reenable this.
                     # _info "Installing Splitwell"
                     # export SPLICE_DEPLOY_SPLITWELL="true"
                     # _cluster_apply
                  diff --git a/build.sbt b/build.sbt
                  index 8a58f2efe5..930c6bad21 100644
                  --- a/build.sbt
                  +++ b/build.sbt
                  @@ -1149,7 +1149,7 @@ lazy val `apps-common-frontend` = {
                             Some(npmRootDir.value),
                           )
                         },
                  -      // TODO(#7579) -- like npmLint and npmFix above, we could/should run vitest per project.
                  +      // TODO(#986) -- like npmLint and npmFix above, we could/should run vitest per project.
                         // In this case, we really want to do that asap to better parallelize the task in CI.
                         npmTest := {
                           val log = streams.value.log
                  diff --git a/cluster/compose/localnet/conf/canton/app.conf b/cluster/compose/localnet/conf/canton/app.conf
                  index cb700df93c..05c2c2f810 100644
                  --- a/cluster/compose/localnet/conf/canton/app.conf
                  +++ b/cluster/compose/localnet/conf/canton/app.conf
                  @@ -89,7 +89,7 @@ _participant {
                       journal-garbage-collection-delay = 24h
                     }
                   
                  -  # TODO(#8331) Tune cache sizes
                  +  # TODO(DACH-NY/canton-network-node#8331) Tune cache sizes
                     # from https://docs.daml.com/2.8.0/canton/usermanual/performance.html#configuration
                     # tune caching configs of the ledger api server
                     ledger-api {
                  diff --git a/cluster/compose/localnet/conf/splice/sv/app.conf b/cluster/compose/localnet/conf/splice/sv/app.conf
                  index 5f0c502182..1b5ed60cfa 100644
                  --- a/cluster/compose/localnet/conf/splice/sv/app.conf
                  +++ b/cluster/compose/localnet/conf/splice/sv/app.conf
                  @@ -108,7 +108,7 @@ canton {
                       }
                   
                       automation {
                  -      # TODO(#7649) revise and/or remove
                  +      # TODO(DACH-NY/canton-network-node#7649) revise and/or remove
                         enable-dso-delegate-replacement-trigger = true
                         paused-triggers = [
                           "org.lfdecentralizedtrust.splice.automation.AssignTrigger",
                  diff --git a/cluster/deployment/mock/.envrc.vars b/cluster/deployment/mock/.envrc.vars
                  index a77b7f4f8f..9e5c9f7c65 100644
                  --- a/cluster/deployment/mock/.envrc.vars
                  +++ b/cluster/deployment/mock/.envrc.vars
                  @@ -10,7 +10,7 @@ export GCP_CLUSTER_LOGGING_VARIANT="MAX_THROUGHPUT"
                   export GCP_CLUSTER_HOSTNAME="mock.global.canton.network.digitalasset.com"
                   export IS_DEVNET=false
                   
                  -# TODO(#9683) -- remove after migrating all stacks / projects
                  +# TODO(DACH-NY/canton-network-internal#443) -- remove after migrating all stacks / projects
                   export PULUMI_BACKEND_GCPKMS_PROJECT="$CLOUDSDK_CORE_PROJECT"
                   export PULUMI_BACKEND_GCPKMS_NAME="$GCP_CLUSTER_BASENAME"
                   export PULUMI_STACKS_DIR="${SPLICE_ROOT}/cluster/stacks/mock"
                  diff --git a/cluster/deployment/scratchneta/.envrc.vars b/cluster/deployment/scratchneta/.envrc.vars
                  index 6e20767484..f202a25e10 100644
                  --- a/cluster/deployment/scratchneta/.envrc.vars
                  +++ b/cluster/deployment/scratchneta/.envrc.vars
                  @@ -13,7 +13,7 @@ export SHARED_CLUSTER=yes
                   
                   export CNCLUSTER_FIXED_TOKENS=1
                   
                  -# TODO(#9683) -- remove after migrating all stacks / projects
                  +# TODO(DACH-NY/canton-network-internal#443) -- remove after migrating all stacks / projects
                   export PULUMI_BACKEND_GCPKMS_PROJECT="$CLOUDSDK_CORE_PROJECT"
                   export PULUMI_BACKEND_GCPKMS_NAME="$GCP_CLUSTER_BASENAME"
                   export PULUMI_STACKS_DIR="${SPLICE_ROOT}/cluster/stacks/scratchnets"
                  @@ -36,6 +36,6 @@ export APPROVE_SV_RUNBOOK=true
                   
                   # Upgrade workarounds, include a GH issue to remove them once the base version changes
                   
                  -# TODO(#14679): Remove
                  +# TODO(DACH-NY/canton-network-node#14679): Remove
                   export VALIDATOR_RUNBOOK_POSTGRES_PVC_SIZE="240Gi"
                   export CACHE_DEV_DOCKER_REGISTRY=$DEV_DOCKER_REGISTRY
                  diff --git a/cluster/deployment/scratchnetb/.envrc.vars b/cluster/deployment/scratchnetb/.envrc.vars
                  index 7c4c167d22..edf10ad208 100644
                  --- a/cluster/deployment/scratchnetb/.envrc.vars
                  +++ b/cluster/deployment/scratchnetb/.envrc.vars
                  @@ -13,7 +13,7 @@ export SHARED_CLUSTER=yes
                   
                   export CNCLUSTER_FIXED_TOKENS=1
                   
                  -# TODO(#9683) -- remove after migrating all stacks / projects
                  +# TODO(DACH-NY/canton-network-internal#443) -- remove after migrating all stacks / projects
                   export PULUMI_BACKEND_GCPKMS_PROJECT="$CLOUDSDK_CORE_PROJECT"
                   export PULUMI_BACKEND_GCPKMS_NAME="$GCP_CLUSTER_BASENAME"
                   export PULUMI_STACKS_DIR="${SPLICE_ROOT}/cluster/stacks/scratchnets"
                  @@ -36,6 +36,6 @@ export APPROVE_SV_RUNBOOK=true
                   
                   # Upgrade workarounds, include a GH issue to remove them once the base version changes
                   
                  -# TODO(#14679): Remove
                  +# TODO(DACH-NY/canton-network-node#14679): Remove
                   export VALIDATOR_RUNBOOK_POSTGRES_PVC_SIZE="240Gi"
                   export CACHE_DEV_DOCKER_REGISTRY=$DEV_DOCKER_REGISTRY
                  diff --git a/cluster/deployment/scratchnetc/.envrc.vars b/cluster/deployment/scratchnetc/.envrc.vars
                  index 28f3305e74..42cacfc611 100644
                  --- a/cluster/deployment/scratchnetc/.envrc.vars
                  +++ b/cluster/deployment/scratchnetc/.envrc.vars
                  @@ -13,7 +13,7 @@ export SHARED_CLUSTER=yes
                   
                   export CNCLUSTER_FIXED_TOKENS=1
                   
                  -# TODO(#9683) -- remove after migrating all stacks / projects
                  +# TODO(DACH-NY/canton-network-internal#443) -- remove after migrating all stacks / projects
                   export PULUMI_BACKEND_GCPKMS_PROJECT="$CLOUDSDK_CORE_PROJECT"
                   export PULUMI_BACKEND_GCPKMS_NAME="$GCP_CLUSTER_BASENAME"
                   export PULUMI_STACKS_DIR="${SPLICE_ROOT}/cluster/stacks/scratchnets"
                  @@ -36,6 +36,6 @@ export APPROVE_SV_RUNBOOK=true
                   
                   # Upgrade workarounds, include a GH issue to remove them once the base version changes
                   
                  -# TODO(#14679): Remove
                  +# TODO(DACH-NY/canton-network-node#14679): Remove
                   export VALIDATOR_RUNBOOK_POSTGRES_PVC_SIZE="240Gi"
                   export CACHE_DEV_DOCKER_REGISTRY=$DEV_DOCKER_REGISTRY
                  diff --git a/cluster/deployment/scratchnetd/.envrc.vars b/cluster/deployment/scratchnetd/.envrc.vars
                  index 32483e9680..94abdfff68 100644
                  --- a/cluster/deployment/scratchnetd/.envrc.vars
                  +++ b/cluster/deployment/scratchnetd/.envrc.vars
                  @@ -13,7 +13,7 @@ export SHARED_CLUSTER=yes
                   
                   export CNCLUSTER_FIXED_TOKENS=1
                   
                  -# TODO(#9683) -- remove after migrating all stacks / projects
                  +# TODO(DACH-NY/canton-network-internal#443) -- remove after migrating all stacks / projects
                   export PULUMI_BACKEND_GCPKMS_PROJECT="$CLOUDSDK_CORE_PROJECT"
                   export PULUMI_BACKEND_GCPKMS_NAME="$GCP_CLUSTER_BASENAME"
                   export PULUMI_STACKS_DIR="${SPLICE_ROOT}/cluster/stacks/scratchnets"
                  @@ -36,7 +36,7 @@ export APPROVE_SV_RUNBOOK=true
                   
                   # Upgrade workarounds, include a GH issue to remove them once the base version changes
                   
                  -# TODO(#14679): Remove
                  +# TODO(DACH-NY/canton-network-node#14679): Remove
                   export VALIDATOR_RUNBOOK_POSTGRES_PVC_SIZE="240Gi"
                   export OVERRIDE_VERSION="0.4.0"
                   export CHARTS_VERSION="0.4.0"
                  diff --git a/cluster/deployment/scratchnete/.envrc.vars b/cluster/deployment/scratchnete/.envrc.vars
                  index 4681509488..e025f42d9f 100644
                  --- a/cluster/deployment/scratchnete/.envrc.vars
                  +++ b/cluster/deployment/scratchnete/.envrc.vars
                  @@ -13,7 +13,7 @@ export SHARED_CLUSTER=yes
                   
                   export CNCLUSTER_FIXED_TOKENS=1
                   
                  -# TODO(#9683) -- remove after migrating all stacks / projects
                  +# TODO(DACH-NY/canton-network-internal#443) -- remove after migrating all stacks / projects
                   export PULUMI_BACKEND_GCPKMS_PROJECT="$CLOUDSDK_CORE_PROJECT"
                   export PULUMI_BACKEND_GCPKMS_NAME="$GCP_CLUSTER_BASENAME"
                   export PULUMI_STACKS_DIR="${SPLICE_ROOT}/cluster/stacks/scratchnets"
                  @@ -36,6 +36,6 @@ export APPROVE_SV_RUNBOOK=true
                   
                   # Upgrade workarounds, include a GH issue to remove them once the base version changes
                   
                  -# TODO(#14679): Remove
                  +# TODO(DACH-NY/canton-network-node#14679): Remove
                   export VALIDATOR_RUNBOOK_POSTGRES_PVC_SIZE="240Gi"
                   export CACHE_DEV_DOCKER_REGISTRY=$DEV_DOCKER_REGISTRY
                  diff --git a/cluster/expected/infra/expected.json b/cluster/expected/infra/expected.json
                  index 0109df1791..4995b0a882 100644
                  --- a/cluster/expected/infra/expected.json
                  +++ b/cluster/expected/infra/expected.json
                  @@ -1983,7 +1983,7 @@
                       "id": "",
                       "inputs": {
                         "description": "Logs with a severity level of warning or above",
                  -      "filter": "severity>=WARNING\nresource.type=\"k8s_container\"\nresource.labels.cluster_name=\"cn-mocknet\"\n-- Note that we ignore the validator runbook. This is because we reset it periodically, which sometimes produces noise.\nresource.labels.namespace_name=~\"sv|validator1|multi-validator|splitwell\"\n-(resource.labels.container_name=~\"participant\" AND jsonPayload.message=~\"Instrument .* has recorded multiple values for the same attributes.\")\n-- https://github.com/DACH-NY/canton-network-node/issues/10475\n-(resource.labels.container_name=\"cometbft\" AND\n  (   jsonPayload.err=~\"\\Aerror adding vote\\z|\\Aalready stopped\\z|use of closed network connection\"\n   OR jsonPayload._msg=~\"\\A(Stopping peer for error|Stopped accept routine, as transport is closed|Failed to write PacketMsg|Connection failed @ sendRoutine)\\z\"\n   OR jsonPayload.error=\"already stopped\"\n   OR textPayload=\"cp: not replacing '/cometbft/data/priv_validator_state.json'\"\n   OR (jsonPayload._msg=\"Error stopping connection\" AND jsonPayload.err=\"already stopped\")\n   OR jsonPayload._msg=\"Error adding peer to new bucket\"))\n-- execution context overload\n-jsonPayload.message=~\"Task runner canton-env-ec is .* overloaded\"\n-- on startup\n-textPayload=~\"Picked up JAVA_TOOL_OPTIONS:\"\n-- \\A and \\z anchor a search (=~) at beginning/end of string, respectively\n-- regex is significantly faster than OR; gcp docs themselves recommend\n-- regex-based factoring\n-resource.labels.container_name=~\"\\A(ans|wallet|scan|sv|splitwell)-web-ui\\z\"\n-- sequencer down\n-(resource.labels.namespace_name=~\"validator|splitwell\"\n  AND resource.labels.container_name=~\"participant\"\n  AND jsonPayload.message=~\"SEQUENCER_SUBSCRIPTION_LOST|Request failed for sequencer|Sequencer shutting down|Submission timed out|Response message for request .* timed out |periodic acknowledgement failed|Token refresh failed with Status{code=UNAVAILABLE\")\n-(resource.labels.container_name=\"postgres-exporter\" AND jsonPayload.msg=~\"Error loading config|Excluded databases\")\n-jsonPayload.message=~\"UnknownHostException\"\n-(resource.labels.container_name=~\"participant|mediator\" AND jsonPayload.message=~\"Late processing \\(or clock skew\\) of batch\")\n-(resource.labels.container_name=\"sequencer\" AND jsonPayload.stack_trace=~\"UnresolvedAddressException\")\n-(resource.labels.container_name=\"sequencer-pg\" AND\n  (\"checkpoints are occurring too frequently\" OR \"Consider increasing the configuration parameter \\\"max_wal_size\\\".\"))\n-(resource.labels.container_name=~\"participant\" AND\n  jsonPayload.message=~\"SYNC_SERVICE_ALARM.*Received a request.*where the view.*has (missing|extra) recipients|LOCAL_VERDICT_MALFORMED_PAYLOAD.*Rejected transaction due to malformed payload within views.*WrongRecipients|channel.*shutdown did not complete gracefully in allotted|LOCAL_VERDICT_FAILED_MODEL_CONFORMANCE_CHECK.*: UnvettedPackages\")\n-(resource.labels.container_name=\"mediator\" AND\n  jsonPayload.message=~\"MEDIATOR_RECEIVED_MALFORMED_MESSAGE.*(Reason: (Missing root hash message for informee participants|Superfluous root hash message)|Received a (mediator|confirmation) response.*with an invalid root hash)\")\n-(jsonPayload.logger_name=~\"c.d.n.a.AdminAuthExtractor:\" AND jsonPayload.message=~\"Authorization Failed\")\n-(jsonPayload.level=\"error\" AND jsonPayload.msg=~\"/readyz\")\n-- The prometheus export server does not wait for any ongoing requests when shutting down https://github.com/prometheus/client_java/issues/938\n-jsonPayload.message=\"The Prometheus metrics HTTPServer caught an Exception while trying to send the metrics response.\"\n-- istio-proxy is spammy with warnings\n-(resource.labels.container_name=\"istio-proxy\" AND severity=WARNING\nresource.type=\"k8s_container\"\nresource.labels.cluster_name=\"cn-mocknet\"\n-- Note that we ignore the validator runbook. This is because we reset it periodically, which sometimes produces noise.\nresource.labels.namespace_name=~\"sv|validator1|multi-validator|splitwell\"\n-(resource.labels.container_name=~\"participant\" AND jsonPayload.message=~\"Instrument .* has recorded multiple values for the same attributes.\")\n-- https://github.com/DACH-NY/canton-network-node/issues/10475\n-(resource.labels.container_name=\"cometbft\" AND\n  (   jsonPayload.err=~\"\\Aerror adding vote\\z|\\Aalready stopped\\z|use of closed network connection\"\n   OR jsonPayload._msg=~\"\\A(Stopping peer for error|Stopped accept routine, as transport is closed|Failed to write PacketMsg|Connection failed @ sendRoutine)\\z\"\n   OR jsonPayload.error=\"already stopped\"\n   OR textPayload=\"cp: not replacing '/cometbft/data/priv_validator_state.json'\"\n   OR (jsonPayload._msg=\"Error stopping connection\" AND jsonPayload.err=\"already stopped\")\n   OR jsonPayload._msg=\"Error adding peer to new bucket\"))\n-- execution context overload\n-jsonPayload.message=~\"Task runner canton-env-ec is .* overloaded\"\n-- on startup\n-textPayload=~\"Picked up JAVA_TOOL_OPTIONS:\"\n-- \\A and \\z anchor a search (=~) at beginning/end of string, respectively\n-- regex is significantly faster than OR; gcp docs themselves recommend\n-- regex-based factoring\n-resource.labels.container_name=~\"\\A(ans|wallet|scan|sv|splitwell)-web-ui\\z\"\n-- sequencer down\n-(resource.labels.namespace_name=~\"validator|splitwell\"\n  AND resource.labels.container_name=~\"participant\"\n  AND jsonPayload.message=~\"SEQUENCER_SUBSCRIPTION_LOST|Request failed for sequencer|Sequencer shutting down|Submission timed out|Response message for request .* timed out |periodic acknowledgement failed|Token refresh failed with Status{code=UNAVAILABLE\")\n-(resource.labels.container_name=\"postgres-exporter\" AND jsonPayload.msg=~\"Error loading config|Excluded databases\")\n-jsonPayload.message=~\"UnknownHostException\"\n-(resource.labels.container_name=~\"participant|mediator\" AND jsonPayload.message=~\"Late processing \\(or clock skew\\) of batch\")\n-(resource.labels.container_name=\"sequencer\" AND jsonPayload.stack_trace=~\"UnresolvedAddressException\")\n-(resource.labels.container_name=\"sequencer-pg\" AND\n  (\"checkpoints are occurring too frequently\" OR \"Consider increasing the configuration parameter \\\"max_wal_size\\\".\"))\n-(resource.labels.container_name=~\"participant\" AND\n  jsonPayload.message=~\"SYNC_SERVICE_ALARM.*Received a request.*where the view.*has (missing|extra) recipients|LOCAL_VERDICT_MALFORMED_PAYLOAD.*Rejected transaction due to malformed payload within views.*WrongRecipients|channel.*shutdown did not complete gracefully in allotted|LOCAL_VERDICT_FAILED_MODEL_CONFORMANCE_CHECK.*: UnvettedPackages\")\n-(resource.labels.container_name=\"mediator\" AND\n  jsonPayload.message=~\"MEDIATOR_RECEIVED_MALFORMED_MESSAGE.*(Reason: (Missing root hash message for informee participants|Superfluous root hash message)|Received a (mediator|confirmation) response.*with an invalid root hash)\")\n-(jsonPayload.logger_name=~\"c.d.n.a.AdminAuthExtractor:\" AND jsonPayload.message=~\"Authorization Failed\")\n-(jsonPayload.level=\"error\" AND jsonPayload.msg=~\"/readyz\")\n-- The prometheus export server does not wait for any ongoing requests when shutting down https://github.com/prometheus/client_java/issues/938\n-jsonPayload.message=\"The Prometheus metrics HTTPServer caught an Exception while trying to send the metrics response.\"\n-- istio-proxy is spammy with warnings\n-(resource.labels.container_name=\"istio-proxy\" AND severity Postgres
                   
                   function installReplicatorPassword(postgres: CloudPostgres): PostgresPassword {
                  @@ -383,7 +383,7 @@ function createPublicationAndReplicationSlots(
                     return new command.local.Command(
                       `${postgres.namespace.logicalName}-${replicatorUserName}-pub-replicate-slots`,
                       {
                  -      // TODO (#19809) refactor to invoke external shell script
                  +      // TODO (#455) refactor to invoke external shell script
                         // ----
                         // from https://cloud.google.com/datastream/docs/configure-cloudsql-psql
                         create: pulumi.interpolate`
                  @@ -419,7 +419,7 @@ function createPublicationAndReplicationSlots(
                             ALTER USER ${postgres.user.name} WITH REPLICATION; -- needed to create the replication slot
                             DO $$
                             BEGIN
                  -            -- TODO (#19811) drop slot, pub if table list doesn't match
                  +            -- TODO (#453) drop slot, pub if table list doesn't match
                               IF NOT EXISTS (SELECT 1 FROM pg_publication WHERE pubname = '${publicationName}') THEN
                                 CREATE PUBLICATION ${publicationName}
                                   FOR TABLE ${tablesToReplicate.join(', ')};
                  diff --git a/cluster/pulumi/canton-network/src/chaosMesh.ts b/cluster/pulumi/canton-network/src/chaosMesh.ts
                  index 922f61ef1e..d3952e072c 100644
                  --- a/cluster/pulumi/canton-network/src/chaosMesh.ts
                  +++ b/cluster/pulumi/canton-network/src/chaosMesh.ts
                  @@ -29,7 +29,7 @@ export const podKillSchedule = (
                           namespace: chaosMeshNs.metadata.name,
                         },
                         spec: {
                  -        // TODO(#10689) Reduce this back to 5min once Canton sequencers stop being so slow
                  +        // TODO(DACH-NY/canton-network-node#10689) Reduce this back to 5min once Canton sequencers stop being so slow
                           schedule: '@every 60m',
                           historyLimit: 2,
                           concurrencyPolicy: 'Forbid',
                  diff --git a/cluster/pulumi/canton-network/src/dso.ts b/cluster/pulumi/canton-network/src/dso.ts
                  index d2406cd71e..e28fa82416 100644
                  --- a/cluster/pulumi/canton-network/src/dso.ts
                  +++ b/cluster/pulumi/canton-network/src/dso.ts
                  @@ -187,7 +187,7 @@ export class Dso extends pulumi.ComponentResource {
                   
                       const useCantonBft =
                         this.args.decentralizedSynchronizerUpgradeConfig.active.sequencer.enableBftSequencer;
                  -    // TODO(#19670): long-term CantonBFT deployments should be robust enough to onboard in parallel again?
                  +    // TODO(#893): long-term CantonBFT deployments should be robust enough to onboard in parallel again?
                       const incrementalOnboarding = useCantonBft;
                   
                       // recursive install function to allow injecting dependencies on previous svs
                  diff --git a/cluster/pulumi/canton-network/src/sv.ts b/cluster/pulumi/canton-network/src/sv.ts
                  index d8022f43b1..e9ecce6ddf 100644
                  --- a/cluster/pulumi/canton-network/src/sv.ts
                  +++ b/cluster/pulumi/canton-network/src/sv.ts
                  @@ -543,7 +543,7 @@ function installScan(
                     };
                   
                     const scan = installSpliceHelmChart(xns, 'scan', 'splice-scan', scanValues, activeVersion, {
                  -    // TODO(#19670) if possible, don't require parallel start of sv app and scan when using CantonBft
                  +    // TODO(#893) if possible, don't require parallel start of sv app and scan when using CantonBft
                       dependsOn: dependsOn
                         .concat(decentralizedSynchronizerNode.dependencies)
                         .concat(
                  diff --git a/cluster/pulumi/common-sv/src/svConfigs.ts b/cluster/pulumi/common-sv/src/svConfigs.ts
                  index ede91cdf56..904939056b 100644
                  --- a/cluster/pulumi/common-sv/src/svConfigs.ts
                  +++ b/cluster/pulumi/common-sv/src/svConfigs.ts
                  @@ -38,11 +38,11 @@ const svCometBftSecrets: pulumi.Output[] = isMainNet
                         svCometBftKeysFromSecret('sv16-cometbft-keys'),
                       ];
                   // to generate new keys: https://cimain.network.canton.global/sv_operator/sv_helm.html#generating-your-cometbft-node-keys
                  -// TODO(#11109): rotate the non-mainNet keys as they have been exposed in github (once mechanism is in place)
                  +// TODO(DACH-NY/canton-network-internal#435): rotate the non-mainNet keys as they have been exposed in github (once mechanism is in place)
                   export const svConfigs: StaticSvConfig[] = isMainNet
                     ? [
                         {
                  -        // TODO(#12169): consider making nodeName and ingressName the same (also for all other SVs)
                  +        // TODO(DACH-NY/canton-network-node#12169): consider making nodeName and ingressName the same (also for all other SVs)
                           nodeName: 'sv-1',
                           ingressName: 'sv-2', // fun, right?
                           onboardingName: 'Digital-Asset-2',
                  @@ -67,7 +67,7 @@ export const svConfigs: StaticSvConfig[] = isMainNet
                       ]
                     : [
                         {
                  -        // TODO(#12169): consider making nodeName and ingressName the same (also for all other SVs)
                  +        // TODO(DACH-NY/canton-network-node#12169): consider making nodeName and ingressName the same (also for all other SVs)
                           nodeName: 'sv-1',
                           ingressName: 'sv-2', // fun, right?
                           onboardingName: 'Digital-Asset-2',
                  @@ -91,7 +91,7 @@ export const svConfigs: StaticSvConfig[] = isMainNet
                           ...(sv1ScanBigQuery ? { scanBigQuery: { dataset: 'devnet_da2_scan', prefix: 'da2' } } : {}),
                         },
                         {
                  -        // TODO(#12169): consider making nodeName and ingressName the same (also for all other SVs)
                  +        // TODO(DACH-NY/canton-network-node#12169): consider making nodeName and ingressName the same (also for all other SVs)
                           nodeName: 'sv-2',
                           ingressName: 'sv-2-eng',
                           onboardingName: 'Digital-Asset-Eng-2',
                  diff --git a/cluster/pulumi/common-sv/src/synchronizer/cometBftNodeConfigs.ts b/cluster/pulumi/common-sv/src/synchronizer/cometBftNodeConfigs.ts
                  index af7b394b28..17f0cd529d 100644
                  --- a/cluster/pulumi/common-sv/src/synchronizer/cometBftNodeConfigs.ts
                  +++ b/cluster/pulumi/common-sv/src/synchronizer/cometBftNodeConfigs.ts
                  @@ -86,7 +86,7 @@ export class CometBftNodeConfigs {
                     }
                   
                     private istioExternalPort(nodeIndex: number) {
                  -    // TODO(#10482) Revisit port scheme
                  +    // TODO(DACH-NY/canton-network-node#10482) Revisit port scheme
                       return nodeIndex >= 10
                         ? Number(`26${this._domainMigrationId}${nodeIndex}`)
                         : Number(`26${this._domainMigrationId}${nodeIndex}6`);
                  diff --git a/cluster/pulumi/common-sv/src/synchronizer/cometbft.ts b/cluster/pulumi/common-sv/src/synchronizer/cometbft.ts
                  index 21080366f8..953a87ec0d 100644
                  --- a/cluster/pulumi/common-sv/src/synchronizer/cometbft.ts
                  +++ b/cluster/pulumi/common-sv/src/synchronizer/cometbft.ts
                  @@ -34,7 +34,7 @@ export type Cometbft = {
                     release: InstalledHelmChart;
                   };
                   
                  -// TODO(#16510) -- retrieve exact chain id directly from an env var / external config
                  +// TODO(#679) -- retrieve exact chain id directly from an env var / external config
                   const getChainId = (migrationId: number): string => {
                     if (`${CLUSTER_BASENAME}`.startsWith('scratch') && !isDevNet) {
                       return 'test';
                  diff --git a/cluster/pulumi/common/src/operator/stack.ts b/cluster/pulumi/common/src/operator/stack.ts
                  index 93ec9d0e2f..9bfb25f4e9 100644
                  --- a/cluster/pulumi/common/src/operator/stack.ts
                  +++ b/cluster/pulumi/common/src/operator/stack.ts
                  @@ -205,7 +205,7 @@ export function createStackCRV1(
                             ? {
                                 continueResyncOnCommitMatch: true,
                                 resyncFrequencySeconds: 300,
                  -              // TODO(#16186): consider scaling down the operator instead
                  +              // TODO(#924): consider scaling down the operator instead
                                 refresh: true,
                               }
                             : {}),
                  diff --git a/cluster/pulumi/gcp/src/gcpProject.ts b/cluster/pulumi/gcp/src/gcpProject.ts
                  index d336433f0b..4dffcaf691 100644
                  --- a/cluster/pulumi/gcp/src/gcpProject.ts
                  +++ b/cluster/pulumi/gcp/src/gcpProject.ts
                  @@ -76,7 +76,7 @@ class GcpProject extends pulumi.ComponentResource {
                       // Note: this should be fine when ran against devnet itself...
                       //  - But since we can automate this now, we might want to simply generate new SV secrets per project
                       //  - We also want to move this to the infra stack so we can parameterize # of SVs
                  -    // TODO(#11109): generate new SV secrets per project
                  +    // TODO(DACH-NY/canton-network-internal#435): generate new SV secrets per project
                       this.importSecretIdFromDevnet('sv-id');
                       this.importSecretIdFromDevnet('sv2-id');
                       this.importSecretIdFromDevnet('sv3-id');
                  diff --git a/cluster/pulumi/gha/src/runners.ts b/cluster/pulumi/gha/src/runners.ts
                  index 634d50f182..7e232aa6c9 100644
                  --- a/cluster/pulumi/gha/src/runners.ts
                  +++ b/cluster/pulumi/gha/src/runners.ts
                  @@ -412,7 +412,7 @@ function installK8sRunnerScaleSet(
                                 {
                                   name: '$job',
                                   env: [
                  -                  // TODO (#18641): remove from here, already defined in splice-test-ci/Dockerfile
                  +                  // TODO (#556): remove from here, already defined in splice-test-ci/Dockerfile
                                     { name: 'CI', value: 'true' },
                                   ],
                                   volumeMounts: [
                  @@ -755,7 +755,7 @@ export function installRunnerScaleSets(controller: k8s.helm.v3.Release): void {
                           // Note that the user needs admin rights on the repo for this to work, since the controller and
                           // listeners use the actions/runners/registration-token endpoint to create a temporary token
                           // for registration, and this endpoint seems to require admin rights.
                  -        // TODO(#17842): The recommended thing to do is use a GitHub App. See here for a guide
                  +        // TODO(DACH-NY/canton-network-node#17842): The recommended thing to do is use a GitHub App. See here for a guide
                           // on setting it up: https://medium.com/@timburkhardt8/registering-github-self-hosted-runners-using-github-app-9cc952ea6ca
                           github_token: spliceEnvConfig.requireEnv('GITHUB_RUNNERS_ACCESS_TOKEN'),
                         },
                  diff --git a/cluster/pulumi/infra/src/auth0.ts b/cluster/pulumi/infra/src/auth0.ts
                  index 4da8cb8ae1..6bd005e6ce 100644
                  --- a/cluster/pulumi/infra/src/auth0.ts
                  +++ b/cluster/pulumi/infra/src/auth0.ts
                  @@ -15,7 +15,7 @@ function newUiApp(
                     name: string,
                     description: string,
                     urlPrefixes: string[],
                  -  // TODO(#12169) Make ingressName the same as the namespace (and rename this argument back to namespace)
                  +  // TODO(DACH-NY/canton-network-node#12169) Make ingressName the same as the namespace (and rename this argument back to namespace)
                     ingressName: string,
                     clusterBasename: string,
                     clusterDnsNames: string[],
                  @@ -97,7 +97,7 @@ function spliceAuth0(clusterBasename: string, dnsNames: string[]) {
                         `SV${sv} UI`,
                         `Used for the Wallet, ANS and SV UIs for SV${sv}`,
                         ['wallet', ansDomainPrefix, 'sv'],
                  -      // TODO(#12169) Clean up this fun
                  +      // TODO(DACH-NY/canton-network-node#12169) Clean up this fun
                         sv == 1 ? 'sv-2' : `sv-${sv}-eng`,
                         clusterBasename,
                         dnsNames,
                  diff --git a/cluster/pulumi/infra/src/gcpAlerts.ts b/cluster/pulumi/infra/src/gcpAlerts.ts
                  index f99be6b845..fa705eb3dc 100644
                  --- a/cluster/pulumi/infra/src/gcpAlerts.ts
                  +++ b/cluster/pulumi/infra/src/gcpAlerts.ts
                  @@ -84,22 +84,22 @@ resource.labels.namespace_name=~"sv|validator1|multi-validator|splitwell"
                   -(resource.labels.container_name="istio-proxy" AND severity;
                     if (!auth0ClusterCfg.validatorRunbook) {
                  diff --git a/cluster/pulumi/validator-runbook/src/installNode.ts b/cluster/pulumi/validator-runbook/src/installNode.ts
                  index 5b6d6de4f6..d9384cf2fe 100644
                  --- a/cluster/pulumi/validator-runbook/src/installNode.ts
                  +++ b/cluster/pulumi/validator-runbook/src/installNode.ts
                  @@ -150,7 +150,7 @@ async function installValidator(validatorConfig: ValidatorConfig): Promise "$RELEASE_DIR/tmp.txt"
                  -        # TODO(#161): Look into this Mac Icon
                  +        # TODO(DACH-NY/canton-network-node#161): Look into this Mac Icon
                   #        sed -e "s/REPLACE_MAC_ICON_FILE/${REPLACE_MAC_ICON_FILE}/"
                         mv "$RELEASE_DIR"/tmp.txt "$RELEASE_DIR"/$file
                         chmod 755 "$RELEASE_DIR/$file"
                  diff --git a/docs/api-templates/splice-token-standard-test-index-template.rst b/docs/api-templates/splice-token-standard-test-index-template.rst
                  index 707d86108c..b886ff531f 100644
                  --- a/docs/api-templates/splice-token-standard-test-index-template.rst
                  +++ b/docs/api-templates/splice-token-standard-test-index-template.rst
                  @@ -15,7 +15,7 @@ to gain access to test infrastructure for:
                   Note that a **copy of the source code is required**, as at the time of writing
                   Daml Script code cannot be shared across SDK's in compiled form.
                   
                  -.. TODO(#18169): remove this limitation, and the note about this limitation
                  +.. TODO(#594): remove this limitation, and the note about this limitation
                   
                   See the module docs below for an overview of the functionality provided by this package.
                   
                  diff --git a/docs/src/background/architecture.rst b/docs/src/background/architecture.rst
                  index cdaaace0b4..a6669921fd 100644
                  --- a/docs/src/background/architecture.rst
                  +++ b/docs/src/background/architecture.rst
                  @@ -45,7 +45,7 @@ You can find their Daml docs in the :ref:`app_dev_daml_api` section.
                      - the workflows work across different wallet implementations, not just the splice-wallet
                   
                   .. todo::
                  -   - TODO(#17505): update the text above and below with the changes from the token-standard
                  +   - TODO(#552): update the text above and below with the changes from the token-standard
                   
                   
                   Decentralized Transaction Validation and Automation
                  diff --git a/docs/src/sv_operator/sv_helm.rst b/docs/src/sv_operator/sv_helm.rst
                  index 27054faf51..ebeaf1a520 100644
                  --- a/docs/src/sv_operator/sv_helm.rst
                  +++ b/docs/src/sv_operator/sv_helm.rst
                  @@ -199,7 +199,7 @@ it can be beneficial to skim the instructions in :ref:`helm-sv-auth0` as well, t
                   
                   .. [#reach] The URL must be reachable from the Canton participant, validator app and SV app running in your cluster, as well as from all web browsers that should be able to interact with the SV and wallet UIs.
                   
                  -    .. TODO(#2052) use a unique audience for each app
                  +    .. TODO(DACH-NY/canton-network-internal#502) use a unique audience for each app
                   
                   .. _helm-sv-auth0:
                   
                  diff --git a/docs/src/sv_operator/sv_operations.rst b/docs/src/sv_operator/sv_operations.rst
                  index 19bf3d679a..b525bc385c 100644
                  --- a/docs/src/sv_operator/sv_operations.rst
                  +++ b/docs/src/sv_operator/sv_operations.rst
                  @@ -83,7 +83,7 @@ Participant identities
                     - Quorums for administering the domain topology on behalf of the DSO party (>⅔ of onboarded SVs once activated)
                     - Quorums for confirmation-based DSO Daml workflows (>⅔ of onboarded SVs; on DevNet instead usually >½)
                   
                  -  .. TODO(#7746): remove "once activated"
                  +  .. TODO(DACH-NY/canton-network-node#7746): remove "once activated"
                   
                   - In general, participant identities *can't* be reused on the same global synchronizer,
                     i.e., without the network being reset/redeployed.
                  diff --git a/docs/src/sv_operator/sv_restore.rst b/docs/src/sv_operator/sv_restore.rst
                  index 4b3fdd733e..8e0cca6a5e 100644
                  --- a/docs/src/sv_operator/sv_restore.rst
                  +++ b/docs/src/sv_operator/sv_restore.rst
                  @@ -195,7 +195,7 @@ in the format `"2024-04-17T19:12:02Z"`.
                   Please note that both the participant and the sequencer components must still be running
                   and reachable for this call to succeed.
                   
                  -.. TODO(#11099): Update this once the sequencer is no longer required
                  +.. TODO(DACH-NY/canton-network-node#11099): Update this once the sequencer is no longer required
                   
                   If the `curl` command fails with a 400 error, that typically means that your participant has been pruned beyond the chosen timestamp,
                   and your node cannot generate the requested dump. Discuss with other SVs whether a later timestamp can be chosen.
                  diff --git a/docs/src/validator_operator/validator_compose.rst b/docs/src/validator_operator/validator_compose.rst
                  index ebd6b138bf..26e03c7bd4 100644
                  --- a/docs/src/validator_operator/validator_compose.rst
                  +++ b/docs/src/validator_operator/validator_compose.rst
                  @@ -3,7 +3,7 @@
                   ..
                      SPDX-License-Identifier: Apache-2.0
                   
                  -.. TODO(#14303): consider reducing duplication. Some requirements & validator onboarding can be moved to a section before we choose the deployment method
                  +.. TODO(DACH-NY/canton-network-node#14303): consider reducing duplication. Some requirements & validator onboarding can be moved to a section before we choose the deployment method
                   
                   
                   .. _compose_validator:
                  diff --git a/docs/src/validator_operator/validator_helm.rst b/docs/src/validator_operator/validator_helm.rst
                  index 431d4e5137..3c08759522 100644
                  --- a/docs/src/validator_operator/validator_helm.rst
                  +++ b/docs/src/validator_operator/validator_helm.rst
                  @@ -196,7 +196,7 @@ it can be beneficial to skim the instructions in :ref:`helm-validator-auth0` as
                   
                   .. [#reach] The URL must be reachable from the Canton participant and validator app running in your cluster, as well as from all web browsers that should be able to interact with the wallet and CNS UIs.
                   
                  -    .. TODO(#2052) use a unique audience for each app
                  +    .. TODO(DACH-NY/canton-network-internal#502) use a unique audience for each app
                   
                   .. _helm-validator-auth0:
                   
                  diff --git a/docs/src/validator_operator/validator_security.rst b/docs/src/validator_operator/validator_security.rst
                  index 76ede55c17..c3ff02575d 100644
                  --- a/docs/src/validator_operator/validator_security.rst
                  +++ b/docs/src/validator_operator/validator_security.rst
                  @@ -107,4 +107,4 @@ the authentication credentials you supply must correspond to an entity with the
                   * `kms:DescribeKey`
                   * `kms:GetPublicKey`
                   
                  -.. TODO(#16720): Add a section about offline root namespace keys
                  +.. TODO(DACH-NY/canton-network-internal#479): Add a section about offline root namespace keys
                  diff --git a/load-tester/src/client/validator/models.ts b/load-tester/src/client/validator/models.ts
                  index 14fab4737a..75fc098b26 100644
                  --- a/load-tester/src/client/validator/models.ts
                  +++ b/load-tester/src/client/validator/models.ts
                  @@ -2,7 +2,7 @@
                   // SPDX-License-Identifier: Apache-2.0
                   import { z } from 'zod';
                   
                  -// TODO(#9049)
                  +// TODO(DACH-NY/canton-network-node#9049)
                   const contract = z.object({
                     template_id: z.string(),
                     contract_id: z.string(),
                  diff --git a/project/BuildCommon.scala b/project/BuildCommon.scala
                  index 7459de2471..5ceffbd4d7 100644
                  --- a/project/BuildCommon.scala
                  +++ b/project/BuildCommon.scala
                  @@ -1018,7 +1018,7 @@ object BuildCommon {
                             "daml/AdminWorkflows/daml.yaml",
                             "daml/PartyReplication/daml.yaml",
                           ),
                  -        // TODO(#16168) Before creating the first stable release with backwards compatibility guarantees,
                  +        // TODO(DACH-NY/canton-network-node#16168) Before creating the first stable release with backwards compatibility guarantees,
                           //  make "AdminWorkflows.dar" stable again
                           damlFixedDars := Seq(),
                           // commented out from Canton OS repo as settings don't apply to us (yet)
                  @@ -1652,7 +1652,7 @@ object BuildCommon {
                           FileFunction.cached(cacheDir, FileInfo.hash) { _ =>
                             runWorkspaceCommand(workingDir, "build", workspace, log)
                   
                  -          // TODO(#7667) - we have to run the type check here because it depends on other things to be built first (e.g. common-frontend, openapi-ts-client, etc). Ideally we run this as part of our static checks instead (npmLint)
                  +          // TODO(#985) - we have to run the type check here because it depends on other things to be built first (e.g. common-frontend, openapi-ts-client, etc). Ideally we run this as part of our static checks instead (npmLint)
                             runWorkspaceCommand(workingDir, "type:check", workspace, log)
                             val buildFiles = (baseDir / "build" ** "*").get.toSet
                             buildFiles
                  diff --git a/project/DamlPlugin.scala b/project/DamlPlugin.scala
                  index aa3b6ad799..b05428f100 100644
                  --- a/project/DamlPlugin.scala
                  +++ b/project/DamlPlugin.scala
                  @@ -525,7 +525,7 @@ object DamlPlugin extends AutoPlugin {
                           s"Codegen asked to generate code from nonexistent file: $darFile"
                         )
                   
                  -    // TODO(#13274) Switch back to upstream java codegen once it supports upgrading.
                  +    // TODO(DACH-NY/canton-network-node#13274) Switch back to upstream java codegen once it supports upgrading.
                       val codegenJarPath =
                         ensureArtifactAvailable(
                           url =
                  diff --git a/project/ignore-patterns/canton-standalone-disaster-recovery-lost-all-sequencers-most-participants.ignore.txt b/project/ignore-patterns/canton-standalone-disaster-recovery-lost-all-sequencers-most-participants.ignore.txt
                  index de0bef1f8f..79cd7576f1 100644
                  --- a/project/ignore-patterns/canton-standalone-disaster-recovery-lost-all-sequencers-most-participants.ignore.txt
                  +++ b/project/ignore-patterns/canton-standalone-disaster-recovery-lost-all-sequencers-most-participants.ignore.txt
                  @@ -1,7 +1,7 @@
                  -# TODO (#11294): suspicious warning, but doesn't fail tests
                  +# TODO (DACH-NY/canton-network-node#11294): suspicious warning, but doesn't fail tests
                   The provided balance may not be up to date if a balance update is being processed.*TrafficPurchasedManager.*StandaloneSequencer
                   
                  -# TODO (#11294): suspicious warning, but doesn't fail tests
                  +# TODO (DACH-NY/canton-network-node#11294): suspicious warning, but doesn't fail tests
                   Using approximate topology snapshot.*.*StandaloneSequencer
                   
                   Failed to acknowledge clean timestamp.*closed stream
                  diff --git a/project/ignore-patterns/canton-standalone-disaster-recovery-lost-domain.ignore.txt b/project/ignore-patterns/canton-standalone-disaster-recovery-lost-domain.ignore.txt
                  index dc54371fd7..07f12ad852 100644
                  --- a/project/ignore-patterns/canton-standalone-disaster-recovery-lost-domain.ignore.txt
                  +++ b/project/ignore-patterns/canton-standalone-disaster-recovery-lost-domain.ignore.txt
                  @@ -1,7 +1,7 @@
                  -# TODO (#11294): suspicious warning, but doesn't fail tests
                  +# TODO (DACH-NY/canton-network-node#11294): suspicious warning, but doesn't fail tests
                   The provided balance may not be up to date if a balance update is being processed.*TrafficPurchasedManager.*StandaloneSequencer
                   
                  -# TODO (#11294): suspicious warning, but doesn't fail tests
                  +# TODO (DACH-NY/canton-network-node#11294): suspicious warning, but doesn't fail tests
                   Using approximate topology snapshot.*.*StandaloneSequencer
                   
                   Response message for request.*timed out
                  diff --git a/project/ignore-patterns/canton-standalone-global-domain-migration.ignore.txt b/project/ignore-patterns/canton-standalone-global-domain-migration.ignore.txt
                  index 18c71b89b8..213fb60453 100644
                  --- a/project/ignore-patterns/canton-standalone-global-domain-migration.ignore.txt
                  +++ b/project/ignore-patterns/canton-standalone-global-domain-migration.ignore.txt
                  @@ -1,15 +1,15 @@
                   # Extra patterns to ignore from the canton-standalone-disaster-recovery log file
                   # See 'canton_log.ignore.txt' for details on how to write these.
                   
                  -# TODO(#10137) Remove once we have a fix for this
                  +# TODO(DACH-NY/canton-network-node#10137) Remove once we have a fix for this
                   Claims do not authorize to read data for party 'alice__wallet__user.*
                   Claims do not authorize to read data for party 'charlie__wallet__user.*
                   Claims do not authorize to read data for party 'splitwell__provider.*
                   
                  -# TODO(#9485): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                  +# TODO(#970): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                   Response message for request.*timed out.*c.d.c.p.p.TransactionProcessor:participant=sv
                   
                  -# TODO(#10381) Figure out why this happens and remove the ignore.
                  +# TODO(DACH-NY/canton-network-node#10381) Figure out why this happens and remove the ignore.
                   ACS_COMMITMENT_MISMATCH
                   
                   # Those tests spin up a lot of nodes so they can be very slow.
                  diff --git a/project/ignore-patterns/canton-standalone-mediator-offboarding.ignore.txt b/project/ignore-patterns/canton-standalone-mediator-offboarding.ignore.txt
                  index eee523cf58..f183b3bcf6 100644
                  --- a/project/ignore-patterns/canton-standalone-mediator-offboarding.ignore.txt
                  +++ b/project/ignore-patterns/canton-standalone-mediator-offboarding.ignore.txt
                  @@ -2,7 +2,7 @@
                   LOCAL_VERDICT_TIMEOUT.* Rejected transaction due to a participant determined timeout.*c.d.c.p.p.TransactionProcessingSteps:participant=sv
                   SEQUENCER_SENDER_UNKNOWN.*MED::sv4
                   
                  -# TODO(#13011):Remove once canton fixes https://github.com/DACH-NY/canton/issues/20594
                  +# TODO(DACH-NY/canton-network-node#13011):Remove once canton fixes https://github.com/DACH-NY/canton/issues/20594
                   Submission was refused because traffic control validation failed: IncorrectEventCost
                   The domain Domain 'global' failed the following topology transactions
                   INCORRECT_EVENT_COST.*: Missing or incorrect event cost provided by member
                  diff --git a/project/ignore-patterns/canton-standalone-sv123-reonboarding.ignore.txt b/project/ignore-patterns/canton-standalone-sv123-reonboarding.ignore.txt
                  index c300454d54..cd8c0e2ccc 100644
                  --- a/project/ignore-patterns/canton-standalone-sv123-reonboarding.ignore.txt
                  +++ b/project/ignore-patterns/canton-standalone-sv123-reonboarding.ignore.txt
                  @@ -3,10 +3,10 @@ ACS_COMMITMENT_MISMATCH
                   
                   # We've seen this happen due to txs submitted during offboarding of SV4. It can likely happen to other participants than the
                   # reonboarded sv123 as well, but we don't want the ignore these messages for all our tests.
                  -# TODO(#9485): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                  +# TODO(#970): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                   Response message for request.*timed out.*c.d.c.p.p.TransactionProcessor:participant=sv
                   
                  -# TODO(#10682)
                  +# TODO(#814)
                   Rejected transaction due to a participant determined timeout
                   
                   SEQUENCER_SENDER_UNKNOWN.*MED::sv4SvReonboarding
                  @@ -16,5 +16,5 @@ SYNC_SERVICE_ALARM.*Received a request.*where the view.*has missing recipients.*
                   # Caused by svs being off-boarded
                   TOPOLOGY_UNAUTHORIZED_TRANSACTION
                   
                  -# TODO(#13610): Investigate flake and remove once fixed
                  +# TODO(DACH-NY/canton-network-node#13610): Investigate flake and remove once fixed
                   Sequencing result message timed out
                  diff --git a/project/ignore-patterns/canton-standalone-sv4-reonboarding.ignore.txt b/project/ignore-patterns/canton-standalone-sv4-reonboarding.ignore.txt
                  index b048a88267..6d17102bcb 100644
                  --- a/project/ignore-patterns/canton-standalone-sv4-reonboarding.ignore.txt
                  +++ b/project/ignore-patterns/canton-standalone-sv4-reonboarding.ignore.txt
                  @@ -3,7 +3,7 @@ ACS_COMMITMENT_MISMATCH
                   
                   # We've seen this happen due to txs submitted during offboarding of SV4. It can likely happen to other participants than the
                   # reonboarded sv123 as well, but we don't want the ignore these messages for all our tests.
                  -# TODO(#9485): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                  +# TODO(#970): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                   Response message for request.*timed out.*c.d.c.p.p.TransactionProcessor:participant=sv
                   
                   SEQUENCER_SENDER_UNKNOWN.*MED::sv4SvReonboarding
                  diff --git a/project/ignore-patterns/canton_log.ignore.txt b/project/ignore-patterns/canton_log.ignore.txt
                  index c1804aae51..32165faecf 100644
                  --- a/project/ignore-patterns/canton_log.ignore.txt
                  +++ b/project/ignore-patterns/canton_log.ignore.txt
                  @@ -41,7 +41,7 @@ NOT_FOUND/USER_NOT_FOUND.*: getting user failed for unknown user \\"sv_user\\".*
                   # ...and this, for WalletIntegrationTest
                   PERMISSION_DENIED.*Claims do not authorize to act as party 'alice__wallet__user.*aliceParticipant
                   
                  -# TODO(#7924): remove once txs in-flight during party migrations do not produce any more warnings
                  +# TODO(#983): remove once txs in-flight during party migrations do not produce any more warnings
                   # Made as specific as possible to avoid ignoring other SYNC_SERVICE_ALARMS
                   SYNC_SERVICE_ALARM.*Received a request.*where the view.*has missing recipients.*PAR::sv[1-4]::.*Discarding.*with all ancestors
                   SYNC_SERVICE_ALARM.*Received a request.*where the view.*has extra recipients.*PAR::sv[1-4]::.*Continue processing
                  @@ -56,7 +56,7 @@ MEDIATOR_RECEIVED_MALFORMED_MESSAGE.*Received a confirmation response.*with an i
                   # Detailed API logging is extremely useful for debugging so we turn this on in our tests.
                   Your detailed API event logging is turned on but you are doing quite a few concurrent requests.
                   
                  -# TODO(#8507): investigate and decide if we want to remove it once fixed
                  +# TODO(#833): investigate and decide if we want to remove it once fixed
                   Late processing \(or clock skew\) of batch with counter.*after sequencing
                   
                   # Shows up during global domain migration test, when the domain is frozen
                  @@ -65,60 +65,60 @@ ABORTED/SEQUENCER_OVERLOADED.*Submission rate exceeds rate limit of 0/s
                   # This is happenening during party migration and is expected. We can remove this in the future if/when canton detects and handles this warning
                   .*Received a commitment where we have no shared contract.*ACS_MISMATCH_NO_SHARED_CONTRACTS.*
                   
                  -# TODO(#9544): remove once the slowdown in Canton has been fixed
                  +# TODO(DACH-NY/canton-network-node#9544): remove once the slowdown in Canton has been fixed
                   Timeout 10 seconds expired, but tasks still running. Shutting down forcibly
                   
                   # Shows up during the test case in SvOnboardingAddlIntegrationTest when submitting command with actAs = DSO and there are more than 1 SV onboarded
                   Received a request with id RequestId\(.*\) with a view that is not correctly authorized.*is not authorized to submit on behalf of the submitting parties DSO-.*
                   
                  -# TODO(#10160) Remove this ignore once Canton fixes this.
                  +# TODO(#822) Remove this ignore once Canton fixes this.
                   SEQUENCER_MAX_SEQUENCING_TIME_TOO_FAR
                   
                  -# TODO(#10847) Logged when a mediator joins between request and confirmation
                  +# TODO(#807) Logged when a mediator joins between request and confirmation
                   MEDIATOR_INVALID_MESSAGE.*Received a confirmation response.*with an unknown request id
                   
                  -# TODO(#10875) Investigate why Canton starts warning about this
                  +# TODO(#964) Investigate why Canton starts warning about this
                   periodic acknowledgement failed
                   
                  -# TODO(#10887) Figure out where this is coming from
                  +# TODO(#962) Figure out where this is coming from
                   Token refresh failed with Status.*UNAVAILABLE.*Health-check stream unexpectedly closed
                   
                   # Sequencers can issue this warning if the SequencerDomainState threshold increases between when a topup request is made and when it is validated
                  -# TODO(#11018): Remove once Canton does not issue a warning for this expected condition
                  +# TODO(DACH-NY/canton-network-node#11018): Remove once Canton does not issue a warning for this expected condition
                   INVALID_TRAFFIC_CONTROL_PURCHASED_MESSAGE.* signature threshold not reached
                   
                   # In ValidatorReonboardingIntegrationTest, importing the ACS on the new participant may lead to temporary ACS_COMMITMENT_MISMATCH errors.
                   # The new participant can be both the sender or the counterParticipant in the error message.
                   ACS_COMMITMENT_MISMATCH.*aliceValidatorLocalNewForValidatorReonboardingIT
                  -# TODO(#19470): Remove once it's fixed
                  +# TODO(#897): Remove once it's fixed
                   Failed to send commitment message batch for period.*RequestInvalid\(Unregistered recipients: HashSet\(PAR::alice-validatorLocalForValidatorReonboardingIT
                   
                  -# TODO(#9485): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                  +# TODO(#970): figure out why this happens, as in principle the confirmations from three of the mediators and counter-participants should be sufficient
                   Response message for request.*timed out.*c.d.c.p.p.TransactionProcessor:participant=sv
                   
                  -# TODO(#14445): remove these ignores if possible
                  +# TODO(#936): remove these ignores if possible
                   The operation 'insert block' has failed with an exception
                   Now retrying operation 'insert block'
                   
                  -# TODO(#13874): investigate why it happens and remove if possible
                  +# TODO(#737): investigate why it happens and remove if possible
                   Failed to send commitment message batch for period CommitmentPeriod.*RequestRefused\(UnknownRecipients
                   SEQUENCER_UNKNOWN_RECIPIENTS.*validatorLocalForValidatorReonboardingIT
                   
                  -# TODO(#15539) Figure out where this is coming from
                  +# TODO(#919) Figure out where this is coming from
                   Instrument rpc\.server\.duration has exceeded the maximum allowed cardinality
                   Too many log messages detected
                   
                   
                  -# TODO(#17081) Figure out why this happens
                  +# TODO(#655) Figure out why this happens
                   Thread starvation or clock leap detected
                   
                   # Shutdown issues
                   Previous channel ManagedChannelImpl.* was garbage collected without being shut down!
                   
                  -# TODO(#2423) Figure out what causes this
                  +# TODO(DACH-NY/canton-network-node#2423) Figure out what causes this
                   The sequencer clock timestamp .* is already past the max sequencing time
                   
                  -# TODO(#18866) Remove once CantonBFT does no longer raise this spurious warning
                  +# TODO(#541) Remove once CantonBFT does no longer raise this spurious warning
                   failed to ping endpoint PlainTextP2PEndpoint.*UNAVAILABLE
                   
                   # Sometimes Canton is a bit slow in tests
                  @@ -136,7 +136,7 @@ Timeout .*expired, but readers are still active
                   # test significantly so for now we don't bother.
                   ACS_COMMITMENT_MISMATCH.*(bob|alice)Participant
                   
                  -# TODO(#15343) - investigate this on the canton side
                  +# TODO(#930) - investigate this on the canton side
                   Instrument daml\.sequencer\.bftordering.* has exceeded the maximum allowed cardinality
                   
                   # Make sure to have a trailing newline
                  diff --git a/project/ignore-patterns/canton_log_bft.ignore.txt b/project/ignore-patterns/canton_log_bft.ignore.txt
                  index 6640502d94..a1ff9bd212 100644
                  --- a/project/ignore-patterns/canton_log_bft.ignore.txt
                  +++ b/project/ignore-patterns/canton_log_bft.ignore.txt
                  @@ -1,4 +1,4 @@
                  -# TODO(#19555) - remove when fixed
                  +# TODO(DACH-NY/canton-network-internal#349) - remove when fixed
                   synchronizer outbox flusher The synchronizer Synchronizer 'global' failed the following topology transactions
                  -# TODO(#15343) - check if the sequencer is initialized before reconciling peers
                  +# TODO(#930) - check if the sequencer is initialized before reconciling peers
                   UNIMPLEMENTED: Method not found: com.digitalasset.canton.sequencer.admin.v30.SequencerBftAdministrationService/GetPeerNetworkStatus
                  diff --git a/project/ignore-patterns/canton_log_simtime_extra.ignore.txt b/project/ignore-patterns/canton_log_simtime_extra.ignore.txt
                  index a1b26ac0de..cb38862ed1 100644
                  --- a/project/ignore-patterns/canton_log_simtime_extra.ignore.txt
                  +++ b/project/ignore-patterns/canton_log_simtime_extra.ignore.txt
                  @@ -22,10 +22,10 @@ SEQUENCER_SUBSCRIPTION_LOST.*: Lost subscription to domain .* Will try to recove
                   # It seems this happens when a transaction is in-flight and we advance time. We should just retry.
                   INTERPRETATION_TIME_EXCEEDED.*: Interpretation time exceeds limit of Ledger Effective Time
                   
                  -# TODO(#8955): investigate and remove once fixed
                  +# TODO(#834): investigate and remove once fixed
                   INVALID_ACKNOWLEDGEMENT_TIMESTAMP.*Member.*has acknowledged the timestamp.*when only events with timestamps at most.*have been delivered
                   
                  -# TODO(#10887) Figure out where this is coming from
                  +# TODO(#962) Figure out where this is coming from
                   Request failed for sequencer.*GrpcClientGaveUp: .*/Authentication token refresh failed with grpc error
                   Request failed for sequencer.*GrpcServiceUnavailable: UNAVAILABLE/Health-check stream unexpectedly closed
                   
                  diff --git a/project/ignore-patterns/canton_network_test_log.ignore.txt b/project/ignore-patterns/canton_network_test_log.ignore.txt
                  index fd2f9438a1..a5d2149c67 100644
                  --- a/project/ignore-patterns/canton_network_test_log.ignore.txt
                  +++ b/project/ignore-patterns/canton_network_test_log.ignore.txt
                  @@ -47,23 +47,23 @@ NoSuchFileException deleting temporal file.*selenium-manager
                   # Trying to start a BiDi connection to Firefox repeatedly might fail some attempts with an 405 method not allowed
                   Invalid Status code=405 text=Method Not Allowed","logger_name":"o.o.s.remote.http.WebSocket"
                   
                  -# TODO(#7696) revisit after migration of tests to vitest
                  +# TODO(DACH-NY/canton-network-node#7696) revisit after migration of tests to vitest
                   Trying to re-register template.*
                   
                   .*GrpcClientError: UNAUTHENTICATED/.*Request: Tap(13.37)
                   
                  -# TODO(#8300) Ignore errors related to global domain disconnection and reconnection after sequencers connections changed for now.
                  +# TODO(#979) Ignore errors related to global domain disconnection and reconnection after sequencers connections changed for now.
                   # Revisit later to see if we can remove these.
                   .*NOT_FOUND/UNKNOWN_INFORMEES.*The participant is not connected to any domain where the given informees are known.
                   .*NOT_FOUND/SUBMISSION_DOMAIN_NOT_READY.*Trying to submit to a disconnected or not configured domain.
                   
                  -# TODO(#8565): investigate and remove once fixed
                  +# TODO(#975): investigate and remove once fixed
                   failed with UNKNOWN/channel closed.*SvAppLedgerApiConnectivityIntegrationTest
                   
                   # This might be logged between the test finishing and shutdown of the nodes (see #8991)
                   Noticed an DsoRules epoch change.*DecentralizedSynchronizerMigrationIntegrationTest
                   
                  -# TODO (#9979): this only applies to simtime.
                  +# TODO (#825): this only applies to simtime.
                   # In simtime tests where the rounds are advanced too quickly, this trigger might not have enough time to receive the coupon.
                   # Nevertheless, it is still useful to have the warning in production environments, where this should never happen.
                   Skipped.*faucet coupons from last claimed round.*to current round
                  @@ -74,20 +74,20 @@ DB_CONNECTION_LOST.*Database health check failed to establish a valid connection
                   # The prometheus export server does not wait for any ongoing requests when shutting down https://github.com/prometheus/client_java/issues/938
                   The Prometheus metrics HTTPServer caught an Exception while trying to send the metrics response
                   
                  -# TODO (#9979): this only applies to simtime.
                  +# TODO (#825): this only applies to simtime.
                   # Simtime failure, see https://github.com/DACH-NY/canton-network-node/issues/11998#issuecomment-2086304594
                   INVALID_ARGUMENT.*SequencerTimeoutError
                   
                  -# TODO (#12813): find a way to remove this
                  +# TODO (#758): find a way to remove this
                   Encountered 4 consecutive transient failures \(polling interval .*
                   
                  -# TODO (#13236): check if we can avoid such errors (they seem to happen when some HTTP API calls race with shutdowns)
                  +# TODO (#942): check if we can avoid such errors (they seem to happen when some HTTP API calls race with shutdowns)
                   unexpected exception: Task slick.*rejected from slick.util.AsyncExecutorWithMetrics
                   
                  -# TODO (#13145): investigate what task is it still running and see if we can somehow fix it
                  +# TODO (#944): investigate what task is it still running and see if we can somehow fix it
                   Timeout 10 seconds expired, but tasks still running. Shutting down forcibly
                   
                  -# TODO (#13985): we don't close cache metrics created by DbScanStoreMetrics
                  +# TODO (#939): we don't close cache metrics created by DbScanStoreMetrics
                   Instrument daml.cache.* has recorded multiple values for the same attributes
                   
                   Consensus not reached.*BftScanConnection:BftScanConnectionTest.*
                  @@ -95,10 +95,10 @@ Consensus not reached.*BftScanConnection:BftScanConnectionTest.*
                   # internal selenium error. Potentially intermittent
                   Exception managing firefox: error sending request for url .* http2 error: stream error received: refused stream before processing any application
                   
                  -# TODO(#18150) - remove this
                  +# TODO(DACH-NY/canton-network-node#18150) - remove this
                   Vetted state contains multiple entries
                   
                  -# TODO(#17311) Remove conversion from future with shutdown to future
                  +# TODO(#645) Remove conversion from future with shutdown to future
                   Splice unsafe shutdown future
                   
                   # Scan UI calls round-based endpoints that emit this error, even if we're only interested in the transaction log
                  @@ -108,7 +108,7 @@ Splice unsafe shutdown future
                   .*CometBFT is not configured for this app.*
                   
                   # Expected during SV onboarding as we start scan and the sv app concurrently
                  -# TODO(#19670) maybe remove this again
                  +# TODO(#893) maybe remove this again
                   Failed to read bft sequencers list from scan
                   
                   Failed to connect to scan of Digital-Asset-Eng-3.*AppUpgradeIntegrationTest
                  diff --git a/scripts/check-daml-return-types.sh b/scripts/check-daml-return-types.sh
                  index 967c00bbed..652612bef6 100755
                  --- a/scripts/check-daml-return-types.sh
                  +++ b/scripts/check-daml-return-types.sh
                  @@ -11,7 +11,7 @@ source "${TOOLS_LIB}/libcli.source"
                   ## Check that all Daml choice return types follow the pattern that choice `X` returns type `XResult`, except for:
                   # - tests
                   # - splitwell models
                  -# TODO (#17133): remove the exclude of TradingApp
                  +# TODO (DACH-NY/canton-network-node#17133): remove the exclude of TradingApp
                   # - token-standard trading app example
                   # - `AmuletRules_Transfer` returning `TransferResult` which seems acceptable to keep, given how common it is in the codebase
                   # - WalletAppInstall choices proxying token standard choices
                  diff --git a/scripts/check-daml-warts.sh b/scripts/check-daml-warts.sh
                  index 3cc34163f7..7b4a040a3f 100755
                  --- a/scripts/check-daml-warts.sh
                  +++ b/scripts/check-daml-warts.sh
                  @@ -17,7 +17,7 @@ ignored_files=(
                     'token-standard/splice-token-standard-test/daml/Splice/Testing/Apps/TradingApp.daml'
                     'canton/')
                   
                  -# TODO(#9466): also check for naked `Xyz_Fetch` choices
                  +# TODO(DACH-NY/canton-network-internal#490): also check for naked `Xyz_Fetch` choices
                   
                   command=('git' 'grep' '-n' -E '(fetch|archive)\b' '--' '*.daml')
                   echo "${command[@]}"
                  diff --git a/scripts/check-repo-names.sh b/scripts/check-repo-names.sh
                  index df167cb9c9..206f4391cd 100755
                  --- a/scripts/check-repo-names.sh
                  +++ b/scripts/check-repo-names.sh
                  @@ -26,13 +26,13 @@ function check_patterns_locally() {
                     local exceptions=(
                       '(\b|[`_])cn-docs'
                       '@cn-load-tester\.com'
                  -    '^[^:]+V001__create_schema\.sql:' # TODO (#15491) avoiding changing hashes
                  -    'AUTH0_CN_MANAGEMENT_API_CLIENT_(ID|SECRET)|"dev" => ."AUTH0_CN"' # TODO (#15747) auth0 env names
                  -    'ans-web-ui\.yaml:.*name: splice-app-cns-ui-auth' # TODO (#15741) new secret
                  +    '^[^:]+V001__create_schema\.sql:' # TODO (DACH-NY/canton-network-node#15491) avoiding changing hashes
                  +    'AUTH0_CN_MANAGEMENT_API_CLIENT_(ID|SECRET)|"dev" => ."AUTH0_CN"' # TODO (DACH-NY/canton-network-internal#395) auth0 env names
                  +    'ans-web-ui\.yaml:.*name: splice-app-cns-ui-auth' # TODO (DACH-NY/canton-network-internal#397) new secret
                       'Headers.scala:.*"configs"'
                       'Headers.scala:.*"configs-private"'
                  -    'istio-gateway/.*gateway\.yaml:.*credentialName: cn-' # TODO (#15745) TLS credential names in istio-gateway
                  -    'bigquery-import.sql:.*da-cn-ci-2' # TODO (#18620) parameterized project
                  +    'istio-gateway/.*gateway\.yaml:.*credentialName: cn-' # TODO (DACH-NY/canton-network-internal#396) TLS credential names in istio-gateway
                  +    'bigquery-import.sql:.*da-cn-ci-2' # TODO (DACH-NY/canton-network-internal#362) parameterized project
                       'GcpConfig\.scala:' # cluster-specific
                       '/da-cn-shared/cn-images|GOOGLE_CLOUD_PROJECT=da-cn-shared|"KMS_PROJECT_ID" -> "da-cn-shared"' # gcp
                       '/cn-release-bundles' # docs route
                  diff --git a/scripts/rename.sh b/scripts/rename.sh
                  index bb4cc263e0..e4d4a0cb24 100755
                  --- a/scripts/rename.sh
                  +++ b/scripts/rename.sh
                  @@ -713,7 +713,7 @@ function subcmd_cn_splice {
                       "$GSR_ARGS"
                   
                     simple_rename '(?x)CN_(?=
                  -      APP_(?! # TODO (#14617) pulumi deployment conf
                  +      APP_(?! # TODO (DACH-NY/canton-network-node#14617) pulumi deployment conf
                                 SPLITWELL_PROVIDER_WALLET_USER_NAME
                             )
                       | ARTIFACTS_REPOSITORY
                  @@ -723,14 +723,14 @@ function subcmd_cn_splice {
                       # TODO (#14617 pulumi conf) | PULUMI_LOAD_ENV_CONFIG_FILE
                     )///SPLICE_'
                     simple_rename '\bCN(?=Postgres|CustomResourceOptions)///Splice'
                  -  # TODO (#14137) transform lowercase
                  +  # TODO (DACH-NY/canton-network-node#14137) transform lowercase
                     simple_rename '(?<=\binstall)CN(?=(?:Runbook)?HelmChart)///Splice'
                     simple_rename '\bcnR(?=eplaceEqualDeep\b)///r'
                     # AUTH0_CN_MANAGEMENT_API_CLIENT_ID
                     # AUTH0_CN_MANAGEMENT_API_CLIENT_SECRET
                     simple_rename '(?x)(\b|`)cn-(?=
                         app-
                  -    # TODO (#14618) node pool names | (?:apps|infra)-pool
                  +    # TODO (DACH-NY/canton-network-node#14618) node pool names | (?:apps|infra)-pool
                       | cluster-ingress-(?:full|sv)
                       | directory
                       | istio-fwd
                  @@ -1182,7 +1182,7 @@ function subcmd_no_illegal_daml_references() {
                       local illegal_patterns=(
                         svc SVC Svc   # to avoid conflict with PerSvContracts
                         '(?", "The amount to be transferred")
                  -      // TODO (#18611): remove this option
                  +      // TODO (#907): remove this option
                         .requiredOption(
                           "-e --instrument-admin ",
                           `The expected admin of the instrument.`,
                  diff --git a/token-standard/cli/src/txparse/types.ts b/token-standard/cli/src/txparse/types.ts
                  index 6b538437ba..17e3a9c35d 100644
                  --- a/token-standard/cli/src/txparse/types.ts
                  +++ b/token-standard/cli/src/txparse/types.ts
                  @@ -59,12 +59,12 @@ export const EmptyHoldingsChangeSummary: HoldingsChangeSummary = {
                    * otherwise just meta and transfer.
                    */
                   export interface TransferInstructionView {
                  -  // currentInstructionCid: string // TODO (#19379): add
                  +  // currentInstructionCid: string // TODO (#505): add
                     originalInstructionCid: string | null;
                     transfer: any;
                     status: {
                       before: any;
                  -    // current: any; // TODO (#19379): add
                  +    // current: any; // TODO (#505): add
                     };
                     meta: any;
                   }
                  diff --git a/token-standard/splice-api-token-allocation-instruction-v1/openapi/docker-compose.yml b/token-standard/splice-api-token-allocation-instruction-v1/openapi/docker-compose.yml
                  index fb6712561e..a13f30d934 100644
                  --- a/token-standard/splice-api-token-allocation-instruction-v1/openapi/docker-compose.yml
                  +++ b/token-standard/splice-api-token-allocation-instruction-v1/openapi/docker-compose.yml
                  @@ -11,7 +11,7 @@ services:
                       ports:
                         - "8080:8080"
                       environment:
                  -      # TODO(#86): split the standards into separate directories
                  +      # TODO(DACH-NY/canton-network-node#86): split the standards into separate directories
                         # SWAGGER_JSON: /spec/allocation.yaml
                         SWAGGER_JSON: /spec/allocation-instruction.yaml
                       volumes:
                  diff --git a/token-standard/splice-api-token-allocation-request-v1/README.md b/token-standard/splice-api-token-allocation-request-v1/README.md
                  index 49984216a1..4e1d12b521 100644
                  --- a/token-standard/splice-api-token-allocation-request-v1/README.md
                  +++ b/token-standard/splice-api-token-allocation-request-v1/README.md
                  @@ -1,6 +1,6 @@
                   # Allocation Request API v1
                   
                  -TODO(#17944): flesh out this README
                  +TODO(DACH-NY/canton-network-node#17944): flesh out this README
                   
                   Notes:
                   We need to consider whether want the choices on `AllocationRequest` to be called
                  diff --git a/token-standard/splice-token-standard-test/daml.yaml b/token-standard/splice-token-standard-test/daml.yaml
                  index a2a876d0bd..c2c087381e 100644
                  --- a/token-standard/splice-token-standard-test/daml.yaml
                  +++ b/token-standard/splice-token-standard-test/daml.yaml
                  @@ -14,7 +14,7 @@ description: |
                   
                     Must be consumed by copying the source-code into the downstream project,
                     as Daml script code can currently not be shared via .dars across SDKs.
                  -  (TODO(#18169): remove this limitation)
                  +  (TODO(#594): remove this limitation)
                   version: 1.0.0
                   source: daml
                   dependencies:
                  diff --git a/token-standard/splice-token-standard-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml b/token-standard/splice-token-standard-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml
                  index 2b15bdac45..a806f1c567 100644
                  --- a/token-standard/splice-token-standard-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml
                  +++ b/token-standard/splice-token-standard-test/daml/Splice/Testing/Registries/AmuletRegistry/Parameters.daml
                  @@ -126,7 +126,7 @@ issuanceConfig_10plus = IssuanceConfig with
                     amuletToIssuePerYear = 2.5e9
                     validatorRewardPercentage = 0.2
                     appRewardPercentage = 0.75
                  -  -- TODO(#9350): move these params out of the `IssuanceConfig` to save space and bandwidth for txs referencing `AmuletRules`
                  +  -- TODO(#827): move these params out of the `IssuanceConfig` to save space and bandwidth for txs referencing `AmuletRules`
                     validatorRewardCap = 0.2
                     featuredAppRewardCap = 100.0
                     unfeaturedAppRewardCap = 0.6
                  diff --git a/token-standard/splice-token-standard-test/daml/Splice/Testing/TokenStandard/RegistryApi.daml b/token-standard/splice-token-standard-test/daml/Splice/Testing/TokenStandard/RegistryApi.daml
                  index 40e9f7cb85..d7b41e8d76 100644
                  --- a/token-standard/splice-token-standard-test/daml/Splice/Testing/TokenStandard/RegistryApi.daml
                  +++ b/token-standard/splice-token-standard-test/daml/Splice/Testing/TokenStandard/RegistryApi.daml
                  @@ -22,7 +22,7 @@ import Daml.Script
                   --
                   -- The function names match the names of the handlers defined in the OpenAPI specification.
                   class RegistryApi app where
                  -  -- TODO (#17541): add functions for simulating all OpenAPI endpoints as part of testing the unhappy paths
                  +  -- TODO (DACH-NY/canton-network-node#17541): add functions for simulating all OpenAPI endpoints as part of testing the unhappy paths
                   
                     getTransferFactory
                       : app -> TransferFactory_Transfer
                  diff --git a/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenDvP.daml b/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenDvP.daml
                  index 66d178323c..281f6337de 100644
                  --- a/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenDvP.daml
                  +++ b/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenDvP.daml
                  @@ -130,7 +130,7 @@ setupOtcTrade  = do
                       exerciseCmd enrichedChoice.factoryCid enrichedChoice.arg
                   
                     -- alice accepts allocation request directly via her wallet
                  -  -- TODO(#18633): test here and for all steps that the expected ledger time bounds are present on the submissions
                  +  -- TODO(DACH-NY/canton-network-node#18633): test here and for all steps that the expected ledger time bounds are present on the submissions
                     debug inputHoldingCids
                     enrichedChoice <- RegistryApi.getAllocationFactory registry AllocationFactory_Allocate with
                       expectedAdmin = registry.dso
                  @@ -247,7 +247,7 @@ testDvP = script do
                     checkNumCouponsFor providerBeneficiary1 2
                     checkNumCouponsFor providerBeneficiary2 2
                   
                  -  -- TODO (#17541):early abortion of settlement, unwinding of expired settlements, etc.
                  +  -- TODO (DACH-NY/canton-network-node#17541):early abortion of settlement, unwinding of expired settlements, etc.
                     pure ()
                   
                   testDvPCancel = script do
                  diff --git a/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenTransfer.daml b/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenTransfer.daml
                  index 90f60a0cd0..1960891749 100644
                  --- a/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenTransfer.daml
                  +++ b/token-standard/splice-token-standard-test/daml/Splice/Tests/TestAmuletTokenTransfer.daml
                  @@ -143,7 +143,7 @@ setupTwoStepTransfer = do
                     Map.size enrichedChoice.disclosures.disclosures === 3
                   
                     -- Trigger a two-step transfer
                  -  -- TODO(#18633): test here and for all steps that the expected ledger time bounds are present on the submissions
                  +  -- TODO(DACH-NY/canton-network-node#18633): test here and for all steps that the expected ledger time bounds are present on the submissions
                     result <- submitWithDisclosures' alice enrichedChoice.disclosures $ exerciseCmd enrichedChoice.factoryCid enrichedChoice.arg
                     TransferInstructionResult_Pending aliceInstrCid <- pure result.output