Commit Graph

1762 Commits

Author SHA1 Message Date
Jakub Zych
efb043e4ff fix(bonfire): PeekGlobals reads clustered shorthands like -qn and -vq
pflag accepts -qn as -q -n and -vvq as -v -v -q, but PeekGlobals only
read clusters made of v, so the generated main's pre-boot diary setup,
the error block of Execute and passthrough commands missed -q, -n and
-v when they were clustered. Read the cluster letter by letter and stop
at the first letter that is not a global shorthand.
2026-10-21 19:13:21 +02:00
Jakub Zych
db83a14056 test(conga,lagoon): River and GORM bridges
- River logs as component river at warn, conga at log.level, -v lets River info through
- an app-published logger wins for River and conga
- GORM: warn by default, info traces at -vvv, record-not-found ignored, parameterized SQL
- gate: the diary, sunscreen, conga and lagoon names in the go stage
2026-10-21 19:09:28 +02:00
Jakub Zych
24f4643283 test(diary): config, channels, rotation, redaction and slogtest
- config rules name their key; env strings overlay defaults; D-08 defaults
- component floors, verbosity 1-3, quiet on the console only
- daily rotation, retention, 0640 files, unwritable dir, lazy open, path confinement
- redaction on every driver, console control-character stripping and prefix
- loggers before Setup, Reset, HideOnTTY, 100 concurrent writers
- testing/slogtest for the console handler and the JSON pipeline
- sunscreen InstallDefault still installs a redacting logfmt handler
2026-10-21 19:09:28 +02:00
Jakub Zych
9b2fa6c324 test(19.8): phase gate with the smoke tests by name
- check-phase19.8.sh: go test -json detector, self-test on planted output
- go stage runs plans 1-3 smoke tests by name and the race run
- remaining stages stubbed so --all stays red
2026-10-21 18:58:30 +02:00
Jakub Zych
b906a31c36 docs(19.6.1): UI design contract 2026-10-21 18:33:12 +02:00
Jakub Zych
54a58ec7cc docs(19.8-03): roadmap progress 3/4 plans 2026-10-21 18:25:17 +02:00
Jakub Zych
2e4f85fc50 docs(19.8-03): complete the console sweep and v0.4.0 release plan 2026-10-21 18:24:59 +02:00
Jakub Zych
053c643527 docs(19.6.1): record post-research decisions D-19..D-22 2026-10-21 18:18:24 +02:00
Jakub Zych
77cf27eb24 docs(phase-19.6.1): add validation strategy 2026-10-21 18:16:34 +02:00
Jakub Zych
fff19e5e33 docs(19.6.1): research phase domain 2026-10-21 18:15:54 +02:00
Jakub Zych
a37bdbc4eb docs(19.6.1): capture phase context 2026-10-21 17:53:44 +02:00
Jakub Zych
a0ad2b5fa3 docs: insert phase 19.6.1 Backend Administrators screen; record 19.7 post-research decisions 2026-10-21 17:42:56 +02:00
Jakub Zych
39c0c42db7 docs(phase-19.7): add validation strategy 2026-10-21 17:38:00 +02:00
Jakub Zych
336ec2e0b6 docs(phase-19.7): add research 2026-10-21 17:38:00 +02:00
Jakub Zych
2ad7f539e3 docs(19.6): create phase plan 2026-10-21 16:33:26 +02:00
Jakub Zych
25ee333930 docs(phase-19.6): add pattern map 2026-10-21 15:58:39 +02:00
Jakub Zych
5c474b4a4f docs(phase-19.6): lock post-research decisions D-18 to D-20 2026-10-21 15:54:53 +02:00
Jakub Zych
c8cbcd5cc7 docs(phase-19.6): add research and validation strategy 2026-10-21 15:50:48 +02:00
Jakub Zych
c1f5ded59d docs: capture todo - Quiet plugin boot logs on console commands like --help 2026-10-21 15:34:02 +02:00
Jakub Zych
99b6df44d6 docs(19.5): record the email-proof release and close its todo v0.4.0 2026-10-21 15:33:05 +02:00
Jakub Zych
9ab28e1d27 docs(phase-19.5): evolve PROJECT.md after phase completion 2026-10-21 15:11:14 +02:00
Jakub Zych
fdc89b107d docs(phase-19.5): complete phase execution 2026-10-21 15:11:03 +02:00
Jakub Zych
08a52890c6 docs(19.5): verification passed on recorded UAT 2026-10-21 15:10:40 +02:00
Jakub Zych
ff4e0fa7ad docs(phase-19.5): add security threat verification 2026-10-21 15:10:32 +02:00
Jakub Zych
f1fa9e05ba test(19.5): UAT 2 passed on the automated callback view test 2026-10-21 15:09:34 +02:00
Jakub Zych
d3323efbe2 test(19.5): complete UAT - 3 passed, 0 issues 2026-10-21 15:06:54 +02:00
Jakub Zych
ff0e3a6c69 docs(19.5): record the last UAT answers (prohibitions, CR-02 wording) 2026-10-21 15:06:40 +02:00
Jakub Zych
8af7c22cfc docs(19.5): re-verification after gap closure 05 and UAT items 2026-10-21 15:01:58 +02:00
Jakub Zych
074a8f250e test(19.5): record gap-closure UAT results 2026-10-21 14:54:14 +02:00
Jakub Zych
e819f7b865 docs(19.5): link the email-proof release todo to g15office sqnwn1zi 2026-10-21 14:53:11 +02:00
Jakub Zych
5ddb23d241 docs(19.5-05): complete the email-proof plan, release on hold 2026-10-21 14:52:30 +02:00
Jakub Zych
20ecc4167d docs(19.5): capture the email-proof release todo 2026-10-21 14:51:30 +02:00
Jakub Zych
b57d2e109d docs(19.5-05): draft at the Task 6 checkpoint (bm view test, review, release table) 2026-10-21 14:48:24 +02:00
Jakub Zych
8c7794efa2 docs(19.5): proof of address in the security review and validation map
- T-19.5-38 describes the proof as email_verified_at; T-19.5-39..46 added;
  T-19.5-26 closed by OAuthCallbackView.test.ts; CR-02 recorded as open
