RepoPilot

beemdevelopment / aegis

Search beemdevelopment/aegis

GitHub

Code

Understand beemdevelopment/aegis's source layout and find a starting point for your task using the saved repository evidence.

Detailed import-graph metrics were not captured for this report.

How the code fits together

AI
  • UI & ActivitiesAndroid Activities, Fragments, and UI controllers presenting authenticator tokens, settings, and backup flows
  • Cryptography & OTPToken generation (TOTP/HOTP/MOTP/YAOTP), master key derivation, and vault encryption
  • Data & PersistenceRoom database schema, vault repository, and audit logging
  • Configuration & State ManagementUser preferences, theme management, sorting strategies, and runtime state enums
  • Encoding & UtilitiesBase32/Base64 encoding for OTP secrets and data serialization

Files at d6f4e5925a97 · descriptions are AI-written.

The descriptions and the file list come from different revisions. Check responsibilities against source.

Where to start reading

  1. Repository root
  2. Repository root
  3. Suggested starting pointAI
  4. Suggested starting pointAI
  5. Suggested starting pointAI

Find files for a task

AI

Add a new OTP algorithm variant

Suggested by the saved analysis. Some step paths were not captured or refer to generated or vendor files; only observed source files are linked.

  • Create new class extending OTP abstract base in app/src/main/java/com/beemdevelopment/aegis/crypto/otp/
  • Register in vault entry model as a supported OTP type enum
  • Add unit tests in app/src/androidTest/java/com/beemdevelopment/aegis/ to validate token generation against test vectors

Add a new user preference setting

Suggested by the saved analysis. Some step paths were not captured or refer to generated or vendor files; only observed source files are linked.

  • Add SharedPreferences key and getter/setter method to the Preferences facade
  • Read preference in relevant UI or service component to apply behavior (e.g., theme application in AegisApplication)
  • If security-related, document in security design; if UI-related, add to Theme or ViewMode enums if applicable

Add a new backup/export format

Suggested by the saved analysis. Some step paths were not captured or refer to generated or vendor files; only observed source files are linked.

  • Implement serializer/deserializer class alongside existing encrypted JSON logic
  • Update BackupExportTest to validate round-trip (encrypt → save → load → decrypt → verify entries)
  • Register format in export/import UI flow and backup repository

Add a new security feature (e.g., password hashing policy)

Suggested by the saved analysis. Verify the proposed change against these source files.

  • Create parameter class analogous to SCryptParameters with configuration fields (cost, parallelism, salt length)
  • Add logic in MasterKey to use new parameters during key derivation
  • Store configuration in vault metadata (AppDatabase schema) for versioning and migration
  • Add Preferences toggle for users to opt-in and test with AegisTestApplication and cryptographic unit tests

Add or update tests

Use a nearby test as a pattern. Read the root manifest or contribution guide for the correct test command. These suggestions use file names, not verified execution paths.

  • File-name match for this task.
  • File-name match for this task.
  • File-name match for this task.

Change build or automation

Inspect the relevant configuration and the commands it runs before changing the workflow. These suggestions use file names, not verified execution paths.

  • File-name match for this task.
  • File-name match for this task.
  • File-name match for this task.

File paths come from a snapshot of up to 500 captured paths; an omitted file may still exist.

  • No public or runtime entry point can be identified from the captured paths.
  • The file list was refreshed after the written analysis. Subsystem descriptions and suggested changes may describe an older revision.

Architecture and request flow

Start here — files every contributor must understand

AI · unverified
1
app/src/main/java/com/beemdevelopment/aegis/AegisApplication.java

Main application entry point; initializes Dagger Hilt, theme configuration, and all core app infrastructure.

2
app/src/main/java/com/beemdevelopment/aegis/database/AppDatabase.java

Room database schema definition; contains all persistent data models for vault entries, audit logs, and settings.

3
app/src/main/java/com/beemdevelopment/aegis/crypto/MasterKey.java

Cryptographic key management for vault encryption; handles SCrypt derivation and encrypted storage in Android Keystore.

4
app/src/main/java/com/beemdevelopment/aegis/crypto/otp/OTP.java

Abstract base class for all OTP implementations (TOTP, HOTP, MOTP, YAOTP); core token generation logic.

5
app/src/main/java/com/beemdevelopment/aegis/Preferences.java

Centralized SharedPreferences wrapper for all user settings, themes, sorting, and security policies.

6
app/build.gradle

Build configuration with Gradle plugins (Hilt, Protobuf, aboutLibraries), dependencies, and SDK targets.

Request flow

Code quality and hotspots

Quality Score: 100/100

Low Risk

This repo is in good health with CI, tests, and active maintenance.

Maintainability grade

Static analysis

How maintainable the code looks — from complexity, code issues, test presence, file size, and hotspot load. It grades the shape of the code, not defect risk, and doesn't replace review.

A
94/100
A ≥ 85, B ≥ 70, C ≥ 55, D ≥ 40, F < 40
Cyclomatic complexityavg 6
35/35
Code issues2 errors, 0 warnings
18/20
Testspresent · ~25% of files
17/20
Largest file432 lines
15/15
Hotspot load0 high-risk files
10/10

Configuration status

CI/CD Pipeline — configured

Provider: GitHub Actions

3 GitHub Actions workflows

Test Suite — detected

62 test files detected

Stack: JUnit

Where: app/src/test/resources/com/beemdevelopment/aegis/importers · app/src/test/java/com/beemdevelopment/aegis/otp · app/src/test/java/com/beemdevelopment/aegis/crypto/otp

Test Coverage — ~25%heuristic

62 test files / 246 source files. This is a file-count ratio, not real line coverage — set up Codecov for authoritative numbers.

Dependency Scanning — 1 tool configured

CodeQL

Top hotspots

Files edited often AND hard to reason about. Churn = recent commit frequency, Complexity = branches and nesting, Risk = both combined. These are the highest-leverage targets for refactoring or testing.

aegis/BackupExportTest.java
Churn: 43Complexity: 57Risk: 25
aegis/OverallTest.java
Churn: 24Complexity: 60Risk: 14

All hotspots

Files that change often and are complex tend to accumulate more bugs

Code metrics

Static analysis on sampled source files (up to 15 files).

Avg Cyclomatic Complexity6

Counts if/for/while/switch/catch/ternary branches

Errors / Warnings2 / 0

Secrets, empty catches, console.log, var usage, long lines