https://github.com/laravel/framework/releases/tag/v12.44.0
新機能:
修正:
その他:
I'll separate out the parts that can be extracted from the feed reader.
Since the reader side can fetch everything, the feed generation side only needs the URL and summary.
If this is possible, we could fetch everything during feed generation in the first place, but we don't do that to avoid unnecessary load.
In the past, I tried to save even old articles, but after going through the RSS dark age, there's no longer such demand, and it's sufficient to just know the latest update information.
Both full text and thumbnails are only temporarily stored in cache, not in the DB. They disappear after about a month.
フィードリーダーから切り出せる部分は切り出していく。
リーダー側で全部取得できるのでフィード生成側はURLと概要だけでもいい。
これができるならそもそもフィード生成時に全部取得できるけど余計な負荷がかかるのでやらない。
昔はできるだけ古い記事も保存しようとしていたけどRSS暗黒期を経てもうそんな需要もなくなり最新の更新情報さえ分かれば十分。
全文もサムネイルもキャッシュに一時的に保存してるだけでDBには入れてない。一か月くらい消える。
Laravel Artisan commands allow you to create custom CLI commands to automate repetitive tasks in your application. Here's a comprehensive guide on how to create one.
Use the Artisan make command to generate a new command class:
php artisan make:command SendEmailReport
This creates a new file at app/Console/Commands/SendEmailReport.php
Open the generated file and configure the command properties:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class SendEmailReport extends Command
{
/**
* The name and signature of the console command.
*/
protected $signature = 'email:send-report {user} {--queue}';
/**
* The console command description.
*/
protected $description = 'Send email report to a specific user';
/**
* Execute the console command.
*/
public function handle()
{
// Command logic goes here
}
}
The signature defines how to call your command:
// Basic command
protected $signature = 'email:send-report';
// With required argument
protected $signature = 'email:send-report {user}';
// With optional argument
protected $signature = 'email:send-report {user?}';
// With option
protected $signature = 'email:send-report {--queue}';
// With option that accepts value
protected $signature = 'email:send-report {--type=daily}';
Add your command logic in the handle() method:
public function handle()
{
// Get arguments and options
$user = $this->argument('user');
$queue = $this->option('queue');
// Display output
$this->info('Sending email report...');
// Your business logic here
// Example: Send email, process data, etc.
// Progress bar example
$users = User::all();
$bar = $this->output->createProgressBar(count($users));
foreach ($users as $user) {
// Process user
$bar->advance();
}
$bar->finish();
// Success message
$this->info("\nEmail report sent successfully!");
return Command::SUCCESS;
}
Laravel provides helpful methods for interacting with the user:
public function handle()
{
// Ask for input
$name = $this->ask('What is your name?');
// Secret input (password)
$password = $this->secret('Enter password');
// Confirmation
if ($this->confirm('Do you want to continue?')) {
// Continue
}
// Choice selection
$role = $this->choice('Select role', ['admin', 'user', 'guest']);
// Display messages
$this->info('Information message');
$this->error('Error message');
$this->warn('Warning message');
$this->line('Regular message');
// Table output
$this->table(
['Name', 'Email'],
[
['John', '[email protected]'],
['Jane', '[email protected]']
]
);
}
Execute your custom command:
# Basic execution
php artisan email:send-report
# With arguments
php artisan email:send-report [email protected]
# With options
php artisan email:send-report --queue
# With both
php artisan email:send-report [email protected] --queue
To run the command automatically, add it to app/Console/Kernel.php:
protected function schedule(Schedule $schedule)
{
$schedule->command('email:send-report')
->daily()
->at('09:00');
}
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\User;
use App\Mail\DailyReport;
use Illuminate\Support\Facades\Mail;
class SendEmailReport extends Command
{
protected $signature = 'email:send-report {user_id} {--type=daily}';
protected $description = 'Send email report to a specific user';
public function handle()
{
$userId = $this->argument('user_id');
$type = $this->option('type');
$user = User::find($userId);
if (!$user) {
$this->error('User not found!');
return Command::FAILURE;
}
$this->info("Sending {$type} report to {$user->email}...");
Mail::to($user->email)->send(new DailyReport($user));
$this->info('Report sent successfully!');
return Command::SUCCESS;
}
}
This creates a fully functional custom Artisan command that you can use and modify for your specific needs!
The weakness of Laravel+React+Inertia is that builds take too long during deployment.
It would be fine if it just took time, but when there's insufficient memory, the build ultimately fails with a JavaScript heap out of memory error.
The solution other than increasing server memory is rolldown-vite. Just by specifying it in package.json, rolldown-vite will be used.
"vite": "npm:rolldown-vite@latest"
If you're at the stage where builds sometimes fail and sometimes succeed, this alone should solve the problem.
Laravel+React+Inertiaの弱点はデプロイ時のビルドで時間がかかりすぎる。
時間がかかるだけならいいけどメモリが足りないと最終的にJavaScript heap out of memoryのエラーでビルド失敗する。
サーバーのメモリを増やす以外の解決方法はrolldown-vite。package.jsonで指定するだけでrolldown-viteが使われる。
"vite": "npm:rolldown-vite@latest"
ビルドが失敗したり成功したりするくらいの段階ならこれだけで解決するはず。
https://github.com/github/copilot-cli/releases/tag/v0.0.372
2025-12-19
/context コマンドを追加--resume フラグを追加https://github.com/laravel/boost/releases/tag/v1.8.7
https://github.com/laravel/boost/releases/tag/v1.8.6
Handling JSON is so easy that parsing RSS or Atom XML feels ridiculous.
On the reader side, support everything while enabling conversion of RSS to JSON Feed, so everything can be handled as JSON Feed.
Making JSON Feed the standard has been comfortable, so I'll continue this way.
Now I just need to improve the conversion process.
https://github.com/github/copilot-cli/releases/tag/v0.0.371
2025-12-18
https://github.com/github/copilot-cli/releases/tag/v0.0.371-0
プレリリース版 0.0.371-0 がリリースされました。
https://github.com/github/copilot-cli/releases/tag/v0.0.370
/modelコマンドのエラーメッセージを改善し、利用可能/不可能なモデルを表示--available-toolsと--excluded-toolsオプションを追加し、モデルが使用できるツールをフィルタリング可能にhttps://github.com/github/copilot-cli/releases/tag/v0.0.370-7
プレリリース版 0.0.370-7 がリリースされました。