This repository has been archived on 2026-06-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
bvandeusen fceae5529d Add Projects feature; sync Note/Task models with backend additions
## New: Projects
- Project model, API, repository, Riverpod provider
- ProjectListScreen: active/archived sections, create dialog, long-press status/delete
- ProjectSelector widget: DropdownButtonFormField for note + task editors
- Projects tab added to shell (bottom nav + navigation rail, 4th position)
- /projects route registered in GoRouter ShellRoute

## Updated: Note model
- Added tags: List<String>, projectId: int?, milestoneId: int?
- NotesApi.create/update pass tags and project_id
- NotesRepository and NotesNotifier signatures updated
- NoteEditScreen: chip-based tag input + ProjectSelector

## Updated: Task model
- Added projectId: int?, milestoneId: int?, parentId: int?
- TasksApi.create passes project_id; update payload includes project_id
- TasksRepository and TasksNotifier signatures updated
- TaskEditScreen: ProjectSelector added; project_id sent on save

## Provider fix
- ProjectsNotifier.update renamed to updateProject to avoid conflict
  with AsyncNotifier.update(FutureOr<State> Function(State)) base method

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 20:52:59 -05:00
2026-02-28 21:28:53 -05:00
2026-02-28 21:28:53 -05:00
2026-02-28 21:28:53 -05:00
2026-02-28 21:28:53 -05:00

Fabled — Android App

Native Android client for FabledAssistant, a self-hosted AI productivity assistant.

Features

  • Notes — create, edit, and browse markdown notes
  • Tasks — manage tasks with status (To Do / In Progress / Done) and priority
  • Chat — streaming AI conversations with real-time SSE response display
  • Quick Capture — FAB shortcut to create a note or task from anywhere
  • OAuth / SSO — authenticates via your server's configured OIDC provider; local username/password login also supported if enabled on the server
  • Session persistence — stays logged in across app restarts via a persistent cookie jar
  • Home screen widget — tap to open the chat screen directly from the Android launcher

Requirements

Getting Started

Prerequisites

  • Flutter 3.x SDK
  • Android Studio (for Android SDK and emulator)
  • JDK 17

Setup

flutter pub get
flutter run

On first launch, enter your FabledAssistant server URL (e.g. https://fabled.example.com) and sign in.

Architecture

lib/
├── main.dart                  # Entry point; resolves async deps before runApp
├── app.dart                   # GoRouter + auth redirect guards + shell nav
├── core/
│   ├── constants.dart         # Route name constants
│   └── exceptions.dart        # AppException hierarchy
├── data/
│   ├── api/                   # Dio HTTP layer (one class per resource)
│   ├── models/                # Plain Dart models with fromJson/toJson
│   └── repositories/          # Thin wrappers over API classes
└── providers/                 # Riverpod providers (state + dependency wiring)
    screens/                   # Flutter UI screens

Key packages: flutter_riverpod, go_router, dio + cookie_jar, flutter_inappwebview, flutter_markdown

Building a Release APK

flutter build apk --release

The signed APK will be at build/app/outputs/flutter-apk/app-release.apk.

S
Description
mobile app to connect to the fabled assistant
Readme 2.6 MiB
Languages
Dart 87.9%
C++ 5.7%
CMake 4.2%
Swift 0.7%
Shell 0.5%
Other 1%