- validation rows 19.5-05-01..07 and D-26, D-27, D-28
2026-10-21 14:46:38 +02:00
Jakub Zych
7e4387311e test(19.5): gate the bm callback view test
- detect_vitest takes REQUIRE_FILES (REQUIRE_FILE stays a one-entry
  fallback); run_bm requires src/lib/oauth.test.ts and
  src/views/OAuthCallbackView.test.ts to pass by name
- self-test: the vitest cases run on both files and a planted run without
  the view test exits 5 (missing-view-file)
2026-10-21 14:15:51 +02:00
Jakub Zych
c2c8c6a2f9 docs(19.5-05): hand-off draft after Task 3 (email proof in user and sociallogin) 2026-10-21 14:07:35 +02:00
Jakub Zych
30e0cd983d test(19.5): gate the user-plugin proof tests
- TestEmailVerifiedAt and TestAdminEmailVerifiedAt required in the docker stage
- DOCKER_USER_UPDATES_TESTS runs TestEmailVerifiedAtMigration and TestCreateOrganisationsMigration
2026-10-21 14:03:59 +02:00
Jakub Zych
4895b250e1 fix(19.8-03): TestServeLifecycle gives serve an app key and http body limits
- serve loads app.key at boot and requires http.body_limits; the
  fixture had neither, so serve returned before listening
- a fixed test-only SUMMER_APP__KEY and a config/http.yaml; the test
  also checks the key never reaches the logs
2026-10-21 14:01:14 +02:00
Jakub Zych
205764300e fix(19.8-03): conga worker tests read the startup summary from diary records
- queue:work and schedule:run print their summary block only on a
  terminal; off one (the test's buffer) they log 'startup summary' and
  'shutdown report' records of component queue/schedule, so the tests
  still asserted the pre-19.8 Info lines
- captureDiary bootstraps diary on a buffer; TestQueueWork and
  TestScheduleRunForeground wait for the startup summary record and
  check the shutdown report record
2026-10-21 14:01:14 +02:00
Jakub Zych
7170c5bac6 test(19.5): gate the email_verified_at migration and TestOwnerVerifiedEmail
- USER_ADDED_MIGRATIONS allows the one additive migration (D-27 relaxes D-22)
- refused_migration_changes and migration_writes_rows, with --self-test cases
- TestOwnerVerifiedEmail required in the docker stage
2026-10-21 13:56:05 +02:00
Jakub Zych
33460607db feat(summer): help, examples and hints for every tool command
- build runs go build under a spinner on a terminal and ends with
  'Built bin/<name> in <time>'; make:* print 'Created <path>' per file
- make:*, plugin:add, new, parity:*, docs:build, docs:sync and every
  delegate get long help and examples; delegates note that global options
  pass through to the application binary
- make:* failures (no summer.yaml, invalid plugin ID or name, existing
  artifact, unknown plugin) explain themselves and suggest a command
- docs:build and docs:sync return bonfire.Reported after the problem list
- TestCommandsDocumented covers the tool commands too
- docs: Upgrading to 0.4, delegates and global options, make: results and
  hints, the checklist for a finished command
2026-10-21 13:25:53 +02:00
Jakub Zych
9d06a78f62 feat: Artisan checklist for application commands, hints and coverage gate
- migrate, migrate:rollback and deferred:purge gain --pretend and --force;
  they and queue:clear confirm only in production on an interactive
  terminal, so deploys over SSH proceed as before
- result lines: Applied N migrations, Rolled back <id> of <plugin>,
  Cleared N jobs from <queue>
- --json for migrate:status, key:generate, route:list, admin:token:create,
  admin:token:list, admin:token:scopes and websockets:health; -q keeps the
  key and the token
- hints for an empty DSN, an unreachable database, an invalid app.key, a
  missing uploads bucket and an application binary run below its root
- flare and websockets:health return bonfire.Reported after printing
- long help and examples for every application command, greeter:hello and
  blog:publish; cmd/summer TestCommandsDocumented fails on any gap
2026-10-21 13:16:21 +02:00
Jakub Zych
168d65cd1b feat(conga,dev): worker and scheduler reports, summer dev runs serve
- queue:work and schedule:run print a startup summary and a shutdown
  report on a terminal, log them as records otherwise, and return nil
  after a clean stop
- schedule:run --once ends with 'Ran N due entries (M failed)'
- summer dev runs bin/<app> serve with the forwarded global options,
  reports through Output, stops the old server before starting the new
  one and prints a dev report on Ctrl+C (exit 0)
- lagoon.DatabaseLabel describes a DSN without its secrets
- Long help and examples for queue:work, schedule:run, dev, docs:serve
2026-10-21 13:04:27 +02:00
Jakub Zych
c38dc1fe48 feat(surf): serve startup summary, shutdown report and http request log
- serve prints a startup summary on a terminal (version, environment, URL,
  admin, database host and name, pending migrations, plugins, drivers) and
  logs it as a 'startup summary' record plus 'listening on <addr>'
- on SIGINT/SIGTERM serve drains, prints and logs a shutdown report and
  returns nil (exit 0), or the drain errors (exit 1)
- the request log is on by default under diary component http with
  request_id; the route pattern, never the path, is logged
- lagoon.PendingMigrations, conga.Worker.Stats, diary.HideOnTTY,
  bonfire.IsTerminal and bonfire.Details back the summary and report
2026-10-21 12:59:07 +02:00
Jakub Zych
f0ee26f39f docs(19.8-02): update roadmap progress after plan 02 2026-10-21 12:33:06 +02:00
Jakub Zych
128d1985a1 docs(19.8-02): complete bonfire console layer plan 2026-10-21 12:32:35 +02:00
Jakub Zych
3f38862b22 feat(bonfire): SSU widgets on charm v2 behind the Output interface
- Spinner, gradient progress bar and the multi-row process view ported
  from SSU to bubbletea v2 (input off, no signal handler, command
  context); boxed tables through lipgloss/table
- Prompts use huh fields and a single-select port of SSU's selector with
  its confirmation screen on an interactive terminal; line prompts off a
  terminal and under --no-ansi are unchanged (piped passwords still work)
- -q hides decoration but keeps data and errors; -n returns defaults and
  Secret fails with a hint on a terminal stdin; --no-ansi and non-TTY
  runs print today's plain lines
- Helpers: GlobalsOf, VerbosityOf, IsQuiet, Interactive, ConfirmProceed,
  Process, Current, Failed, PrintAbove, ItemProgress, ErrAborted
- diary's styled console lines print above a running live view
2026-10-21 12:30:53 +02:00
Jakub Zych
cb38c493ce docs(notes): allow diary as wristband's one framework import 2026-10-21 12:23:51 +02:00
Jakub Zych
fb32886775 feat(bonfire): Artisan help, examples, JSON listing and error hints
- help <command> and <command> --help print Description, Usage,
  Arguments, Options with defaults, Global options, Help and Examples
- Command.Examples and Command.Hidden (appended, additive); list --all
  shows hidden commands, list --format=json prints a bonfire.Listing
- CheckDocs reports commands lacking description, long help, examples or
  argument and option descriptions
- Error block with the ERROR badge, WithHint explanation and Try lines
  ({bin} replaced), cobra suggestions as Try, -v error chain, messages
  scrubbed by sunscreen; Reported errors print nothing and exit 1
2026-10-21 12:21:24 +02:00
Jakub Zych
80fae5c279 docs(19.8): close the duplicate command names todo 2026-10-21 12:13:29 +02:00